aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Makerules13
-rw-r--r--Versions.def151
-rw-r--r--scripts/versionlist.awk39
4 files changed, 57 insertions, 156 deletions
diff --git a/ChangeLog b/ChangeLog
index 4357cb741d..99d2caed9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/Makerules b/Makerules
index ad81ea9f76..008e80a33a 100644
--- a/Makerules
+++ b/Makerules
@@ -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 9bb343f69b..0000000000
--- 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 0000000000..19fe672991
--- /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 "}";
+ }
+}