]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Updated to fedora-glibc-20041021T0701 cvs/fedora-glibc-2_3_3-72
authorJakub Jelinek <jakub@redhat.com>
Thu, 21 Oct 2004 07:16:46 +0000 (07:16 +0000)
committerJakub Jelinek <jakub@redhat.com>
Thu, 21 Oct 2004 07:16:46 +0000 (07:16 +0000)
ChangeLog
Makeconfig
fedora/glibc.spec.in
scripts/soversions.awk [new file with mode: 0644]

index 75e73e79472db1a1b321ddc4e9148f681d22fd95..bf0e4732cb732da57e0db5c510a0965d02678270 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,15 @@
 
 2004-10-20  Roland McGrath  <roland@redhat.com>
 
+       * Makeconfig ($(common-objpfx)shlib-versions.v.i): Check also
+       $(config-sysdirs) for shlib-versions files.
+
+       * Makeconfig ($(common-objpfx)soversions.i): Replace shell loop with
+       use of ...
+       * scripts/soversions.awk: ... this new file.  Collect lib info and
+       match any DEFAULT line before emitting anything, so DEFAULT can come
+       later in the concatenation of shlib-versions files.
+
        * manual/errno.texi (Error Codes): Add ENOKEY, EKEYEXPIRED,
        EKEYREVOKED, EKEYREJECTED.
        * sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.3.4): New errlist.
index 8490d077b6b2d305989dbcb948eac4e939b4dfb7..ea3a782cdab2bd72f9988b879788864d54e5ebcf 100644 (file)
@@ -799,26 +799,19 @@ ifndef avoid-generated
 # This lets add-ons give more-specific matches that override defaults
 # in the top-level file.
 $(common-objpfx)shlib-versions.v.i: \
-       $(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) $(subdirs)))\
+       $(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) \
+                                                      $(config-sysdirs) \
+                                                      $(subdirs))) \
        $(..)shlib-versions
-$(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
-       default_setname='$(filter-out %_default,$(oldest-abi:%=GLIBC_%))'; \
-       while read conf version setname; do \
-         test -n "$$version" && \
-         test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
-                    : "$$conf"` != 0 || continue; \
-         if test "x$$version" = xDEFAULT; then \
-           default_setname="$$setname"; \
-         else \
-           $(abi-default_setname) \
-           lib=`echo $$version | sed 's/=.*$$//'`; \
-           if eval test -z "\$${versioned_$${lib}}"; then \
-             eval versioned_$${lib}=yes; \
-             number=`echo $$version | sed "s/^.*=//"`; \
-             echo $$lib $$number $${setname:-$${default_setname}}; \
-           fi; \
-         fi; \
-       done < $< > $@T; exit 0
+
+soversions-default-setname = $(patsubst %, %,\
+                                       $(filter-out %_default,\
+                                                    $(oldest-abi:%=GLIBC_%)))
+$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
+                             $(common-objpfx)shlib-versions.v
+       $(AWK) -v default_setname='$(soversions-default-setname)' \
+              -v config='$(config-machine)-$(config-vendor)-$(config-os)' \
+              -f $^ > $@T
        mv -f $@T $@
 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
        (while read lib number setname; do \
index acb89337083569a2bc96c218098ffccea0cf016a..9ff386e549aa4ba143b2f102732872c373dc9aa5 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 71
+%define glibcrelease 72
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -299,14 +299,6 @@ cat > asm/unistd.h <<EOF
 #ifndef __NR_waitid
 #define __NR_waitid            284
 #endif
-#ifndef __NR_setaltroot
-#define __NR_setaltroot                285
-#endif
-#ifndef __NR_add_key
-#define __NR_add_key           286
-#define __NR_request_key       287
-#define __NR_keyctl            288
-#endif
 %endif
 %ifarch ia64
 #ifndef __NR_timer_create
@@ -328,9 +320,6 @@ cat > asm/unistd.h <<EOF
 #define __NR_mq_notify                 1266
 #define __NR_mq_getsetattr             1267
 #endif
-#ifndef __NR_setaltroot
-#define __NR_setaltroot                        1270
-#endif
 %endif
 %ifarch ppc
 #ifndef __NR_utimes
@@ -442,25 +431,6 @@ cat > asm/unistd.h <<EOF
 %endif
 #endif
 EOF
-cat > asm/errno.h <<EOF
-#ifndef _HACK_ASM_ERRNO_H
-#include_next <asm/errno.h>
-#ifndef ENOKEY
-%ifarch alpha alphaev6
-#define ENOKEY         131             /* Required key not available */
-%endif
-%ifarch sparc sparcv9 sparc64
-#define ENOKEY         127             /* Required key not available */
-%endif
-%ifnarch alpha alphaev6 sparc sparcv9 sparc64
-#define ENOKEY         125             /* Required key not available */
-%endif
-#define EKEYEXPIRED    (ENOKEY + 1)    /* Key has expired */
-#define EKEYREVOKED    (ENOKEY + 2)    /* Key has been revoked */
-#define EKEYREJECTED   (ENOKEY + 3)    /* Key was rejected by service */
-#endif
-#endif
-EOF
 
 %ifnarch %{ix86} alpha alphaev6 sparc sparcv9
 rm -rf glibc-compat
@@ -1286,6 +1256,11 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Thu Oct 21 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-72
+- back out setaltroot and key{_add,_request,ctl} addition
+- fix severe x86-64 symbol versioning regressions that breaks
+  e.g. java binaries
+
 * Wed Oct 20 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-71
 - update from CVS
   - fix minor catchsegv temp file handling vulnerability
diff --git a/scripts/soversions.awk b/scripts/soversions.awk
new file mode 100644 (file)
index 0000000..6207088
--- /dev/null
@@ -0,0 +1,38 @@
+# awk script for shlib-versions.v.i -> soversions.i; see Makeconfig.
+
+# Only lines matching `config' (set with -v) are relevant to us.
+config !~ $1 { next }
+
+# Obey the first matching DEFAULT line.
+$2 == "DEFAULT" {
+  if (!matched_default) {
+    matched_default = 1;
+    $1 = $2 = "";
+    default_setname = $0;
+  }
+  next
+}
+
+# Collect all lib lines before emitting anything, so DEFAULT
+# can be interspersed.
+{
+  lib = number = $2;
+  sub(/=.*$/, "", lib);
+  sub(/^.*=/, "", number);
+  if (lib in numbers) next;
+  numbers[lib] = number;
+  if (NF > 2) {
+    $1 = $2 = "";
+    versions[lib] = $0
+  }
+}
+
+END {
+  for (lib in numbers) {
+    set = (lib in versions) ? versions[lib] : default_setname;
+    if (set)
+      print lib, numbers[lib], set;
+    else
+      print lib, numbers[lib];
+  }
+}