This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[Patch] Make libstdc++'s abi_check more robust against readelf output format
- From: simonb at google dot com (Simon Baldwin)
- To: gcc-patches at gcc dot gnu dot org, ppluzhnikov at google dot com, libstdc++ at gcc dot gnu dot org
- Cc: c at google dot com
- Date: Fri, 20 May 2011 11:05:29 -0400 (EDT)
- Subject: [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")