mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
* 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.
This commit is contained in:
@ -1,5 +1,14 @@
|
|||||||
2004-10-20 Roland McGrath <roland@redhat.com>
|
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,
|
* manual/errno.texi (Error Codes): Add ENOKEY, EKEYEXPIRED,
|
||||||
EKEYREVOKED, EKEYREJECTED.
|
EKEYREVOKED, EKEYREJECTED.
|
||||||
* sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.3.4): New errlist.
|
* sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.3.4): New errlist.
|
||||||
|
31
Makeconfig
31
Makeconfig
@ -799,26 +799,19 @@ ifndef avoid-generated
|
|||||||
# This lets add-ons give more-specific matches that override defaults
|
# This lets add-ons give more-specific matches that override defaults
|
||||||
# in the top-level file.
|
# in the top-level file.
|
||||||
$(common-objpfx)shlib-versions.v.i: \
|
$(common-objpfx)shlib-versions.v.i: \
|
||||||
$(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) $(subdirs)))\
|
$(wildcard $(patsubst %, $(..)%/shlib-versions,$(add-ons) \
|
||||||
|
$(config-sysdirs) \
|
||||||
|
$(subdirs))) \
|
||||||
$(..)shlib-versions
|
$(..)shlib-versions
|
||||||
$(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
|
|
||||||
default_setname='$(filter-out %_default,$(oldest-abi:%=GLIBC_%))'; \
|
soversions-default-setname = $(patsubst %, %,\
|
||||||
while read conf version setname; do \
|
$(filter-out %_default,\
|
||||||
test -n "$$version" && \
|
$(oldest-abi:%=GLIBC_%)))
|
||||||
test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
|
$(common-objpfx)soversions.i: $(..)scripts/soversions.awk \
|
||||||
: "$$conf"` != 0 || continue; \
|
$(common-objpfx)shlib-versions.v
|
||||||
if test "x$$version" = xDEFAULT; then \
|
$(AWK) -v default_setname='$(soversions-default-setname)' \
|
||||||
default_setname="$$setname"; \
|
-v config='$(config-machine)-$(config-vendor)-$(config-os)' \
|
||||||
else \
|
-f $^ > $@T
|
||||||
$(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
|
|
||||||
mv -f $@T $@
|
mv -f $@T $@
|
||||||
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
|
$(common-objpfx)soversions.mk: $(common-objpfx)soversions.i
|
||||||
(while read lib number setname; do \
|
(while read lib number setname; do \
|
||||||
|
38
scripts/soversions.awk
Normal file
38
scripts/soversions.awk
Normal file
@ -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];
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user