aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog1
-rw-r--r--libstdc++-v3/testsuite/abi_check.cc10
2 files changed, 10 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6c43da0..38d12c8 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,6 +1,7 @@
2002-08-22 Loren J. Rittle <ljrittle@acm.org>
* testsuite/abi_check.cc: Enhance shell portability.
+ Support older binutils/readelf.
* config/abi/i386-unknown-freebsd4.6: Add.
* config/abi/i386-unknown-freebsd4.6/baseline_symbols.txt: New file.
diff --git a/libstdc++-v3/testsuite/abi_check.cc b/libstdc++-v3/testsuite/abi_check.cc
index b3a695c..befac6b 100644
--- a/libstdc++-v3/testsuite/abi_check.cc
+++ b/libstdc++-v3/testsuite/abi_check.cc
@@ -236,8 +236,16 @@ int main(int argc, char** argv)
*/
const char quote = '"';
const char bslash = '\\';
+
+ // GNU binutils, somewhere after version 2.11.2, requires -W/--wide
+ // to avoid default line truncation. -W is not supported and
+ // truncation did not occur by default before that point.
+ bool readelf_need_wide =
+ (system("readelf --help | grep -- --wide >/dev/null") == 0);
+
ostringstream cmd;
- cmd << "readelf -s -W " << test_lib << " | sed '/" << bslash
+ cmd << "readelf -s " << (readelf_need_wide ? "-W " : "")
+ << test_lib << " | sed '/" << bslash
<< ".dynsym/,/^$/p;d' | egrep -v ' (LOCAL|UND) ' | "
<< "awk '{ if ($4 == " << quote << "FUNC" << quote << "|| $4 == "
<< quote << "NOTYPE" << quote << ") printf " << quote << "%s:%s"