mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Move abilist files into sysdep dirs.
* Makerules (%.abilist): Add vpath on sysdep_dirs. (check-abi-%): Remove AWK script prerequisite and explicit abilist directory. (check-abi): Rewrite to just diff the symlist with the abilist. (config-tls, config-abi-config): Delete, no longer used. (update-abi-%): Remove AWK script and explicit abilist directory. (update-abi): Rewrite to simply compare and conditionally copy the symlist and the sysdep abilist file. Remove update-abi-config checks. * abilist/ld.abilist: Remove. * abilist/libBrokenLocale.abilist: Remove. * abilist/libanl.abilist: Remove. * abilist/libcrypt.abilist: Remove. * abilist/libdl.abilist: Remove. * abilist/librt.abilist: Remove. * abilist/libthread_db.abilist: Remove. * abilist/libutil.abilist: Remove. * scripts/extract-abilist.awk: Remove. * scripts/merge-abilist.awk: Remove. * sysdeps/generic/libcidn.abilist: New file. * sysdeps/generic/libnss_compat.abilist: New file. * sysdeps/generic/libnss_db.abilist: New file. * sysdeps/generic/libnss_dns.abilist: New file. * sysdeps/generic/libnss_files.abilist: New file. * sysdeps/generic/libnss_hesiod.abilist: New file. * sysdeps/generic/libnss_nis.abilist: New file. * sysdeps/generic/libnss_nisplus.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/i386/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/x86_64/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powercp32/fpu/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-32/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/s390/s390-64/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/sh/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libutil.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist: New file.
This commit is contained in:
@ -1,98 +0,0 @@
|
||||
# awk script to extract a config-specific .symlist file from a merged file.
|
||||
# This must be passed run with awk -v config=TUPLE to specify the configuration
|
||||
# tuple we will match. The merged file contains stanzas in the form:
|
||||
# GLIBC_x.y regexp...
|
||||
# | GLIBC_x.y.z regexp...
|
||||
# | GLIBC_m.n regexp...
|
||||
# function F
|
||||
# variable D 0x4
|
||||
# Each regexp is matched against TUPLE, and only matching stanzas go
|
||||
# into the output, with the regexp list removed. Multiple version lines
|
||||
# can match with the same regexp, meaning the stanza is duplicated in
|
||||
# multiple version sets. The result matches the original .symlist file
|
||||
# from abilist.awk that was fed into merge-abilist.awk.
|
||||
|
||||
BEGIN {
|
||||
inside = 0;
|
||||
}
|
||||
|
||||
/^ / {
|
||||
inside = 1;
|
||||
if (!ignore) {
|
||||
for (version in current) {
|
||||
if (version in versions)
|
||||
versions[version] = versions[version] "\n" $0;
|
||||
else
|
||||
versions[version] = $0;
|
||||
}
|
||||
}
|
||||
next;
|
||||
}
|
||||
|
||||
{
|
||||
second = ($1 == "|");
|
||||
if (second && inside) {
|
||||
printf "%s:%d: bad input line inside stanza: %s\n", FILENAME, FNR, $0;
|
||||
exit 1;
|
||||
}
|
||||
inside = 0;
|
||||
|
||||
for (i = second ? 3 : 2; i <= NF; ++i) {
|
||||
regex = "^" $i "$";
|
||||
if (match(config, regex) != 0) {
|
||||
if (!second || ignore)
|
||||
# Clear old array.
|
||||
split("", current);
|
||||
current[second ? $2 : $1] = 1;
|
||||
ignore = 0;
|
||||
next;
|
||||
}
|
||||
}
|
||||
|
||||
if (!second)
|
||||
ignore = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
END {
|
||||
nverlist = 0;
|
||||
for (version in versions) {
|
||||
if (nverslist == 0) {
|
||||
verslist = version;
|
||||
nverslist = 1;
|
||||
continue;
|
||||
}
|
||||
split(verslist, s, "\n");
|
||||
if (version < s[1]) {
|
||||
verslist = version;
|
||||
for (i = 1; i <= nverslist; ++i) {
|
||||
verslist = verslist "\n" s[i];
|
||||
}
|
||||
}
|
||||
else {
|
||||
verslist = s[1];
|
||||
for (i = 2; i <= nverslist; ++i) {
|
||||
if (version < s[i]) break;
|
||||
verslist = verslist "\n" s[i];
|
||||
}
|
||||
verslist = verslist "\n" version;
|
||||
for (; i <= nverslist; ++i) {
|
||||
verslist = verslist "\n" s[i];
|
||||
}
|
||||
}
|
||||
++nverslist;
|
||||
}
|
||||
|
||||
split(verslist, order, "\n");
|
||||
for (i = 1; i <= nverslist; ++i) {
|
||||
version = order[i];
|
||||
|
||||
print version;
|
||||
outpipe = "sort";
|
||||
print versions[version] | outpipe;
|
||||
close(outpipe);
|
||||
|
||||
if (version == lastversion)
|
||||
break;
|
||||
}
|
||||
}
|
@ -1,156 +0,0 @@
|
||||
# awk script to merge a config-specific .symlist file with others.
|
||||
# The input files should be existing .abilist files, and a .symlist
|
||||
# file. This must be run with awk -v config=REGEXP to specify a
|
||||
# regexp matching configuration tuples for which the .symlist input
|
||||
# defines an ABI. The result merges all duplicate occurrences of any
|
||||
# symbol into a stanza listing the regexps matching configurations
|
||||
# that contain it and giving associated versions.
|
||||
# The merged file contains stanzas in the form:
|
||||
# GLIBC_x.y regexp...
|
||||
# | GLIBC_x.y.z regexp...
|
||||
# | GLIBC_m.n regexp...
|
||||
# function F
|
||||
# variable D 0x4
|
||||
|
||||
BEGIN { current = "UNSET" }
|
||||
|
||||
/^[^| ]/ {
|
||||
if (NF < 2 && config == "") {
|
||||
print FILENAME ":" FNR ": BAD SET LINE:", $0 > "/dev/stderr";
|
||||
exit 2;
|
||||
}
|
||||
|
||||
if (NF < 2) {
|
||||
current = $1 ":" config;
|
||||
}
|
||||
else {
|
||||
# Filter out the old stanzas from the config we are merging in.
|
||||
# That way, if a set disappears from the .symlist file for this
|
||||
# config, the old stanza doesn't stay in the merged output tagged
|
||||
# for this config. (Disappearing sets might happen during development,
|
||||
# and between releases could happen on a soname change).
|
||||
nc = 0;
|
||||
for (i = 2; i <= NF; ++i)
|
||||
if ($i != config)
|
||||
c[nc++] = $i;
|
||||
if (nc == 0)
|
||||
current = "";
|
||||
else {
|
||||
current = $1 ":" c[0];
|
||||
for (i = 1; i < nc; ++i)
|
||||
current = current "," $1 ":" c[i];
|
||||
}
|
||||
}
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
/^\| / {
|
||||
if (NF < 3 || current == "UNSET") {
|
||||
print FILENAME ":" FNR ": BAD | LINE:", $0 > "/dev/stderr";
|
||||
exit 2;
|
||||
}
|
||||
|
||||
nc = 0;
|
||||
for (i = 3; i <= NF; ++i)
|
||||
if ($i != config)
|
||||
c[nc++] = $i;
|
||||
for (i = 0; i < nc; ++i)
|
||||
current = current "," $2 ":" c[i];
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
{
|
||||
if (current == "") next;
|
||||
if (current == "UNSET") {
|
||||
print FILENAME ":" FNR ": IGNORED LINE:", $0 > "/dev/stderr";
|
||||
next;
|
||||
}
|
||||
|
||||
ns = split(seen[$0], s, ",");
|
||||
nc = split(current, c, ",");
|
||||
for (i = 1; i <= nc; ++i) {
|
||||
if (c[i] == "")
|
||||
continue;
|
||||
# Sorted insert.
|
||||
for (j = 1; j <= ns; ++j) {
|
||||
if (c[i] == s[j])
|
||||
break;
|
||||
if (c[i] < s[j]) {
|
||||
for (k = ns; k >= j; --k)
|
||||
s[k + 1] = s[k];
|
||||
s[j] = c[i];
|
||||
++ns;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (j > ns)
|
||||
s[++ns] = c[i];
|
||||
}
|
||||
|
||||
seen[$0] = s[1];
|
||||
for (i = 2; i <= ns; ++i)
|
||||
seen[$0] = seen[$0] "," s[i];
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
END {
|
||||
for (line in seen) {
|
||||
if (seen[line] in stanzas)
|
||||
stanzas[seen[line]] = stanzas[seen[line]] "\n" line;
|
||||
else
|
||||
stanzas[seen[line]] = line;
|
||||
}
|
||||
|
||||
ns = split("", s);
|
||||
for (configs in stanzas) {
|
||||
# Sorted insert.
|
||||
for (j = 1; j <= ns; ++j) {
|
||||
if (configs == s[j])
|
||||
break;
|
||||
if (configs < s[j]) {
|
||||
for (k = ns; k >= j; --k)
|
||||
s[k + 1] = s[k];
|
||||
s[j] = configs;
|
||||
++ns;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (j > ns)
|
||||
s[++ns] = configs;
|
||||
}
|
||||
|
||||
# S[1..NS] is now a sorted list of stanza identifiers.
|
||||
# STANZAS[ID] contains the lines for that stanza.
|
||||
# All we have to do is pretty-print the stanza ID,
|
||||
# and then print the sorted list.
|
||||
|
||||
for (i = 1; i <= ns; ++i) {
|
||||
# S[I] is a sorted, comma-separated list of SET:CONFIG pairs.
|
||||
# All we have to do is pretty-print them.
|
||||
nc = split(s[i], c, ",");
|
||||
lastvers = lastconf = "";
|
||||
for (j = 1; j <= nc; ++j) {
|
||||
split(c[j], temp, ":");
|
||||
version = temp[1];
|
||||
conf = temp[2];
|
||||
if (version != lastvers)
|
||||
printf "%s%s", (lastvers != "" ? "\n| " : ""), version;
|
||||
# Hack: if CONF is foo.*/bar and LASTCONF was foo.*,
|
||||
# then we can omit the foo.*/bar since foo.* matches already.
|
||||
# Note we don't update LASTCONF, so foo.*/baz next time will match too.
|
||||
else if ((slash = index(conf, ".*/")) > 0 && \
|
||||
substr(conf, 1, slash + 2 - 1) == lastconf)
|
||||
continue;
|
||||
printf " %s", conf;
|
||||
lastvers = version;
|
||||
lastconf = conf;
|
||||
}
|
||||
print "";
|
||||
outpipe = "sort";
|
||||
print stanzas[s[i]] | outpipe;
|
||||
close(outpipe);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user