diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Makerules | 13 | ||||
-rw-r--r-- | Versions.def | 151 | ||||
-rw-r--r-- | scripts/versionlist.awk | 39 |
4 files changed, 57 insertions, 156 deletions
@@ -1,5 +1,15 @@ 2014-03-14 Roland McGrath <roland@hack.frob.com> + * scripts/versionlist.awk: New file. + * Makerules [$(build-shared) = yes] + (postclean-generated): Add Versions.def, not Versions.def.v and + Versions.def.v.i. + ($(common-objpfx)Versions.def.v.i): Target removed. + ($(common-objpfx)Versions.def): New target. + ($(common-objpfx)Versions.all): Depend on that rather that + $(common-objpfx)Versions.def.v. + * Versions.def: File removed. + * Makeconfig (+gccwarn): Add -Wundef. * include/errno.h [IS_IN_rtld] [!RTLD_PRIVATE_ERRNO]: #error to catch a dl-sysdep.h breaking its contract. @@ -288,19 +288,22 @@ ifeq ($(build-shared),yes) $(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions common-generated += $(version-maps) postclean-generated += sysd-versions Versions.all abi-versions.h \ - Versions.def.v.i Versions.def.v Versions.v.i Versions.v + Versions.def Versions.v.i Versions.v ifndef avoid-generated ifneq ($(sysd-versions-subdirs),$(sorted-subdirs) $(config-sysdirs)) sysd-versions-force = FORCE FORCE: endif -# See %.v/%.v.i implicit rules in Makeconfig. -$(common-objpfx)Versions.def.v.i: $(..)Versions.def \ - $(wildcard $(add-ons:%=$(..)%/Versions.def)) + +$(common-objpfx)Versions.def: $(..)scripts/versionlist.awk \ + $(common-objpfx)Versions.v + LC_ALL=C $(AWK) -f $^ > $@T + mv -f $@T $@ + $(common-objpfx)Versions.all: $(..)scripts/firstversions.awk \ $(common-objpfx)soversions.i \ - $(common-objpfx)Versions.def.v + $(common-objpfx)Versions.def { while read which lib version setname; do \ test x"$$which" = xDEFAULT || continue; \ test -z "$$setname" || echo "$$lib : $$setname"; \ diff --git a/Versions.def b/Versions.def deleted file mode 100644 index 9bb343f..0000000 --- a/Versions.def +++ /dev/null @@ -1,151 +0,0 @@ -libBrokenLocale { - GLIBC_2.0 -} -libc { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.1.1 - GLIBC_2.1.2 - GLIBC_2.1.3 - GLIBC_2.1.4 - GLIBC_2.2 - GLIBC_2.2.1 - GLIBC_2.2.2 - GLIBC_2.2.3 - GLIBC_2.2.4 - GLIBC_2.2.5 - GLIBC_2.2.6 - GLIBC_2.3 - GLIBC_2.3.1 - GLIBC_2.3.2 - GLIBC_2.3.3 - GLIBC_2.3.4 - GLIBC_2.4 - GLIBC_2.5 - GLIBC_2.6 - GLIBC_2.7 - GLIBC_2.8 - GLIBC_2.9 - GLIBC_2.10 - GLIBC_2.11 - GLIBC_2.12 - GLIBC_2.13 - GLIBC_2.14 - GLIBC_2.15 - GLIBC_2.16 - GLIBC_2.17 - GLIBC_2.18 - GLIBC_2.19 - HURD_CTHREADS_0.3 -%ifdef EXPORT_UNWIND_FIND_FDE - GCC_3.0 -%endif - GLIBC_PRIVATE -} -libcrypt { - GLIBC_2.0 -} -libdl { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.3.3 - GLIBC_2.3.4 -} -libm { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.2 - GLIBC_2.2.3 - GLIBC_2.3 - GLIBC_2.3.4 - GLIBC_2.4 - GLIBC_2.15 - GLIBC_2.18 - GLIBC_2.19 -} -libnsl { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.2 -} -libnss_compat { - GLIBC_PRIVATE -} -libnss_dns { - GLIBC_PRIVATE -} -libnss_db { - GLIBC_PRIVATE -} -libnss_files { - GLIBC_PRIVATE -} -libnss_hesiod { - GLIBC_PRIVATE -} -libnss_nis { - GLIBC_PRIVATE -} -libnss_nisplus { - GLIBC_PRIVATE -} -libpthread { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.1.1 - GLIBC_2.1.2 - GLIBC_2.2 - GLIBC_2.2.3 - GLIBC_2.2.6 - GLIBC_2.3 - GLIBC_2.3.2 - GLIBC_2.3.3 - GLIBC_2.3.4 - GLIBC_2.4 - GLIBC_2.6 - GLIBC_2.11 - GLIBC_2.12 - GLIBC_2.18 - GLIBC_2.19 - GLIBC_PRIVATE -} -libresolv { - GLIBC_2.0 - GLIBC_2.2 - GLIBC_2.3.2 - GLIBC_2.9 - GLIBC_PRIVATE -} -librt { - GLIBC_2.1 - GLIBC_2.2 - GLIBC_2.3 - GLIBC_2.3.3 - GLIBC_2.3.4 - GLIBC_2.4 - GLIBC_2.7 - GLIBC_2.17 -} -libutil { - GLIBC_2.0 - GLIBC_2.9 -} -ld { - GLIBC_2.0 - GLIBC_2.1 - GLIBC_2.3 - GLIBC_2.4 - GLIBC_PRIVATE -} -libthread_db { - GLIBC_2.1.3 - GLIBC_2.2.3 - GLIBC_2.3 - GLIBC_2.3.3 -} -libanl { - GLIBC_2.2.3 -} -libcidn { - GLIBC_PRIVATE -} diff --git a/scripts/versionlist.awk b/scripts/versionlist.awk new file mode 100644 index 0000000..19fe672 --- /dev/null +++ b/scripts/versionlist.awk @@ -0,0 +1,39 @@ +# Extract ordered list of version sets from Versions files. +# Copyright (C) 2014 Free Software Foundation, Inc. + +BEGIN { in_lib = ""; in_version = 0 } + +!in_lib && NF == 2 && $2 == "{" { in_lib = $1; next } +!in_lib { next } + +NF == 2 && $2 == "{" { + in_version = 1; + libs[in_lib] = libs[in_lib] " " $1 "\n"; + lib_versions[in_lib, $1] = 1; + all_versions[$1] = 1; + next +} + +in_version && $1 == "}" { in_version = 0; next } +in_version { next } + +$1 == "}" { in_lib = ""; next } + +END { + nlibs = asorti(libs, libs_order); + for (i = 1; i <= nlibs; ++i) { + lib = libs_order[i]; + + for (v in all_versions) { + if (!((in_lib, v) in lib_versions)) { + libs[lib] = libs[lib] " " v "\n"; + } + } + + print lib, "{"; + sort = "sort -u -t. -k 1,1 -k 2n,2n -k 3"; + printf "%s", libs[lib] | sort; + close(sort); + print "}"; + } +} |