[PATCH v3 02/18] LD/testsuite: Fix archive verification for Alpha/VMS
Tristan Gingold
tgingold@free.fr
Thu Dec 4 17:23:57 GMT 2025
Hi,
It's fine for me.
I am not sure that anyone is still using the alpha-vms backend, but when
I worked on it, it was super useful to start from the vax-vms backend
which was also probably unused.
Regards,
Tristan.
On 12/4/25 16:49, Jan Beulich wrote:
> On 20.11.2025 11:56, Maciej W. Rozycki wrote:
>> From: Maciej W. Rozycki <macro@redhat.com>
>>
>> As from commit a2298f23f2e2 ("PR 33385 vms archives") the handling of
>> Alpha/VMS archives has been recently unbroken, after 7 years, revealing
>> issues with archive tests added with commit 435223a9ae70 ("LD/testsuite:
>> Add tests for archive handling"), the change of the failure mode of
>> which went unnoticed.
>>
>> In particular there is no NM support for executables and archives always
>> have an index by the nature of the format; cf. `_bfd_vms_lib_archive_p':
>> "The map is always present."
>>
>> Address these peculiarities by excluding NM tests for the executables
>> produced and by omitting mapless archive rejection tests just as with
>> XCOFF targets, removing all the test failures:
>>
>> alpha-dec-vms -FAIL: Regular archive link
>> alpha-dec-vms -FAIL: Thin archive link
>> alpha-dec-vms -FAIL: Regular archive plus regular link
>> alpha-dec-vms -FAIL: Regular archive plus thin link
>> alpha-dec-vms -FAIL: Thin archive plus regular link
>> alpha-dec-vms -FAIL: Thin archive plus thin link
>> alpha-dec-vms -FAIL: Regular archive w/o index link
>> alpha-dec-vms -FAIL: Thin archive w/o index link
>>
>> Factor out code to filter out unwanted tests to a procedure for a better
>> structure of the code.
>
> There's too much VMS in here for me to sensibly approve this - Tristan, can
> you please take care?
>
> Jan
>
>> ---
>> No change from v2,
>> <https://inbox.sourceware.org/binutils/alpine.DEB.2.21.2511060047030.25436@angie.orcam.me.uk/>.
>>
>> New change in v2.
>> ---
>> ld/testsuite/ld-archive/archive.exp | 34 +++++++++++++++++++++++++---------
>> 1 file changed, 25 insertions(+), 9 deletions(-)
>>
>> binutils-ld-test-archive-alphavms.diff
>> Index: binutils-gdb/ld/testsuite/ld-archive/archive.exp
>> ===================================================================
>> --- binutils-gdb.orig/ld/testsuite/ld-archive/archive.exp
>> +++ binutils-gdb/ld/testsuite/ld-archive/archive.exp
>> @@ -38,12 +38,27 @@ if { [is_xcoff_format] } {
>> append LDFLAGS " -bexpall"
>> }
>>
>> -# For MS-DOS there's no way to keep symbols, so just check for success.
>> +# With Alpha/VMS NM doesn't handle executables and for MS-DOS there's no way
>> +# to keep symbols, so filter out any NM tests.
>> +proc ld_archive_filter_tests { arg } {
>> + if { ![istarget "*-*-msdos"] && ![istarget "alpha*-*-*vms*"] } {
>> + return $arg
>> + } else {
>> + set tests {}
>> + foreach test $arg {
>> + if { [lindex $test 0] != "nm" } {
>> + lappend tests $test
>> + }
>> + }
>> + return $tests
>> + }
>> +}
>> +
>> run_ld_link_tests [list \
>> [list "Regular archive link" \
>> "-e ff" "tmpdir/ab.a" \
>> "" {abc.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abc.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abc.nd}}] \
>> "abc" \
>> ] \
>> ]
>> @@ -54,7 +69,7 @@ run_ld_link_tests [list \
>> [list "Thin archive link" \
>> "-e ff" "tmpdir/abt.a" \
>> "" {abc.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abc.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abc.nd}}] \
>> "abtc" \
>> ] \
>> ]
>> @@ -62,7 +77,7 @@ run_ld_link_tests [list \
>> [list "Regular archive plus regular link" \
>> "-e ff" "tmpdir/ab.a tmpdir/cd.a" \
>> "" {abcde.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abcde.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abcde.nd}}] \
>> "abcde" \
>> ] \
>> ]
>> @@ -73,7 +88,7 @@ run_ld_link_tests [list \
>> [list "Regular archive plus thin link" \
>> "-e ff" "tmpdir/ab.a tmpdir/cdt.a" \
>> "" {abcde.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abcde.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abcde.nd}}] \
>> "abcdte" \
>> ] \
>> ]
>> @@ -84,7 +99,7 @@ run_ld_link_tests [list \
>> [list "Thin archive plus regular link" \
>> "-e ff" "tmpdir/abt.a tmpdir/cd.a" \
>> "" {abcde.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abcde.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abcde.nd}}] \
>> "abtcde" \
>> ] \
>> ]
>> @@ -95,15 +110,16 @@ run_ld_link_tests [list \
>> [list "Thin archive plus thin link" \
>> "-e ff" "tmpdir/abt.a tmpdir/cdt.a" \
>> "" {abcde.s} \
>> - [expr { [istarget "*-*-msdos"] ? {} : {{nm "" abcde.nd}} }] \
>> + [ld_archive_filter_tests {{nm "" abcde.nd}}] \
>> "abtcdte" \
>> ] \
>> ]
>>
>> set LDFLAGS $old_ldflags
>>
>> -# XCOFF targets currently accept archives w/o index.
>> -if { [is_xcoff_format] } {
>> +# Alpha/VMS archives always have an index and XCOFF targets currently
>> +# accept archives without one.
>> +if { [istarget "alpha*-*-*vms*"] || [is_xcoff_format] } {
>> return
>> }
>>
>
More information about the Binutils
mailing list