From 76a2bcc6b8b07ddfd5093773c4b5fd8e54752fbc Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 5 Dec 2022 13:09:12 +0100 Subject: [PATCH] testsuite: support mold linker Mold linker demotes symbols like main to be local and the patch adjusts expected output from nm. Moreover, simplify the regex patterns. --- binutils/testsuite/binutils-all/addr2line.exp | 4 ++-- binutils/testsuite/binutils-all/objcopy.exp | 6 ++---- libbacktrace/Makefile.am | 2 +- libbacktrace/Makefile.in | 2 +- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/binutils/testsuite/binutils-all/addr2line.exp b/binutils/testsuite/binutils-all/addr2line.exp index 66a2d5d32a0..957ae55df33 100644 --- a/binutils/testsuite/binutils-all/addr2line.exp +++ b/binutils/testsuite/binutils-all/addr2line.exp @@ -34,7 +34,7 @@ if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog executable debug #testcase for default option. #Run nm command and input the main symbol address to addr2line. set output [binutils_run $NM "$opts tmpdir/testprog$exe"] -if ![regexp -line "^(\[0-9a-fA-F\]+)? +T ${dot}main" $output contents] then { +if ![regexp -line "^(\[0-9a-fA-F\]+)? +\[Tt\] ${dot}main" $output contents] then { fail "$testname" } else { set list [regexp -inline -all -- {\S+} $contents] @@ -49,7 +49,7 @@ if ![regexp -line "^(\[0-9a-fA-F\]+)? +T ${dot}main" $output contents] then { #testcase for -f option. #Run nm command and input the fn function symbol address to addr2line. -if ![regexp -line "^(\[0-9a-fA-F\]+)? +T ${dot}fn" $output contents] then { +if ![regexp -line "^(\[0-9a-fA-F\]+)? +\[Tt\] ${dot}fn" $output contents] then { fail "$testname -f option" } else { set list [regexp -inline -all -- {\S+} $contents] diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index de6f3aaaef2..e3388597f56 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -652,8 +652,7 @@ proc strip_test_with_saving_a_symbol { } { set exec_output [binutils_run $NM "$NMFLAGS $objfile"] set exec_output [prune_warnings $exec_output] - if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ - && ![regexp {^([0-9a-fA-F]+)?[ ]+T _main} $exec_output]} { + if {![regexp {^([0-9a-fA-F]+)?[ ]+[TtDd] _?main} $exec_output]} { fail $test return } @@ -902,8 +901,7 @@ proc strip_executable_with_saving_a_symbol { prog flags test1 test2 } { regsub "^\[0-9a-fA-F\]+\[ \]+T Main\[\n\r\]+" $exec_output "" exec_output } - if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ - && ![regexp {^([0-9a-fA-F]+)?[ ]+[TD] _main} $exec_output]} { + if {![regexp {^([0-9a-fA-F]+)?[ ]+[TtDd] _?main} $exec_output]} { fail $test1 return } diff --git a/libbacktrace/Makefile.am b/libbacktrace/Makefile.am index 8874f41338a..bf9d30a382c 100644 --- a/libbacktrace/Makefile.am +++ b/libbacktrace/Makefile.am @@ -498,7 +498,7 @@ TESTS += mtest_minidebug %_minidebug: % $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms - $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms + $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D" || $$2 == "d") print $$1 }' | sort > $<.fsyms $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms $(OBJCOPY) --only-keep-debug $< $<.dbg $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in index 2ba8dfa8428..5167ca80ad1 100644 --- a/libbacktrace/Makefile.in +++ b/libbacktrace/Makefile.in @@ -2459,7 +2459,7 @@ uninstall-am: @HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@%_minidebug: % @HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) -D $< -P --defined-only | $(AWK) '{ print $$1 }' | sort > $<.dsyms -@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D") print $$1 }' | sort > $<.fsyms +@HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(NM) $< -P --defined-only | $(AWK) '{ if ($$2 == "T" || $$2 == "t" || $$2 == "D" || $$2 == "d") print $$1 }' | sort > $<.fsyms @HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(COMM) -13 $<.dsyms $<.fsyms > $<.keepsyms @HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) --only-keep-debug $< $<.dbg @HAVE_MINIDEBUG_TRUE@@NATIVE_TRUE@ $(OBJCOPY) -S --remove-section .gdb_index --remove-section .comment --keep-symbols=$<.keepsyms $<.dbg $<.mdbg -- 2.30.2