many tests rely on order of symbols and the gnu hash style/relro options change that. so to avoid having to constantly thrash in the test files, use the normal options that everyone tests against. --- binutils/ld/testsuite/lib/ld-lib.exp +++ binutils/ld/testsuite/lib/ld-lib.exp @@ -84,7 +84,7 @@ global HOSTING_EMU remote_file host delete $target - return [run_host_cmd_yesno "$ld" "$HOSTING_EMU -o $target -r $objects"] + return [run_host_cmd_yesno "$ld" "$HOSTING_EMU --hash-style=sysv -z norelro -o $target -r $objects"] } # Check to see if ld is being invoked with a non-endian output format @@ -158,7 +158,7 @@ remote_file host delete $target - return [run_host_cmd_yesno "$ld" "$HOSTING_EMU $flags -o $target $objs $libs"] + return [run_host_cmd_yesno "$ld" "$HOSTING_EMU --hash-style=sysv -z norelro $flags -o $target $objs $libs"] } # Link a program using ld, without including any libraries. @@ -189,7 +189,9 @@ } set ldexe [string replace $ldexe 0 [string last "/" $ldexe] ""] if {[string match "*gcc*" $ldexe] || [string match "*++*" $ldexe]} then { - set ldflags "$gcc_ld_flag $ldflags" + set ldflags "$gcc_ld_flag -Wl,--hash-style=sysv -Wl,-z,norelro $ldflags" + } else { + set ldflags "--hash-style=sysv -z norelro $ldflags" } remote_file host delete $target