[gdb/testsuite] Add have_mpx in lib/gdb.exp
The sources for the test-cases gdb.arch/i386-mpx*.exp contain have_mpx functions that test whether the processor supports mpx instructions. OTOH, the test-cases are compiled using -mmpx -fcheck-pointer-bounds, which instrument all functions with mpx instructions. So, the function that is supposed to test whether mpx instruction are supported contains mpx instructions, which is a bit odd. We could fix this by: - factoring out the have_mpx function into a single source file, and - compiling it without "-mmpx -fcheck-pointer-bounds". But having the mpx support test as part of the test-cases seems like an unnecessary complication that makes the test-cases more difficult to analyze, reason about and modify. So we go one step further and factor out the mpx support test in into a gdb_caching_proc. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-01-12 Tom de Vries <tdevries@suse.de> * gdb.arch/i386-mpx-call.c (have_mpx): Remove. (main): Remove call to have_mpx. * gdb.arch/i386-mpx-call.exp: Use have_mpx. * gdb.arch/i386-mpx-map.c (have_mpx): Remove. (main): Remote call to have_mpx. * gdb.arch/i386-mpx-map.exp: Use have_mpx. * gdb.arch/i386-mpx-sigsegv.c (have_mpx): Remove. (main): Remove call to have_mpx. * gdb.arch/i386-mpx-sigsegv.exp: Use have_mpx. * gdb.arch/i386-mpx-simple_segv.c (have_mpx): Remove. (main): Remove call to have_mpx. * gdb.arch/i386-mpx-simple_segv.exp: Use have_mpx. * gdb.arch/i386-mpx.c (have_mpx): Remove. (main): Remote call to have_mpx. * gdb.arch/i386-mpx.exp: Use have_mpx. * lib/gdb.exp (have_mpx): New proc.
parent
b2f2ae0d
Please register or sign in to comment