This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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]

[Patch] Make libstdc++'s abi_check more robust against readelf output format


Make libstdc++'s abi_check more robust against readelf output format.

libstdc++-abi/abi_check in the libstdc++-v3 testsuite relies on a fixed
number of space separated fields in readelf output.  However, the field
count for readelf output can vary where the library contains OS or processor
specific bindings, or other unknown bindings.

This patch replaces the strings that readelf outputs for such bindings
with alternative strings that use underscores in place of space.  It
preserves the count of fields for such cases, and allows the awk statement
that follows to find the desired field correctly with $n.

OK for trunk?

libstdc++-v3/ChangeLog:
2011-05-20  Simon Baldwin  <simonb@google.com>

	* scripts/extract_symvers.in: Handle processor/OS specific or
	unknown symbol binding strings from readelf.


Index: libstdc++-v3/scripts/extract_symvers.in
===================================================================
--- libstdc++-v3/scripts/extract_symvers.in	(revision 173951)
+++ libstdc++-v3/scripts/extract_symvers.in	(working copy)
@@ -52,6 +52,9 @@ SunOS)
   ${readelf} ${lib} |\
   sed -e 's/ \[<other>: [A-Fa-f0-9]*\] //' -e '/\.dynsym/,/^$/p;d' |\
   egrep -v ' (LOCAL|UND) ' |\
+  sed -e 's/ <processor specific>: / <processor_specific>:_/g' |\
+  sed -e 's/ <OS specific>: / <OS_specific>:_/g' |\
+  sed -e 's/ <unknown>: / <unknown>:_/g' |\
   awk '{ if ($4 == "FUNC" || $4 == "NOTYPE")
            printf "%s:%s\n", $4, $8;
          else if ($4 == "OBJECT" || $4 == "TLS")


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