summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2004-10-21 07:16:46 +0000
committerJakub Jelinek <jakub@redhat.com>2004-10-21 07:16:46 +0000
commit8eb6f95371ac36d4f5f4f867065c843596f66a67 (patch)
tree043b28998da75da7f303b081af739fbf560af70f
parenta4947a1a5386bfee328190507369781092d6cf3a (diff)
Updated to fedora-glibc-20041021T0701cvs/fedora-glibc-2_3_3-72
-rw-r--r--ChangeLog9
-rw-r--r--Makeconfig31
-rw-r--r--fedora/glibc.spec.in37
-rw-r--r--scripts/soversions.awk38
4 files changed, 65 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index 75e73e7947..bf0e4732cb 100644
--- 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.
diff --git a/Makeconfig b/Makeconfig
index 8490d077b6..ea3a782cda 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -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 \
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index acb8933708..9ff386e549 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -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
index 0000000000..6207088514
--- /dev/null
+++ b/scripts/soversions.awk
@@ -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];
+ }
+}