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.15-655-g83bcd23


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  83bcd2361de9d2da98abef1e4b8f2dddae5a2b14 (commit)
      from  f37e0d6819c5ec185bed71dd72722176d88f6bef (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=83bcd2361de9d2da98abef1e4b8f2dddae5a2b14

commit 83bcd2361de9d2da98abef1e4b8f2dddae5a2b14
Author: Roland McGrath <roland@hack.frob.com>
Date:   Tue Apr 24 13:53:38 2012 -0700

    Add flexibility to localplt-*.data files, using an awk script rather than diff to check the results.

diff --git a/ChangeLog b/ChangeLog
index d22702d..d84ae7a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,11 @@
 
 2012-04-24  Roland McGrath  <roland@hack.frob.com>
 
+	* scripts/check-localplt.awk: New file.
+	* elf/Makefile ($(objpfx)check-localplt.out): Use that script instead
+	of diff.
+	* scripts/data/localplt-generic.data: Add a comment.
+
 	* sysdeps/mach/hurd/symlink.c: Don't call __mach_port_deallocate on
 	NODE when __dir_mkfile failed.
 	* sysdeps/mach/hurd/symlinkat.c: Likewise.
diff --git a/elf/Makefile b/elf/Makefile
index a77e792..fd766c5 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -933,8 +933,7 @@ $(objpfx)check-localplt.out: $(objpfx)check-localplt \
 			     $(common-objpfx)crypt/libcrypt.so \
 			     $(check-data)
 	$(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
-	  LC_ALL=C sort | \
-	  diff -u $(check-data) - > $@
+	  $(AWK) -f $(..)scripts/check-localplt.awk $(check-data) -
 endif
 
 $(objpfx)tst-dlopenrpathmod.so: $(libdl)
diff --git a/scripts/check-localplt.awk b/scripts/check-localplt.awk
new file mode 100644
index 0000000..bb1b912
--- /dev/null
+++ b/scripts/check-localplt.awk
@@ -0,0 +1,53 @@
+# This is an awk script to process the output of elf/check-localplt.
+# The first file argument is the file of expected results.
+# Each line is either a comment starting with # or it looks like:
+#	libfoo.so: function
+# or
+#	libfoo.so: function ?
+# The latter means that a PLT entry for function is optional in libfoo.so.
+# The former means one is required.
+# The second file argument is - and this (stdin) receives the output
+# of the check-localplt program.
+
+BEGIN { result = 0 }
+
+FILENAME != "-" && /^#/ { next }
+
+FILENAME != "-" {
+  if (NF != 2 && !(NF == 3 && $3 == "?")) {
+    printf "%s:%d: bad data line: %s\n", FILENAME, FNR, $0 > "/dev/stderr";
+    result = 2;
+  } else {
+    accept[$1 " " $2] = NF == 2;
+  }
+  next;
+}
+
+NF != 2 {
+  print "Unexpected output from check-localplt:", $0 > "/dev/stderr";
+  result = 2;
+  next
+}
+
+{
+  key = $1 " " $2
+  if (key in accept) {
+    delete accept[key]
+  } else {
+    print "Extra PLT reference:", $0;
+    if (result == 0)
+      result = 1;
+  }
+}
+
+END {
+  for (key in accept) {
+    if (accept[key]) {
+      # It's mandatory.
+      print "Missing required PLT reference:", key;
+      result = 1;
+    }
+  }
+
+  exit(result);
+}
diff --git a/scripts/data/localplt-generic.data b/scripts/data/localplt-generic.data
index 2219aa9..d296519 100644
--- a/scripts/data/localplt-generic.data
+++ b/scripts/data/localplt-generic.data
@@ -1,3 +1,6 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
 libc.so: calloc
 libc.so: free
 libc.so: malloc

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                          |    5 +++
 elf/Makefile                       |    3 +-
 scripts/check-localplt.awk         |   53 ++++++++++++++++++++++++++++++++++++
 scripts/data/localplt-generic.data |    3 ++
 4 files changed, 62 insertions(+), 2 deletions(-)
 create mode 100644 scripts/check-localplt.awk


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]