diff options
| -rw-r--r-- | libstdc++-v3/ChangeLog | 1 | ||||
| -rw-r--r-- | libstdc++-v3/testsuite/abi_check.cc | 10 |
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" |
