bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Recent git commit breaks build on Solaris


From: Jim Meyering
Subject: Re: Recent git commit breaks build on Solaris
Date: Sun, 15 Mar 2009 08:16:14 +0100

David Bartley wrote:
> On Sat, Mar 14, 2009 at 11:06 AM, Jim Meyering <address@hidden> wrote:
>> David Bartley wrote:
>>> Just a quick heads up, the following commit breaks the build on Solaris:
>>>
>>> http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=55efc5f3ee485b3e31a91c331f07c89aeccc4e89
>>>
>>> In src/system.h, MAX may not be defined before it is used in
>>> io_blksize. I think you can just move the io_blksize function below
>>> the later definition of MAX to fix this.
>>
>> Thanks for the heads up.
>> Moving it "down" does sound like the right thing to do,
>> but we should document which compiler/version is complaining about the
>> current set-up.  Can you provide details?
>
> The OS is OpenSolaris and the compiler is gcc 3.4, but it probably
> affects any compiler and other Solaris versions. On Solaris MAX is
> defined in sys/sysmacros.h which never gets included (on Linux it's in
> sys/param.h which does get included).

Thanks.
I've done this:
(the latter just pulls in recent gnulib changes)

>From a4780e67f4ad5151724f078ebe25ad4c347af82c Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sat, 14 Mar 2009 21:29:33 +0100
Subject: [PATCH 1/2] system.h: correct compilation error: MAX not defined

* src/system.h (io_blksize): Move definition down, so it follows that
of MAX -- to avoid compilation failure on OpenSolaris.  Reported by
David Bartley.  Details in
http://lists.gnu.org/archive/html/bug-coreutils/2009-03/msg00190.html
---
 THANKS       |    1 +
 src/system.h |   90 +++++++++++++++++++++++++++++-----------------------------
 2 files changed, 46 insertions(+), 45 deletions(-)

diff --git a/THANKS b/THANKS
index 46d077b..f894e1d 100644
--- a/THANKS
+++ b/THANKS
@@ -131,6 +131,7 @@ Darrel Francis                      address@hidden
 Darren Salt                         address@hidden
 Dave Beckett                        address@hidden
 David Alan Gilbert                  address@hidden
+David Bartley                       address@hidden
 David Dyck                          address@hidden
 David Eisner                        address@hidden
 David Flynn                         address@hidden
diff --git a/src/system.h b/src/system.h
index dbb4da1..eafcc25 100644
--- a/src/system.h
+++ b/src/system.h
@@ -221,51 +221,6 @@ enum
 # endif
 #endif

-/* As of Mar 2009, 32KiB is determined to be the minimium
-   blksize to best minimize system call overhead.
-   This can be tested with this script with the results
-   shown for a 1.7GHz pentium-m with 2GB of 400MHz DDR2 RAM:
-
-   for i in $(seq 0 10); do
-     size=$((8*1024**3)) #ensure this is big enough
-     bs=$((1024*2**$i))
-     printf "%7s=" $bs
-     dd bs=$bs if=/dev/zero of=/dev/null count=$(($size/$bs)) 2>&1 |
-     sed -n 's/.* \([0-9.]* [GM]B\/s\)/\1/p'
-   done
-
-      1024=734 MB/s
-      2048=1.3 GB/s
-      4096=2.4 GB/s
-      8192=3.5 GB/s
-     16384=3.9 GB/s
-     32768=5.2 GB/s
-     65536=5.3 GB/s
-    131072=5.5 GB/s
-    262144=5.7 GB/s
-    524288=5.7 GB/s
-   1048576=5.8 GB/s
-
-   Note that this is to minimize system call overhead.
-   Other values may be appropriate to minimize file system
-   or disk overhead.  For example on my current linux system
-   the readahead setting is 128KiB which was read using:
-
-   file="."
-   device=$(df -P --local "$file" | tail -n1 | cut -d' ' -f1)
-   echo $(( $(blockdev --getra $device) * 512 ))
-
-   However there isn't a portable way to get the above.
-   In the future we could use the above method if available
-   and default to io_blksize() if not.
- */
-enum { IO_BUFSIZE = 32*1024 };
-static inline size_t
-io_blksize (struct stat sb)
-{
-  return MAX (IO_BUFSIZE, ST_BLKSIZE (sb));
-}
-
 /* Redirection and wildcarding when done by the utility itself.
    Generally a noop, but used in particular for native VMS. */
 #ifndef initialize_main
@@ -701,4 +656,49 @@ bad_cast (char const *s)
   return (char *) s;
 }

+/* As of Mar 2009, 32KiB is determined to be the minimium
+   blksize to best minimize system call overhead.
+   This can be tested with this script with the results
+   shown for a 1.7GHz pentium-m with 2GB of 400MHz DDR2 RAM:
+
+   for i in $(seq 0 10); do
+     size=$((8*1024**3)) #ensure this is big enough
+     bs=$((1024*2**$i))
+     printf "%7s=" $bs
+     dd bs=$bs if=/dev/zero of=/dev/null count=$(($size/$bs)) 2>&1 |
+     sed -n 's/.* \([0-9.]* [GM]B\/s\)/\1/p'
+   done
+
+      1024=734 MB/s
+      2048=1.3 GB/s
+      4096=2.4 GB/s
+      8192=3.5 GB/s
+     16384=3.9 GB/s
+     32768=5.2 GB/s
+     65536=5.3 GB/s
+    131072=5.5 GB/s
+    262144=5.7 GB/s
+    524288=5.7 GB/s
+   1048576=5.8 GB/s
+
+   Note that this is to minimize system call overhead.
+   Other values may be appropriate to minimize file system
+   or disk overhead.  For example on my current linux system
+   the readahead setting is 128KiB which was read using:
+
+   file="."
+   device=$(df -P --local "$file" | tail -n1 | cut -d' ' -f1)
+   echo $(( $(blockdev --getra $device) * 512 ))
+
+   However there isn't a portable way to get the above.
+   In the future we could use the above method if available
+   and default to io_blksize() if not.
+ */
+enum { IO_BUFSIZE = 32*1024 };
+static inline size_t
+io_blksize (struct stat sb)
+{
+  return MAX (IO_BUFSIZE, ST_BLKSIZE (sb));
+}
+
 void usage (int status) ATTRIBUTE_NORETURN;
--
1.6.2.rc1.285.gc5f54


>From bd23509bef79b7d984f8a484e58d767adce9847f Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 15 Mar 2009 08:09:53 +0100
Subject: [PATCH 2/2] * gnulib: Update submodule to latest.

---
 gnulib |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gnulib b/gnulib
index f93bd98..77d1b17 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit f93bd98a9570a4455f16eafc49c6227e5caa5a53
+Subproject commit 77d1b17de32d8299a8c550944b922e55db5dc22e
--
1.6.2.rc1.285.gc5f54




reply via email to

[Prev in Thread] Current Thread [Next in Thread]