diff options
author | Ulrich Drepper <drepper@redhat.com> | 2010-04-04 01:02:09 -0700 |
---|---|---|
committer | Petr Baudis <pasky@ucw.cz> | 2010-05-12 03:21:09 +0200 |
commit | 16c1804e696304140e54108ddd2889cf7b54b768 (patch) | |
tree | 624122a5ad9c1165237381b60ce1ce5dff02efac | |
parent | 159aeed982dc4c36de78027d262be8370e2f35a0 (diff) | |
download | glibc-16c1804e696304140e54108ddd2889cf7b54b768.tar.gz glibc-16c1804e696304140e54108ddd2889cf7b54b768.tar.xz glibc-16c1804e696304140e54108ddd2889cf7b54b768.zip |
Fix retrieving of kernel header version.
(cherry picked from commit 9e37946dba22b53c5108eef777e867f93c894502)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | csu/Makefile | 15 |
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 75bd6b87b7..4ccc115930 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-04-04 Ulrich Drepper <drepper@redhat.com> + + [BZ #11287] + * csu/Makefile ($(objpfx)version-info.h): Handle newer kernel headers + which don't define UTS_RELEASE. + 2010-04-04 H.J. Lu <hongjiu.lu@intel.com> Ulrich Drepper <drepper@redhat.com> diff --git a/csu/Makefile b/csu/Makefile index 0e2ae07cf7..69e07c71cf 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -1,5 +1,5 @@ # Makefile for csu code for GNU C library. -# Copyright (C) 1995-2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 1995-2004, 2005, 2006, 2010 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -209,9 +209,20 @@ $(objpfx)version-info.h: $(common-objpfx)config.make $(all-Banner-files) linux*) version=`(printf '%s\n%s\n' \ '#include <linux/version.h>' \ UTS_RELEASE \ - | $(CC) $(CPPFLAGS) -E -P - -DNOT_IN_libc=1 | \ + | $(CC) $(CPPFLAGS) -O -E -P - -DNOT_IN_libc=1 | \ sed -e 's/"\([^"]*\)".*/\1/p' -e d) 2>/dev/null`;\ if [ -z "$$version" ]; then \ + version=`(printf '%s\n%s\n' \ + '#include <linux/version.h>' \ + LINUX_VERSION_CODE \ + | $(CC) $(CPPFLAGS) -O -E -P - -DNOT_IN_libc=1 \ + | sed -n -e '/^[123456789].*/p' \ + | awk '{v=$$1; \ + printf("%d.%d.%d\n", \ + v/65535, v/256%256, v%256)}') \ + 2>/dev/null`; \ + fi; \ + if [ -z "$$version" ]; then \ if [ -r /proc/version ]; then \ version=`sed 's/.*Linux version \([^ ]*\) .*/>>\1<</' \ < /proc/version`; \ |