aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2010-08-24 11:55:53 -0700
committerRoland McGrath <roland@redhat.com>2010-08-24 11:56:52 -0700
commit090555538d4347a52807ba9f08cf20ed13206afe (patch)
treee8ddcd0e24e9c8efe85342caae73c3ba934e6ec0
parentf2ac4868b7b69c32c4de9895b4a1e22b91cc6aa8 (diff)
downloadglibc-090555538d4347a52807ba9f08cf20ed13206afe.zip
glibc-090555538d4347a52807ba9f08cf20ed13206afe.tar.gz
glibc-090555538d4347a52807ba9f08cf20ed13206afe.tar.bz2
Rejigger header generation for default uname implementation.
-rw-r--r--ChangeLog7
-rw-r--r--config-name.in9
-rwxr-xr-xconfigure87
-rw-r--r--configure.in73
-rw-r--r--posix/Makefile8
-rwxr-xr-xscripts/config-uname.sh50
6 files changed, 69 insertions, 165 deletions
diff --git a/ChangeLog b/ChangeLog
index 7a64746..58b18cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2010-08-24 Roland McGrath <roland@redhat.com>
+ * configure.in: Remove config-name.h generation.
+ * configure: Regenerated.
+ * config-name.in: File removed.
+ * scripts/config-uname.sh: New file.
+ * posix/Makefile (uname.c): Depend on $(objdir)config-name.h.
+ ($(objdir)config-name.h): New target.
+
* sunrpc/rpc_parse.h: Avoid nested comment.
2010-08-24 Richard Henderson <rth@redhat.com>
diff --git a/config-name.in b/config-name.in
deleted file mode 100644
index cdac43d..0000000
--- a/config-name.in
+++ /dev/null
@@ -1,9 +0,0 @@
-/* @configure_input@ -*- C -*-
-
- This is used only by the generic `uname' function for systems with no real
- `uname' call. If this data is not correct, it does not matter much. */
-
-#define UNAME_SYSNAME "@uname_sysname@"
-#define UNAME_RELEASE "@uname_release@"
-#define UNAME_VERSION "@uname_version@"
-#define UNAME_MACHINE "@host_cpu@-@host_vendor@"
diff --git a/configure b/configure
index 0b75ee7..eae35ba 100755
--- a/configure
+++ b/configure
@@ -623,9 +623,6 @@ libc_cv_sysconfdir
libc_cv_localedir
libc_cv_slibdir
old_glibc_headers
-uname_version
-uname_release
-uname_sysname
libc_cv_gcc_unwind_find_fde
sizeof_long_double
EGREP
@@ -7746,8 +7743,7 @@ libc_cv_gcc_unwind_find_fde=no
libc_cv_idn=no
# Iterate over all the sysdep directories we will use, running their
-# configure fragments, and looking for a uname implementation.
-uname=
+# configure fragments.
for dir in $sysnames; do
case $dir in
/*) dest=$dir ;;
@@ -7758,15 +7754,6 @@ for dir in $sysnames; do
$as_echo "running configure fragment for $dir" >&6; }
. $dest/configure
fi
-
- if test -z "$uname"; then
- if test -r $dest/uname.c ||
- test -r $dest/uname.S ||
- { test -r $dest/syscalls.list &&
- grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
- uname=$dir
- fi
- fi
done
if test x$libc_cv_gcc_unwind_find_fde = xyes; then
@@ -7775,75 +7762,6 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then
fi
-# If we will use the generic uname implementation, we must figure out what
-# it will say by examining the system, and write the results in config-name.h.
-if test "$uname" = "sysdeps/generic"; then
-
- uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
- if test $uname_sysname != $config_os; then
- config_release=`echo $config_os | sed s/$uname_sysname//`
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS release for uname" >&5
-$as_echo_n "checking OS release for uname... " >&6; }
-if test "${libc_cv_uname_release+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -r /vmunix; then
- kernel_id=`strings /vmunix | grep UNIX`
- elif test -r /dynix; then
- kernel_id=`strings /dynix | grep DYNIX`
- else
- kernel_id=
- fi
-
- kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
- if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
- != x$config_release; then
- # The configuration release is a substring of the kernel release.
- libc_cv_uname_release=$kernel_release
- elif test x$config_release != x; then
- libc_cv_uname_release=$config_release
- elif test x$kernel_release != x; then
- libc_cv_uname_release=$kernel_release
- else
- libc_cv_uname_release=unknown
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_uname_release" >&5
-$as_echo "$libc_cv_uname_release" >&6; }
- uname_release="$libc_cv_uname_release"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking OS version for uname" >&5
-$as_echo_n "checking OS version for uname... " >&6; }
-if test "${libc_cv_uname_version+set}" = set; then :
- $as_echo_n "(cached) " >&6
-else
- if test -r /vmunix; then
- kernel_id=`strings /vmunix | grep UNIX`
- elif test -r /dynix; then
- kernel_id=`strings /dynix | grep DYNIX`
- else
- kernel_id=
- fi
-
- kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
- if test -n "$kernel_version"; then
- libc_cv_uname_version="$kernel_version"
- else
- libc_cv_uname_version=unknown
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_uname_version" >&5
-$as_echo "$libc_cv_uname_version" >&6; }
- uname_version="$libc_cv_uname_version"
-
- config_uname=config-name.h:config-name.in
-else
- # For non-generic uname, we don't need to create config-name.h at all.
- config_uname=
-fi
-
$as_echo "#define USE_IN_LIBIO 1" >>confdefs.h
@@ -7938,7 +7856,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
-ac_config_files="$ac_config_files config.make ${config_makefile} ${config_uname}"
+ac_config_files="$ac_config_files config.make ${config_makefile}"
ac_config_commands="$ac_config_commands default"
@@ -8640,7 +8558,6 @@ do
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
"${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;;
- "${config_uname}") CONFIG_FILES="$CONFIG_FILES ${config_uname}" ;;
"default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
*) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
diff --git a/configure.in b/configure.in
index 098adf4..d8cd5f1 100644
--- a/configure.in
+++ b/configure.in
@@ -2192,8 +2192,7 @@ libc_cv_gcc_unwind_find_fde=no
libc_cv_idn=no
# Iterate over all the sysdep directories we will use, running their
-# configure fragments, and looking for a uname implementation.
-uname=
+# configure fragments.
for dir in $sysnames; do
case $dir in
/*) dest=$dir ;;
@@ -2203,16 +2202,6 @@ for dir in $sysnames; do
AC_MSG_RESULT(running configure fragment for $dir)
. $dest/configure
fi
-[
- if test -z "$uname"; then
- if test -r $dest/uname.c ||
- test -r $dest/uname.S ||
- { test -r $dest/syscalls.list &&
- grep '^uname[ ]' $dest/syscalls.list >/dev/null; }; then
- uname=$dir
- fi
- fi
-]dnl
done
if test x$libc_cv_gcc_unwind_find_fde = xyes; then
@@ -2220,64 +2209,6 @@ if test x$libc_cv_gcc_unwind_find_fde = xyes; then
fi
AC_SUBST(libc_cv_gcc_unwind_find_fde)
-# If we will use the generic uname implementation, we must figure out what
-# it will say by examining the system, and write the results in config-name.h.
-if test "$uname" = "sysdeps/generic"; then
-
-changequote(,)dnl
- uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
-changequote([,])dnl
- if test $uname_sysname != $config_os; then
- config_release=`echo $config_os | sed s/$uname_sysname//`
- fi
-dnl
-AC_DEFUN(LIBC_KERNEL_ID, [dnl
- if test -r /vmunix; then
- kernel_id=`strings /vmunix | grep UNIX`
- elif test -r /dynix; then
- kernel_id=`strings /dynix | grep DYNIX`
- else
- kernel_id=
- fi
-])dnl
-
- AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl
-LIBC_KERNEL_ID
-changequote(,)dnl
- kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
-changequote([,])dnl
- if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
- != x$config_release; then
- # The configuration release is a substring of the kernel release.
- libc_cv_uname_release=$kernel_release
- elif test x$config_release != x; then
- libc_cv_uname_release=$config_release
- elif test x$kernel_release != x; then
- libc_cv_uname_release=$kernel_release
- else
- libc_cv_uname_release=unknown
- fi])
- uname_release="$libc_cv_uname_release"
-
- AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl
-LIBC_KERNEL_ID
-changequote(,)dnl
- kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
-changequote([,])dnl
- if test -n "$kernel_version"; then
- libc_cv_uname_version="$kernel_version"
- else
- libc_cv_uname_version=unknown
- fi])
- uname_version="$libc_cv_uname_version"
-
-AC_SUBST(uname_sysname) AC_SUBST(uname_release) AC_SUBST(uname_version)dnl
- config_uname=config-name.h:config-name.in
-else
- # For non-generic uname, we don't need to create config-name.h at all.
- config_uname=
-fi
-
dnl This is tested by existing code and it's simpler to avoid changing it.
AC_DEFINE(USE_IN_LIBIO)
@@ -2361,7 +2292,7 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
AC_SUBST(VERSION)
AC_SUBST(RELEASE)
-AC_CONFIG_FILES([config.make ${config_makefile} ${config_uname}])
+AC_CONFIG_FILES([config.make ${config_makefile}])
AC_CONFIG_COMMANDS([default],[[
case $CONFIG_FILES in *config.make*)
echo "$config_vars" >> config.make;;
diff --git a/posix/Makefile b/posix/Makefile
index 643d7e5..4f29963 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -139,6 +139,14 @@ $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
endif
endif
+# If we will use the generic uname implementation, we must figure out what
+# it will say by examining the system, and write the results in config-name.h.
+uname.c: $(objpfx)config-name.h
+$(objpfx)config-name.h: $(..)scripts/config-uname.sh $(common-objpfx)config.make
+ $< '$(config-os)' '$(config-release)' \
+ '$(config-machine)-$(config-vendor)' > $@.new
+ mv -f $@.new $@
+
CFLAGS-regex.c = -Wno-strict-prototypes
CFLAGS-getaddrinfo.c = -DRESOLVER -fexceptions -DUSE_NSCD
CFLAGS-pread.c = -fexceptions -fasynchronous-unwind-tables
diff --git a/scripts/config-uname.sh b/scripts/config-uname.sh
new file mode 100755
index 0000000..cf32ca5
--- /dev/null
+++ b/scripts/config-uname.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+config_os=$1
+config_release=$2
+uname_machine=$3
+
+uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
+if test $uname_sysname != $config_os; then
+ config_release=`echo $config_os | sed s/$uname_sysname//`
+fi
+
+if test -r /vmunix; then
+ kernel_id=`strings /vmunix | grep UNIX`
+elif test -r /dynix; then
+ kernel_id=`strings /dynix | grep DYNIX`
+else
+ kernel_id=
+fi
+
+kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
+if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
+ != x$config_release; then
+ # The configuration release is a substring of the kernel release.
+ uname_release=$kernel_release
+elif test x$config_release != x; then
+ uname_release=$config_release
+elif test x$kernel_release != x; then
+ uname_release=$kernel_release
+else
+ uname_release=unknown
+fi
+
+kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
+if test -n "$kernel_version"; then
+ uname_version="$kernel_version"
+else
+ uname_version=unknown
+fi
+
+cat <<EOF
+/* This file is generated by $0. DO NOT EDIT.
+
+ This is used only by the generic uname function for systems with no real
+ uname call. If this data is not correct, it does not matter much. */
+
+#define UNAME_SYSNAME "$uname_sysname"
+#define UNAME_RELEASE "$uname_release"
+#define UNAME_VERSION "$uname_version"
+#define UNAME_MACHINE "$uname_machine"
+EOF