This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.19-226-ga5e5f1e
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 25 Mar 2014 22:00:53 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.19-226-ga5e5f1e
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via a5e5f1e281c3472328e67c7744c300018242c5f0 (commit)
from 00f4012a2fe0e12e6bc56438a20fff76208e0b5a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a5e5f1e281c3472328e67c7744c300018242c5f0
commit a5e5f1e281c3472328e67c7744c300018242c5f0
Author: Roland McGrath <roland@hack.frob.com>
Date: Tue Mar 25 11:16:51 2014 -0700
Kludge fix for Versions.def regression
diff --git a/ChangeLog b/ChangeLog
index 92cd973..c4ba460 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-25 Roland McGrath <roland@hack.frob.com>
+
+ * scripts/versionlist.awk: Partition the version sets and emit all
+ GLIBC_* (sorted) before all others (sorted).
+
2014-03-25 Joseph Myers <joseph@codesourcery.com>
* elf/Versions (libc) [EXPORT_UNWIND_FIND_FDE]: Add empty
diff --git a/scripts/versionlist.awk b/scripts/versionlist.awk
index 19fe672..2360153 100644
--- a/scripts/versionlist.awk
+++ b/scripts/versionlist.awk
@@ -3,14 +3,25 @@
BEGIN { in_lib = ""; in_version = 0 }
-!in_lib && NF == 2 && $2 == "{" { in_lib = $1; next }
+!in_lib && NF == 2 && $2 == "{" {
+ in_lib = $1;
+ all_libs[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;
+ # Partition the version sets into GLIBC_* and others.
+ if ($1 ~ /GLIBC_/) {
+ libs[in_lib] = libs[in_lib] " " $1 "\n";
+ all_versions[$1] = 1;
+ }
+ else {
+ others_libs[in_lib] = others_libs[in_lib] " " $1 "\n";
+ others_all_versions[$1] = 1;
+ }
next
}
@@ -20,20 +31,37 @@ in_version { next }
$1 == "}" { in_lib = ""; next }
END {
- nlibs = asorti(libs, libs_order);
+ nlibs = asorti(all_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)) {
+ if (!((lib, v) in lib_versions)) {
libs[lib] = libs[lib] " " v "\n";
}
}
+ for (v in others_all_versions) {
+ if (!((lib, v) in lib_versions)) {
+ others_libs[lib] = others_libs[lib] " " v "\n";
+ }
+ }
+
print lib, "{";
+
+ # Sort and print all the GLIBC_* sets first, then all the others.
+ # This is not really generically right, but it suffices
+ # for the cases we have so far. e.g. GCC_3.0 is "later than"
+ # all GLIBC_* sets that matter for purposes of Versions files.
+
sort = "sort -u -t. -k 1,1 -k 2n,2n -k 3";
printf "%s", libs[lib] | sort;
close(sort);
+
+ sort = "sort -u -t. -k 1,1 -k 2n,2n -k 3";
+ printf "%s", others_libs[lib] | sort;
+ close(sort);
+
print "}";
}
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
scripts/versionlist.awk | 38 +++++++++++++++++++++++++++++++++-----
2 files changed, 38 insertions(+), 5 deletions(-)
hooks/post-receive
--
GNU C Library master sources