aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2020-06-19 07:52:42 -0600
committerJacob Bachmeyer <jcb62281+dev@gmail.com>2020-06-20 21:59:48 -0500
commit57edff84aa64cd73600491335f734e83151d39f3 (patch)
treeb47c951ca1d12ec05488537a4579a0fb51c68432 /lib
parent5fafcd43b2d22b2227e62f7278584418c6449824 (diff)
downloaddejagnu-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')
-rw-r--r--lib/target.exp33
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]} {