]> git.pld-linux.org Git - packages/glibc.git/blame - glibc-soversions-fix.patch
- should restore proper libthread_db versioning on some archs (incl. amd64)
[packages/glibc.git] / glibc-soversions-fix.patch
CommitLineData
f19f2166
JB
1Index: libc/Makeconfig
2===================================================================
3RCS file: /cvs/glibc/libc/Makeconfig,v
4retrieving revision 1.297
5retrieving revision 1.298
6diff -u -r1.297 -r1.298
7--- libc/Makeconfig 5 Aug 2004 03:34:28 -0000 1.297
8+++ libc/Makeconfig 21 Oct 2004 01:29:24 -0000 1.298
9@@ -799,26 +799,19 @@
10 # This lets add-ons give more-specific matches that override defaults
11 # in the top-level file.
12 $(common-objpfx)shlib-versions.v.i: \
13- $(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) $(subdirs)))\
14+ $(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) \
15+ $(config-sysdirs) \
16+ $(subdirs))) \
17 $(..)shlib-versions
18-$(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
19- default_setname='$(filter-out %_default,$(oldest-abi:%=GLIBC_%))'; \
20- while read conf version setname; do \
21- test -n "$$version" && \
22- test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
23- : "$$conf"` != 0 || continue; \
24- if test "x$$version" = xDEFAULT; then \
25- default_setname="$$setname"; \
26- else \
27- $(abi-default_setname) \
28- lib=`echo $$version | sed 's/=.*$$//'`; \
29- if eval test -z "\$${versioned_$${lib}}"; then \
30- eval versioned_$${lib}=yes; \
31- number=`echo $$version | sed "s/^.*=//"`; \
32- echo $$lib $$number $${setname:-$${default_setname}}; \
33- fi; \
34- fi; \
35- done < $< > $@T; exit 0
36+
37+soversions-default-setname = $(patsubst %, %,\
38+ $(filter-out %_default,\
39+ $(oldest-abi:%=GLIBC_%)))
40+$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
41+ $(common-objpfx)shlib-versions.v
42+ $(AWK) -v default_setname='$(soversions-default-setname)' \
43+ -v config='$(config-machine)-$(config-vendor)-$(config-os)' \
44+ -f $^ > $@T
45 mv -f $@T $@
46 $(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
47 (while read lib number setname; do \
48Index: libc/ChangeLog
49===================================================================
50RCS file: /cvs/glibc/libc/ChangeLog,v
51retrieving revision 1.8909
52retrieving revision 1.8910
53diff -u -r1.8909 -r1.8910
54--- libc/ChangeLog 20 Oct 2004 10:05:07 -0000 1.8909
55+++ libc/ChangeLog 21 Oct 2004 01:29:31 -0000 1.8910
56@@ -1,5 +1,14 @@
57 2004-10-20 Roland McGrath <roland@redhat.com>
58
59+ * Makeconfig ($(common-objpfx)shlib-versions.v.i): Check also
60+ $(config-sysdirs) for shlib-versions files.
61+
62+ * Makeconfig ($(common-objpfx)soversions.i): Replace shell loop with
63+ use of ...
64+ * scripts/soversions.awk: ... this new file. Collect lib info and
65+ match any DEFAULT line before emitting anything, so DEFAULT can come
66+ later in the concatenation of shlib-versions files.
67+
68 * manual/errno.texi (Error Codes): Add ENOKEY, EKEYEXPIRED,
69 EKEYREVOKED, EKEYREJECTED.
70 * sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.3.4): New errlist.
71Index: libc/scripts/soversions.awk
72===================================================================
73RCS file: /cvs/glibc/libc/scripts/soversions.awk,v
74retrieving revision 1.1
75diff -u -r1.1 soversions.awk
76--- libc/scripts/soversions.awk 21 Oct 2004 08:31:45 -0000
77+++ libc/scripts/soversions.awk 21 Oct 2004 01:29:26 -0000 1.1
78@@ -0,0 +1,38 @@
79+# awk script for shlib-versions.v.i -> soversions.i; see Makeconfig.
80+
81+# Only lines matching `config' (set with -v) are relevant to us.
82+config !~ $1 { next }
83+
84+# Obey the first matching DEFAULT line.
85+$2 == "DEFAULT" {
86+ if (!matched_default) {
87+ matched_default = 1;
88+ $1 = $2 = "";
89+ default_setname = $0;
90+ }
91+ next
92+}
93+
94+# Collect all lib lines before emitting anything, so DEFAULT
95+# can be interspersed.
96+{
97+ lib = number = $2;
98+ sub(/=.*$/, "", lib);
99+ sub(/^.*=/, "", number);
100+ if (lib in numbers) next;
101+ numbers[lib] = number;
102+ if (NF > 2) {
103+ $1 = $2 = "";
104+ versions[lib] = $0
105+ }
106+}
107+
108+END {
109+ for (lib in numbers) {
110+ set = (lib in versions) ? versions[lib] : default_setname;
111+ if (set)
112+ print lib, numbers[lib], set;
113+ else
114+ print lib, numbers[lib];
115+ }
116+}
This page took 0.03984 seconds and 4 git commands to generate.