From 7193487fa8d496a1df20eb8ea5007e9b43ac07cb Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 7 Jul 2020 12:41:55 +0930 Subject: Use is_xcoff_format in ld testsuite * testsuite/ld-checks/checks.exp: Use is_xcoff_format. * testsuite/ld-powerpc/powerpc.exp: Likewise. * testsuite/ld-scripts/print-memory-usage.exp: Likewise. * testsuite/ld-srec/srec.exp: Likewise. * testsuite/ld-undefined/require-defined.exp: Likewise. * testsuite/ld-scripts/expr2.d: Likewise. * testsuite/ld-scripts/section-match-1.d: Only run for ELF. * testsuite/ld-elfvers/vers.exp: Delete dead code. * testsuite/ld-elfvsb/elfvsb.exp: Likewise. * testsuite/ld-elfweak/elfweak.exp: Likewise. --- ld/ChangeLog | 13 +++ ld/testsuite/ld-checks/checks.exp | 7 +- ld/testsuite/ld-elfvers/vers.exp | 4 - ld/testsuite/ld-elfvsb/elfvsb.exp | 126 +++++++------------------ ld/testsuite/ld-elfweak/elfweak.exp | 3 - ld/testsuite/ld-powerpc/powerpc.exp | 6 +- ld/testsuite/ld-scripts/expr2.d | 2 +- ld/testsuite/ld-scripts/print-memory-usage.exp | 3 +- ld/testsuite/ld-scripts/section-match-1.d | 4 +- ld/testsuite/ld-srec/srec.exp | 8 +- ld/testsuite/ld-undefined/require-defined.exp | 3 +- 11 files changed, 63 insertions(+), 116 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 762d5a0..67bf035 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,5 +1,18 @@ 2020-07-07 Alan Modra + * testsuite/ld-checks/checks.exp: Use is_xcoff_format. + * testsuite/ld-powerpc/powerpc.exp: Likewise. + * testsuite/ld-scripts/print-memory-usage.exp: Likewise. + * testsuite/ld-srec/srec.exp: Likewise. + * testsuite/ld-undefined/require-defined.exp: Likewise. + * testsuite/ld-scripts/expr2.d: Likewise. + * testsuite/ld-scripts/section-match-1.d: Only run for ELF. + * testsuite/ld-elfvers/vers.exp: Delete dead code. + * testsuite/ld-elfvsb/elfvsb.exp: Likewise. + * testsuite/ld-elfweak/elfweak.exp: Likewise. + +2020-07-07 Alan Modra + * emultempl/aix.em (gld${EMULATION_NAME}_find_exp_assignment): Handle etree_provided. diff --git a/ld/testsuite/ld-checks/checks.exp b/ld/testsuite/ld-checks/checks.exp index c351c00..fbda5e7 100644 --- a/ld/testsuite/ld-checks/checks.exp +++ b/ld/testsuite/ld-checks/checks.exp @@ -27,11 +27,8 @@ proc section_check {} { global srcdir global subdir - # The usage of .lcomm in asm.s is incompatible with ia64 and ppc coff. - if { [istarget ia64-*-*] - || [istarget powerpc*-*-aix*] - || [istarget powerpc-*-beos*] - || [istarget rs6000-*-*] } { + # The usage of .lcomm in asm.s is incompatible with ia64 and ppc xcoff. + if { [istarget ia64-*-*] || [is_xcoff_format] } { return } set test "check sections 1" diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp index 825b794..82b79ad 100644 --- a/ld/testsuite/ld-elfvers/vers.exp +++ b/ld/testsuite/ld-elfvers/vers.exp @@ -57,10 +57,6 @@ if { ![istarget hppa*64*-*-hpux*] return } -if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - return -} - set diff diff set tmpdir tmpdir set VOBJDUMP_FLAGS --private-headers diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp index 5e19d32..fda2416 100644 --- a/ld/testsuite/ld-elfvsb/elfvsb.exp +++ b/ld/testsuite/ld-elfvsb/elfvsb.exp @@ -61,36 +61,6 @@ set SHCFLAG "" set shared_needs_pic "no" set COMPRESS_LDFLAG "-Wl,--compress-debug-sections=zlib-gabi" -if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - - # AIX shared libraries do not seem to support useful features, - # like overriding the shared library function or letting the - # shared library refer to objects defined in the main program. We - # avoid testing those features. - set SHCFLAG "-DXCOFF_TEST" - - # The AIX 3.2.5 loader appears to randomly fail when loading - # shared libraries from NSF mounted partitions, so we avoid any - # potential problems by using a local directory. - catch {exec /bin/sh -c "echo $$"} pid - set tmpdir /usr/tmp/ld.$pid - catch "exec mkdir $tmpdir" exec_status - - # On AIX, we need to explicitly export the symbols the shared - # library is going to provide, and need. - set file [open $tmpdir/xcoff.exp w] - puts $file shlibvar1 - puts $file shlibvar2 - puts $file shlib_shlibvar1 - puts $file shlib_shlibvar2 - puts $file shlib_shlibcall - puts $file shlib_shlibcalled - puts $file shlib_checkfunptr1 - puts $file shlib_getfunptr1 - puts $file shlib_check - close $file -} - if [istarget arm*-*-linux*] { # On ARM section anchors can change the symbol pre-emptability for # non-PIC shared libraries, causing these tests to fail. Turn section @@ -137,11 +107,7 @@ proc visibility_test { visibility progname testname main sh1 sh2 dat args } { if [llength $args] { set shldflags [lindex $args 0] } else { set shldflags "" } # Build the shared library. - # On AIX, we need to use an export file. set shared -shared - if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - set shared "-bM:SRE -bE:$tmpdir/xcoff.exp" - } if { [is_elf_format] && [check_shared_lib_support] } { append shared " -Wl,-z,notext" } @@ -162,12 +128,7 @@ proc visibility_test { visibility progname testname main sh1 sh2 dat args } { # Link against the shared library. Use -rpath so that the # dynamic linker can locate the shared library at runtime. - # On AIX, we must include /lib in -rpath, as otherwise the loader - # can not find -lc. set rpath $tmpdir - if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - set rpath /lib:$tmpdir - } if ![ld_link $CC $tmpdir/$progname "-Wl,-rpath,$rpath $tmpdir/$main $tmpdir/$progname.so"] { if { [ string match $visibility "hidden" ] && [regexp "undefined reference to \`\.?visibility\'" $link_output] @@ -287,8 +248,6 @@ proc visibility_run {visibility} { if { ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o] || ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } { unresolved "visibility ($visibility) (non PIC)" - } else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - visibility_test $visibility vnp "visibility ($visibility) (non PIC)" mainnp.o sh1np.o sh2np.o xcoff } else { # SunOS non PIC shared libraries don't permit some cases of # overriding. @@ -371,7 +330,7 @@ proc visibility_run {visibility} { visibility_test $visibility vnp "visibility ($visibility) (non PIC, load offset)" \ mainnp.o sh1np.o sh2np.o elfvsb \ "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv" - } } + } # Now compile the code using -fpic. @@ -385,11 +344,7 @@ proc visibility_run {visibility} { setup_xfail $target_triplet } } - if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o xcoff - } else { - visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb $COMPRESS_LDFLAG - } + visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb $COMPRESS_LDFLAG } }} @@ -403,44 +358,40 @@ proc visibility_run {visibility} { } else { if { [ remote_file host exists $tmpdir/sh1np.o ] && [ remote_file host exists $tmpdir/sh2np.o ] } { - if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o xcoff - } else { - # SunOS non PIC shared libraries don't permit some cases of - # overriding. - if { [ string match $visibility "protected" ] - || [ string match $visibility "protected_undef_def" ] } { - if [ string match $support_protected "no" ] { - setup_xfail $target_triplet - } - } - if { ![ string match $visibility "hidden_undef" ] - && ![ string match $visibility "protected_undef" ] } { - setup_xfail "ia64-*-linux*" - setup_xfail "alpha*-*-linux*" - } - if { ![ string match $visibility "hidden" ] - && ![ string match $visibility "hidden_undef" ] - && ![ string match $visibility "hidden_undef_def" ] - && ![ string match $visibility "protected_undef" ] } { - setup_xfail "s390x-*-linux*" - if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } { - setup_xfail "sparc*-*-linux*" - } - } - if { [is_elf64 $tmpdir/mainp.o] } { - setup_xfail "x86_64-*-linux*" - } - setup_xfail "x86_64-*-linux-gnux32" - if { ![istarget hppa*64*-*-linux*] } { - setup_xfail "hppa*-*-linux*" + # SunOS non PIC shared libraries don't permit some cases of + # overriding. + if { [ string match $visibility "protected" ] + || [ string match $visibility "protected_undef_def" ] } { + if [ string match $support_protected "no" ] { + setup_xfail $target_triplet } - if [ string match $shared_needs_pic "yes" ] { - setup_xfail "arm*-*-linux*" + } + if { ![ string match $visibility "hidden_undef" ] + && ![ string match $visibility "protected_undef" ] } { + setup_xfail "ia64-*-linux*" + setup_xfail "alpha*-*-linux*" + } + if { ![ string match $visibility "hidden" ] + && ![ string match $visibility "hidden_undef" ] + && ![ string match $visibility "hidden_undef_def" ] + && ![ string match $visibility "protected_undef" ] } { + setup_xfail "s390x-*-linux*" + if { [istarget sparc*-*-linux*] && [is_elf64 $tmpdir/mainp.o] } { + setup_xfail "sparc*-*-linux*" } - - visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o elfvsb } + if { [is_elf64 $tmpdir/mainp.o] } { + setup_xfail "x86_64-*-linux*" + } + setup_xfail "x86_64-*-linux-gnux32" + if { ![istarget hppa*64*-*-linux*] } { + setup_xfail "hppa*-*-linux*" + } + if [ string match $shared_needs_pic "yes" ] { + setup_xfail "arm*-*-linux*" + } + + visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o elfvsb } else { unresolved "visibility (PIC main, non PIC so)" } @@ -453,11 +404,7 @@ proc visibility_run {visibility} { setup_xfail $target_triplet } } - if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o xcoff - } else { - visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o elfvsb - } + visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o elfvsb } else { unresolved "visibility ($visibility) (PIC main)" } @@ -529,8 +476,3 @@ if { ![ld_compile "$CC -g $CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } { } } } - -if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - # Remove the temporary directory. - catch "exec rm -rf $tmpdir" exec_status -} diff --git a/ld/testsuite/ld-elfweak/elfweak.exp b/ld/testsuite/ld-elfweak/elfweak.exp index 1d5c438..d319479 100644 --- a/ld/testsuite/ld-elfweak/elfweak.exp +++ b/ld/testsuite/ld-elfweak/elfweak.exp @@ -55,9 +55,6 @@ if { ![istarget alpha*-*-linux*] && ![istarget *-*-nacl*] } { return } -if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { - return -} set diff diff set tmpdir tmpdir diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp index 3e458e4..de676b8 100644 --- a/ld/testsuite/ld-powerpc/powerpc.exp +++ b/ld/testsuite/ld-powerpc/powerpc.exp @@ -70,10 +70,10 @@ if {[istarget "*-*-vxworks"]} { # is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants # -melf32ppcnto. -if { [istarget "*-*-macos*"] +if { [is_xcoff_format] || [istarget "*-*-pe"] || [istarget "*-*-winnt*"] - || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"] - || [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"] + || [istarget "*-*-cygwin*"] + || [istarget "*-*-lynxos*"] || [istarget "*-*-nto*"] } { return } diff --git a/ld/testsuite/ld-scripts/expr2.d b/ld/testsuite/ld-scripts/expr2.d index b05a5d2..94fb5d3 100644 --- a/ld/testsuite/ld-scripts/expr2.d +++ b/ld/testsuite/ld-scripts/expr2.d @@ -1,6 +1,6 @@ # ld: -T expr2.t #nm: -B -#xfail: arm-*-*aout powerpc*-*-aix* rs6000-*-aix* +#xfail: arm-*-*aout [is_xcoff_format] #... .* D defined diff --git a/ld/testsuite/ld-scripts/print-memory-usage.exp b/ld/testsuite/ld-scripts/print-memory-usage.exp index 8702c59..e38a7d5 100644 --- a/ld/testsuite/ld-scripts/print-memory-usage.exp +++ b/ld/testsuite/ld-scripts/print-memory-usage.exp @@ -29,8 +29,7 @@ if { [istarget mips*-*-*] || [istarget pdp11*-*-*] || [istarget tic30*-*-*] || [istarget tic54x*-*-*] - || [istarget *-*-aix*] - || [istarget *-*-xcoff*] } { + || [is_xcoff_format] } { return } diff --git a/ld/testsuite/ld-scripts/section-match-1.d b/ld/testsuite/ld-scripts/section-match-1.d index 5ea3bbb..4ee530b 100644 --- a/ld/testsuite/ld-scripts/section-match-1.d +++ b/ld/testsuite/ld-scripts/section-match-1.d @@ -1,8 +1,8 @@ #source: section-match-1.s #ld: -T section-match-1.t #objdump: -s -#notarget: *-*-osf* *-*-aix* *-*-pe *-*-*aout *-*-ecoff *-*-netbsd *-*-vms h8300-*-* ns32k-*-* tic30-*-* -# This test uses arbitrary section names, which are not support by some +#target: [is_elf_format] +# This test uses arbitrary section names, which are not supported by some # file formats. Also these section names must be present in the # output, not translated into some other name, eg .text diff --git a/ld/testsuite/ld-srec/srec.exp b/ld/testsuite/ld-srec/srec.exp index 69570a8..13fc4e1 100644 --- a/ld/testsuite/ld-srec/srec.exp +++ b/ld/testsuite/ld-srec/srec.exp @@ -384,7 +384,9 @@ setup_xfail "mips*-*-irix5*" "mips*-*-irix6*" "mips*-*-linux*" # The S-record linker doesn't do the magic TOC handling that XCOFF # linkers do. -setup_xfail "*-*-aix*" "*-*-xcoff*" +if [is_xcoff_format] { + setup_xfail *-*-* +} # The S-record linker is not supported for ARC. setup_xfail "arc*-*-*" @@ -454,7 +456,9 @@ if ![ld_compile "$CXX $CXXFLAGS -fno-exceptions" $srcdir/$subdir/sr3.cc tmpdir/s # See above. setup_xfail "i*86-*-aout*" setup_xfail "mips*-*-irix5*" "mips*-*-irix6*" "mips*-*-linux*" -setup_xfail "*-*-aix*" "*-*-xcoff*" +if [is_xcoff_format] { + setup_xfail *-*-* +} setup_xfail "arc*-*-*" setup_xfail "arm*-*-*" setup_xfail "v850*-*-elf" diff --git a/ld/testsuite/ld-undefined/require-defined.exp b/ld/testsuite/ld-undefined/require-defined.exp index 10d3408..dceb651 100644 --- a/ld/testsuite/ld-undefined/require-defined.exp +++ b/ld/testsuite/ld-undefined/require-defined.exp @@ -35,9 +35,8 @@ if { [istarget "powerpcle-*-*"] \ || [istarget "cris-axis-elf"] \ || [istarget "ns32k-*-*"] \ || [istarget "*-*-coff"] \ - || [istarget "*-*-xcoff"] \ || [istarget "*-*-*aout*"] \ - || [istarget "*-*-*aix*"] } { + || [is_xcoff_format] } { unsupported "require-defined testing" return } -- cgit v1.1