diff options
author | Tom Tromey <tromey@adacore.com> | 2020-06-19 07:52:42 -0600 |
---|---|---|
committer | Jacob Bachmeyer <jcb62281+dev@gmail.com> | 2020-06-20 21:59:48 -0500 |
commit | 57edff84aa64cd73600491335f734e83151d39f3 (patch) | |
tree | b47c951ca1d12ec05488537a4579a0fb51c68432 /lib/target.exp | |
parent | 5fafcd43b2d22b2227e62f7278584418c6449824 (diff) | |
download | dejagnu-57edff84aa64cd73600491335f734e83151d39f3.zip dejagnu-57edff84aa64cd73600491335f734e83151d39f3.tar.gz dejagnu-57edff84aa64cd73600491335f734e83151d39f3.tar.bz2 |
Add early_flags to default_target_compile
This adds early_flags support to default_target_compile. This
originated in this gdb patch:
commit 6ebea266fd0a7a56c90db3ab6237ff9f6c919747
Author: Doug Evans <dje@google.com>
Date: Fri Jul 24 15:24:37 2015 -0700
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 patch also pulls in the "linker_opts_order" code, though nothing
uses it yet. A use will come in a subsequent patch.
Diffstat (limited to 'lib/target.exp')
-rw-r--r-- | lib/target.exp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/lib/target.exp b/lib/target.exp index d240007..c98fbd0 100644 --- a/lib/target.exp +++ b/lib/target.exp @@ -311,6 +311,11 @@ proc default_target_compile {source destfile type options} { error "Must supply an output filename for the compile to default_target_compile" } + set early_flags "" + # linker_opts_order is one of "sources-then-flags", "flags-then-sources". + # The order matters for things like -Wl,--as-needed. The default is to + # preserve existing behavior. + set linker_opts_order "sources-then-flags" set add_flags "" set libs "" set compiler_type "c" @@ -407,6 +412,10 @@ proc 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" @@ -634,10 +643,26 @@ proc default_target_compile {source destfile type options} { # This is obscure: we put SOURCES at the end when building an # object, because otherwise, in some situations, libtool will # become confused about the name of the actual source file. - if {$type eq "object"} { - set opts "$add_flags $sources" - } else { - set opts "$sources $add_flags" + switch $type { + "object" { + set opts "$early_flags $add_flags $sources" + } + "executable" { + switch $linker_opts_order { + "flags-then-sources" { + set opts "$early_flags $add_flags $sources" + } + "sources-then-flags" { + set opts "$early_flags $sources $add_flags" + } + default { + error "Invalid value for board_info linker_opts_order" + } + } + } + default { + set opts "$early_flags $sources $add_flags" + } } if {[isremote host]} { |