diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-08-23 06:12:37 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-08-23 06:12:50 -0700 |
commit | 7dd36a6f1ca92cd4ca4776064c604cda7755bc44 (patch) | |
tree | 0e8bd6bf4cc5c2bfcaf2a0052cf6ef5fe91b9ff4 /binutils/testsuite/lib | |
parent | 44c2eb66808a928b8101f1b880f3482312cbcc1e (diff) | |
download | gdb-7dd36a6f1ca92cd4ca4776064c604cda7755bc44.zip gdb-7dd36a6f1ca92cd4ca4776064c604cda7755bc44.tar.gz gdb-7dd36a6f1ca92cd4ca4776064c604cda7755bc44.tar.bz2 |
Prune BFD warnings for unknown GNU properties
When glibc is enabled with the new GNU_PROPERTY_X86_XXX bits:
https://groups.google.com/forum/#!topic/x86-64-abi/-D05GQ3kWrA
BFD will issue an unknown GNU property warning like
warning: tmpdir/ld1: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001
and ignore such GNU properties. This patch adds prune_warnings_extra to
prune such warnings on release branches and updates prune_warnings to
call prune_warnings_extra.
binutils/
PR ld/23536
* Makefile.am (development.exp): New target.
(EXTRA_DEJAGNU_SITE_CONFIG): New.
(DISTCLEANFILES): Add development.exp.
* Makefile.in: Regenerated.
* testsuite/binutils-all/objcopy.exp (strip_test): Call
prune_warnings to prune BFD output.
(strip_test_with_saving_a_symbol): Likewise.
(objcopy_test_without_global_symbol): Likewise.
* testsuite/lib/binutils-common.exp (prune_warnings_extra):
New proc.
(prune_warnings): Likewise.
gas/
PR ld/23536
* Makefile.am (development.exp): New target.
(EXTRA_DEJAGNU_SITE_CONFIG): New.
(DISTCLEANFILES): Add development.exp.
* Makefile.in: Regenerated.
ld/
PR ld/23536
* Makefile.am (development.exp): New target.
(EXTRA_DEJAGNU_SITE_CONFIG): New.
(DISTCLEANFILES): Add development.exp.
* Makefile.in: Regenerated.
* testsuite/ld-bootstrap/bootstrap.exp: Call prune_warnings to
prune BFD output.
* testsuite/ld-plugin/lto.exp: Likewise.
* testsuite/lib/ld-lib.exp (prune_warnings): Removed.
* testsuite/ld-elf/shared.exp: Allow "\n" in linker warnings.
Diffstat (limited to 'binutils/testsuite/lib')
-rw-r--r-- | binutils/testsuite/lib/binutils-common.exp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index b1ede4c..bac1407 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -397,3 +397,50 @@ proc regexp_diff { file_1 file_2 args } { return $differences } + +# prune_warnings_extra -- delete extra warnings from TEXT. +# +# An example is: +# ld: warning: /lib64/ld-linux-x86-64.so.2: unsupported GNU_PROPERTY_TYPE (5) type : 0xc0010001 +proc prune_warnings_extra { text } { + global experimental + # Warnings are only pruned from non-experimental code (ie code not + # on a release branch). For experimental code we want the warnings + # as they indicate that the sources need to be updated to recognise + # the new properties. + if { "$experimental" == "false" } { + # The "\\1" is to try to preserve a "\n" but only if necessary. + regsub -all "(^|\n)(\[^\n\]*: warning:\[^\n\]*unsupported GNU_PROPERTY_TYPE\[^\n\]*\n?)+" $text "\\1" text + } + return $text +} + +# This definition is taken from an unreleased version of DejaGnu. Once +# that version gets released, and has been out in the world for a few +# months at least, it may be safe to delete this copy. +if ![string length [info proc prune_warnings]] { + # + # prune_warnings -- delete various system verbosities from TEXT + # + # An example is: + # ld.so: warning: /usr/lib/libc.so.1.8.1 has older revision than expected 9 + # + # Sites with particular verbose os's may wish to override this in site.exp. + # + proc prune_warnings { text } { + # This is from sun4's. Do it for all machines for now. + # The "\\1" is to try to preserve a "\n" but only if necessary. + regsub -all "(^|\n)(ld.so: warning:\[^\n\]*\n?)+" $text "\\1" text + # It might be tempting to get carried away and delete blank lines, etc. + # Just delete *exactly* what we're ask to, and that's it. + set text [prune_warnings_extra $text] + return $text + } +} elseif { [info procs saved-prune_warnings] == [list] } { + rename prune_warnings saved-prune_warnings + proc prune_warnings { text } { + set text [saved-prune_warnings $text] + set text [prune_warnings_extra $text] + return $text + } +} |