From: Tom de Vries Date: Fri, 20 Dec 2024 05:16:55 +0000 (+0100) Subject: [gdb/testsuite] Use -nostdlib in gdb.linespec/explicit.exp X-Git-Tag: gdb-16-branchpoint~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=45b4f0499cbea2ed0efb2e1e2719617a3734a9ab;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Use -nostdlib in gdb.linespec/explicit.exp On openSUSE Leap 15.6 ppc64le-linux, with gdb.linespec/explicit.exp I run into: ... (gdb) b -source thread_pointer.h FAIL: $exp: complete after -source: tab complete "b -source thr" Quit^M ... The test-case already contains a related workaround: ... # Get rid of symbols from shared libraries, otherwise # "b -source thr" could find some system library's # source. gdb_test_no_output "nosharedlibrary" ... but that doesn't work in this case because the debug info is in the executable itself: ... The File Name Table (offset 0xb5): Entry Dir Time Size Name 1 0 0 0 abi-note.c 2 1 0 0 types.h 3 2 0 0 stdint-intn.h 4 2 0 0 stdint-uintn.h 5 3 0 0 elf.h 6 4 0 0 thread_pointer.h ... due to debug info in some glibc object file. Fix this by: - using -nostdlib, ensuring only debug info from the three test-case sources is present in the executable, and - adding a _start wrapping main. Tested on x86_64-linux and ppc64le-linux. Reviewed-By: Keith Seitz PR testsuite/31229 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31229 --- diff --git a/gdb/testsuite/gdb.linespec/explicit.c b/gdb/testsuite/gdb.linespec/explicit.c index 7d232164dac..957de50b4d1 100644 --- a/gdb/testsuite/gdb.linespec/explicit.c +++ b/gdb/testsuite/gdb.linespec/explicit.c @@ -69,3 +69,9 @@ main (void) return myfunction2 (j); } + +void +_start (void) +{ + main (); +} diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp index e8ae10a27df..b257a9808ea 100644 --- a/gdb/testsuite/gdb.linespec/explicit.exp +++ b/gdb/testsuite/gdb.linespec/explicit.exp @@ -20,8 +20,13 @@ load_lib completion-support.exp standard_testfile explicit.c explicit2.c 3explicit.c set exefile $testfile +set opts {} +lappend opts debug +lappend opts nowarnings +lappend opts additional_flags=-nostdlib + if {[prepare_for_testing "failed to prepare" $exefile \ - [list $srcfile $srcfile2 $srcfile3] {debug nowarnings}]} { + [list $srcfile $srcfile2 $srcfile3] $opts]} { return -1 }