[gdb/testsuite] Silence compilation fail in gdb.base/rtld-step.exp
authorTom de Vries <tdevries@suse.de>
Fri, 21 Oct 2022 06:36:18 +0000 (08:36 +0200)
committerTom de Vries <tdevries@suse.de>
Fri, 21 Oct 2022 06:36:18 +0000 (08:36 +0200)
With gcc 7.5.0 and test-case gdb.base/rtld-step.exp, I run into:
...
gdb compile failed, gcc: error: unrecognized command line option \
  '-static-pie'; did you mean '-static'?
...

Silence this by checking in the test-case that -static-pie is supported, and
emitting instead:
...
UNTESTED: gdb.base/rtld-step.exp: \
  failed to compile (-static-pie not supported or static libc missing)
...

Tested on x86_64-linux, with:
- gcc 7.5.0: UNTESTED
- gcc 12.2.1 with static glibc not installed: UNTESTED
- gcc 12.2.1 with static glibc installed: PASS

gdb/testsuite/gdb.base/rtld-step.exp

index 4773fa8de3ddecde45aca9d43c72853fd2736875..0aa2ab0fe1fb757c32aca7c135dd4be01f6001bc 100644 (file)
@@ -87,6 +87,14 @@ set binfile_rtld [standard_output_file ${rtld_basename}]
 set rtld_flags [list debug additional_flags=[list -static-pie -fPIE \
                                                  -nostdlib -static -lc]]
 
+if { ![gdb_can_simple_compile static-pie-static-libc \
+          "void _start (void) { _exit (0); }" \
+          executable $rtld_flags] } {
+    set reason "-static-pie not supported or static libc missing"
+    untested "failed to compile ($reason)"
+    return -1
+}
+
 # Main program file names and flags:
 set main_basename ${::gdb_test_file_name}-main
 set srcfile_main ${srcdir}/${subdir}/${main_basename}.c