aboutsummaryrefslogtreecommitdiff
path: root/ld/ld.texinfo
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2018-03-19 00:33:50 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2018-03-23 11:55:02 +0000
commit376be529a7c99a70050bc48c51d891f1bea9777f (patch)
tree6de482408ac490a39345d909f34d04d75a3e4540 /ld/ld.texinfo
parent066cfa988ddf88ad32b7a114f2e984a13a3848c8 (diff)
downloadfsf-binutils-gdb-376be529a7c99a70050bc48c51d891f1bea9777f.zip
fsf-binutils-gdb-376be529a7c99a70050bc48c51d891f1bea9777f.tar.gz
fsf-binutils-gdb-376be529a7c99a70050bc48c51d891f1bea9777f.tar.bz2
gdb: Fix testsuite issue in gdb.arch/amd64-disp-step-avx.exp
This test starts up and confirms that $xmm0 has the value 0, it then modifies $xmm0 (in the inferior) and confirms that the new value can be read (in GDB). On some machines I was noticing that this test would occasionally fail, and on investigation I believe that the reason for this is that the test is linked as a dynamically linked executable and makes use of the system libraries during startup. The reason that this causes problems is that both the runtime linker and the startup code run before main can, and do (on at least some platforms) make use of the XMM registers. In this commit I modify the test program slightly to allow it to be linked statically, without using the startup libraries. Now by the time GDB reaches the symbol main we have only executed one 'nop' instruction, and the XMM registers should all have the value 0. I've extended the test script to confirm that $xmm0 to $xmm15 are all initially 0, and I also check that at the point after $xmm0 has been modified, all the other XMM registers ($xmm1 to $xmm15) are still 0. The test program is still linked against libc in order that we can call the exit function, however, we now call _exit rather than exit in order to avoid all of the usual cleanup that exit does. This clean up tries to tear down things that are usually setup during the startup code, but now this isn't called calling exit will just result in a crash. gdb/testsuite/ChangeLog: * gdb.arch/amd64-disp-step-avx.S: Add '_start' label. (done): Call '_exit' not 'exit' to avoid atexit handlers. * gdb.arch/amd64-disp-step-avx.exp: Pass -static, and -nostartfiles when compiling the test. Confirm that all registers xmm0 to xmm15 are initially 0, and that xmm1 to xmm15 are 0 after.
Diffstat (limited to 'ld/ld.texinfo')
0 files changed, 0 insertions, 0 deletions