]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Do not depend on HAVE_SYSCTL when deciding
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 4 Aug 2004 05:58:43 +0000 (05:58 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 4 Aug 2004 05:58:43 +0000 (05:58 +0000)
whether to include files.  Include <sys/param.h> if
HAVE_SYS_PARAM_H (not HAVE_SYSCTL).
(main) [defined __POWERPC__]: Add a kludge to work around a
Mac OS X bug, so that uname -p defaults to "powerpc" if
sysctl ((int[]) {CTL_HW, HW_MACHINE_ARCH}, 2, buffer, &bufsize, 0, 0)
fails.  Problem reported by Petter Reinholdtsen in:
http://lists.gnu.org/archive/html/bug-gnu-utils/2003-02/msg00201.html

src/uname.c

index 834440b50fdd939e32c18d056feebdf9845e0c43..9e7026ac2b3585a986b5857b51a13d8442ddfa34 100644 (file)
 # include <sys/systeminfo.h>
 #endif
 
-#if HAVE_SYSCTL && HAVE_SYS_SYSCTL_H
-# include <sys/param.h> /* needed for OpenBSD 3.0 */
+#if HAVE_SYS_SYSCTL_H
+# if HAVE_SYS_PARAM_H
+#  include <sys/param.h> /* needed for OpenBSD 3.0 */
+# endif
 # include <sys/sysctl.h>
 # ifdef HW_MODEL
 #  ifdef HW_MACHINE_ARCH
@@ -260,6 +262,11 @@ main (int argc, char **argv)
          static int mib[] = { CTL_HW, UNAME_PROCESSOR };
          if (sysctl (mib, 2, processor, &s, 0, 0) >= 0)
            element = processor;
+# ifdef __POWERPC__
+         /* This kludge works around a bug in Mac OS X.  */
+         if (element == unknown)
+           element = "powerpc";
+# endif
        }
 #endif
       print_element (element);