X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Ftestsuite%2Flib%2Fld-lib.exp;h=a738747d9109c4fb966ed3ae91ff1627dca18d04;hb=1b66220522691049e2a4c477d32fd8bc0f6f63c1;hp=c9d4f8c652a3d1d7fc3d25627d399085aeacf4fc;hpb=c838b5167a2935819e0d2f17175aeec9d4199148;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index c9d4f8c652..a738747d91 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -352,6 +352,47 @@ proc default_ld_nm { nm nmflags object } { } } +# Define various symbols needed when not linking against all +# target libs. +proc ld_simple_link_defsyms {} { + + set flags "--defsym __stack_chk_fail=0" + + # ARM targets call __gccmain + if {[istarget arm*-*-*] || \ + [istarget strongarm*-*-*] || \ + [istarget xscale*-*-*] || \ + [istarget thumb-*-*] } { + append flags " --defsym __gccmain=0" + } + + # PowerPC EABI code calls __eabi. + if {[istarget powerpc*-*-eabi*] || [istarget powerpc*-*-rtems*]} { + append flags " --defsym __eabi=0" + } + + # mn10200 code calls __truncsipsi2_d0_d2. + if {[istarget mn10200*-*-*]} then { + append flags " --defsym __truncsipsi2_d0_d2=0" + } + + # m6811/m6812 code has references to soft registers. + if {[istarget m6811-*-*] || [istarget m6812-*-*]} { + append flags " --defsym _.frame=0 --defsym _.d1=0 --defsym _.d2=0" + append flags " --defsym _.d3=0 --defsym _.d4=0" + append flags " --defsym _.tmp=0 --defsym _.xy=0 --defsym _.z=0" + } + + # Some OpenBSD targets have ProPolice and reference __guard and + # __stack_smash_handler. + if [istarget *-*-openbsd*] { + append flags " --defsym __guard=0" + append flags " --defsym __stack_smash_handler=0" + } + + return $flags +} + # True if the object format is known to be ELF. # proc is_elf_format {} {