Workaround debian change to default value of --as-needed.

gdb/testsuite/ChangeLog:

	* lib/future.exp (gdb_default_target_compile): New option
	"early_flags".
	* lib/gdb.exp (gdb_compile): Undo debian's change in default of
	--as-needed.
This commit is contained in:
Doug Evans 2015-07-24 15:24:37 -07:00
parent 4fd4095a5f
commit 6ebea266fd
3 changed files with 25 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2015-07-24 Doug Evans <dje@google.com>
* lib/future.exp (gdb_default_target_compile): New option
"early_flags".
* lib/gdb.exp (gdb_compile): Undo debian's change in default of
--as-needed.
2015-07-24 Doug Evans <dje@google.com>
* gdb.perf/lib/perftest/measure.py (MeasurementCpuTime::stop): Print

View File

@ -135,14 +135,15 @@ proc gdb_default_target_compile {source destfile type options} {
error "Must supply an output filename for the compile to default_target_compile"
}
set early_flags ""
set add_flags ""
set libs ""
set compiler_type "c"
set compiler ""
set linker ""
# linker_opts_order is one of "sources-then-flags", "flags-then-sources".
# The order shouldn't matter. It's done this way to preserve
# existing behavior.
# The order matters for things like -Wl,--as-needed. The default is to
# preserve existing behavior.
set linker_opts_order "sources-then-flags"
set ldflags ""
set dest [target_info name]
@ -240,6 +241,10 @@ proc gdb_default_target_compile {source destfile type options} {
regsub "^compiler=" $i "" tmp
set compiler $tmp
}
if {[regexp "^early_flags=" $i]} {
regsub "^early_flags=" $i "" tmp
append early_flags " $tmp"
}
if {[regexp "^additional_flags=" $i]} {
regsub "^additional_flags=" $i "" tmp
append add_flags " $tmp"
@ -473,15 +478,15 @@ proc gdb_default_target_compile {source destfile type options} {
# become confused about the name of the actual source file.
switch $type {
"object" {
set opts "$add_flags $sources"
set opts "$early_flags $add_flags $sources"
}
"executable" {
switch $linker_opts_order {
"flags-then-sources" {
set opts "$add_flags $sources"
set opts "$early_flags $add_flags $sources"
}
"sources-then-flags" {
set opts "$sources $add_flags"
set opts "$early_flags $sources $add_flags"
}
default {
error "Invalid value for board_info linker_opts_order"
@ -489,7 +494,7 @@ proc gdb_default_target_compile {source destfile type options} {
}
}
default {
set opts "$sources $add_flags"
set opts "$early_flags $sources $add_flags"
}
}

View File

@ -3026,6 +3026,13 @@ proc gdb_compile {source dest type options} {
|| [istarget *-*-cygwin*]) } {
lappend new_options "additional_flags=-Wl,--enable-auto-import"
}
if { [test_compiler_info "gcc-*"] || [test_compiler_info "clang-*"] } {
# Undo debian's change in the default.
# Put it at the front to not override any user-provided
# value, and to make sure it appears in front of all the
# shlibs!
lappend new_options "early_flags=-Wl,--no-as-needed"
}
}
} elseif { $opt == "shlib_load" } {
set shlib_load 1