From 14a393a3fbc8d1799328f622fb6301b80fc4910e Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Fri, 1 Jul 2011 08:59:20 +0000 Subject: [PATCH] re PR libmudflap/49549 (Use of --noinhibit-exec is unportable) libmudflap: PR libmudflap/49549 * testsuite/lib/libmudflap.exp (load_gcc_lib): Load target-supports.exp. * testsuite/libmudflap.cth/cthfrags.exp: Only pass --noinhibit-exec to GNU ld. gcc: PR libmudflap/49549 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. gcc/testsuite: PR libmudflap/49549 * lib/target-supports.exp (check_effective_target_gld): New proc. From-SVN: r175749 --- gcc/ChangeLog | 5 +++++ gcc/doc/sourcebuild.texi | 3 +++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/lib/target-supports.exp | 20 +++++++++++++++++++ libmudflap/ChangeLog | 8 ++++++++ libmudflap/testsuite/lib/libmudflap.exp | 3 ++- .../testsuite/libmudflap.cth/cthfrags.exp | 13 ++++++++---- 7 files changed, 52 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a4b743cf44b..21d2c1e6467 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-07-01 Rainer Orth + + PR libmudflap/49549 + * doc/sourcebuild.texi (Effective-Target Keywords): Document gld. + 2011-07-01 Jakub Jelinek * tree-pretty-print.c (dump_generic_code) : Print diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index d2cc4ea3ead..3d41c0d029e 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1760,6 +1760,9 @@ Target uses GNU @command{as}. @item gc_sections Target supports @option{--gc-sections}. +@item gld +Target uses GNU @command{ld}. + @item keeps_null_pointer_checks Target keeps null pointer checks, either due to the use of @option{-fno-delete-null-pointer-checks} or hardwired into the target. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 17046d6391b..9b7219790fc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-07-01 Rainer Orth + + PR libmudflap/49549 + * lib/target-supports.exp (check_effective_target_gld): New proc. + 2011-07-01 Richard Guenther PR tree-optimization/49603 diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 393c3ade82e..4e56e48412f 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -3843,6 +3843,26 @@ proc check_effective_target_gas { } { return $use_gas_saved } +# Return 1 if GNU ld is used. + +proc check_effective_target_gld { } { + global use_gld_saved + global tool + + if {![info exists use_gld_saved]} { + # Check if the ld used by gcc is GNU ld. + set gcc_ld [lindex [${tool}_target_compile "-print-prog-name=ld" "" "none" ""] 0] + set status [remote_exec host "$gcc_ld" "--version"] + set ld_output [lindex $status 1] + if { [ string first "GNU" $ld_output ] >= 0 } { + set use_gld_saved 1 + } else { + set use_gld_saved 0 + } + } + return $use_gld_saved +} + # Return 1 if the compiler has been configure with link-time optimization # (LTO) support. diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog index f44f0ed18fe..177c01865d3 100644 --- a/libmudflap/ChangeLog +++ b/libmudflap/ChangeLog @@ -1,3 +1,11 @@ +2011-07-01 Rainer Orth + + PR libmudflap/49549 + * testsuite/lib/libmudflap.exp (load_gcc_lib): Load + target-supports.exp. + * testsuite/libmudflap.cth/cthfrags.exp: Only pass + --noinhibit-exec to GNU ld. + 2011-06-27 Rainer Orth PR libmudflap/38738 diff --git a/libmudflap/testsuite/lib/libmudflap.exp b/libmudflap/testsuite/lib/libmudflap.exp index a09eb959aae..bd9327d1408 100644 --- a/libmudflap/testsuite/lib/libmudflap.exp +++ b/libmudflap/testsuite/lib/libmudflap.exp @@ -1,4 +1,4 @@ -# Copyright (C) 2001, 2002, 2003, 2004, 2009, 2010 +# Copyright (C) 2001, 2002, 2003, 2004, 2009, 2010, 2011 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -30,6 +30,7 @@ proc load_gcc_lib { filename } { load_lib mfdg.exp load_lib libgloss.exp load_gcc_lib target-libpath.exp +load_gcc_lib target-supports.exp load_gcc_lib timeout.exp load_gcc_lib timeout-dg.exp diff --git a/libmudflap/testsuite/libmudflap.cth/cthfrags.exp b/libmudflap/testsuite/libmudflap.cth/cthfrags.exp index e5a7de84354..a025b03805f 100644 --- a/libmudflap/testsuite/libmudflap.cth/cthfrags.exp +++ b/libmudflap/testsuite/libmudflap.cth/cthfrags.exp @@ -11,10 +11,15 @@ foreach flags $MUDFLAP_FLAGS { set bsrc [file tail $srcfile] setenv MUDFLAP_OPTIONS "-viol-segv" if {$libmudflapth} then { - # --noinhibit-exec works around a ld problem that causes - # "Dwarf Error: Invalid or unhandled FORM value: 14" - # to fail builds unnecessarily. - dg-runtest $srcfile $flags "-fmudflapth -lmudflapth -lpthread -Wl,--noinhibit-exec" + if [check_effective_target_gld] { + # --noinhibit-exec works around a ld problem that causes + # "Dwarf Error: Invalid or unhandled FORM value: 14" + # to fail builds unnecessarily. + set noie_option " -Wl,--noinhibit-exec" + } else { + set noie_option "" + } + dg-runtest $srcfile $flags "-fmudflapth -lmudflapth -lpthread $noie_option" } else { if {$flags != ""} {set f " ($flags)"} {set f ""} untested "libmudflap.cth/$bsrc$f"