mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
[gdb/testsuite] Fix ada tests with -fPIE/-pie
When running the gdb testsuite with target board unix/-fPIE/-pie, the resulting ada executables are not PIE executables, because gnatmake doesn't recognize -pie, and consequently doesn't pass it to gnatlink. Fix this by replacing "-pie" with "-largs -pie -margs" in target_compile_ada_from_dir, and doing the same for -no-pie. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-10-10 Tom de Vries <tdevries@suse.de> PR testsuite/24888 * lib/ada.exp (target_compile_ada_from_dir): Route -pie/-no-pie to gnatlink.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2019-10-10 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
|
PR testsuite/24888
|
||||||
|
* lib/ada.exp (target_compile_ada_from_dir): Route -pie/-no-pie to
|
||||||
|
gnatlink.
|
||||||
|
|
||||||
2019-10-09 Tom de Vries <tdevries@suse.de>
|
2019-10-09 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
PR testsuite/25048
|
PR testsuite/25048
|
||||||
|
@ -19,11 +19,36 @@
|
|||||||
|
|
||||||
proc target_compile_ada_from_dir {builddir source dest type options} {
|
proc target_compile_ada_from_dir {builddir source dest type options} {
|
||||||
set saved_cwd [pwd]
|
set saved_cwd [pwd]
|
||||||
|
|
||||||
|
global board
|
||||||
|
set board [target_info name]
|
||||||
|
set save_multilib_flag [board_info $board multilib_flags]
|
||||||
|
set multilib_flag ""
|
||||||
|
foreach op $save_multilib_flag {
|
||||||
|
if { $op == "-pie" || $op == "-no-pie" } {
|
||||||
|
# Pretend gnatmake supports -pie/-no-pie, route it to
|
||||||
|
# linker.
|
||||||
|
append multilib_flag " -largs $op -margs"
|
||||||
|
} else {
|
||||||
|
append multilib_flag " $op"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if { $multilib_flag != "" } {
|
||||||
|
unset_board_info "multilib_flags"
|
||||||
|
set_board_info multilib_flags "$multilib_flag"
|
||||||
|
}
|
||||||
|
|
||||||
catch {
|
catch {
|
||||||
cd $builddir
|
cd $builddir
|
||||||
return [target_compile $source $dest $type $options]
|
return [target_compile $source $dest $type $options]
|
||||||
} result options
|
} result options
|
||||||
cd $saved_cwd
|
cd $saved_cwd
|
||||||
|
|
||||||
|
if { $save_multilib_flag != "" } {
|
||||||
|
unset_board_info "multilib_flags"
|
||||||
|
set_board_info multilib_flags $save_multilib_flag
|
||||||
|
}
|
||||||
|
|
||||||
return -options $options $result
|
return -options $options $result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user