This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]