diff options
Diffstat (limited to 'ld/testsuite/ld-pe')
-rw-r--r-- | ld/testsuite/ld-pe/basefile1.s | 18 | ||||
-rwxr-xr-x | ld/testsuite/ld-pe/pe-compile.exp | 52 |
2 files changed, 70 insertions, 0 deletions
diff --git a/ld/testsuite/ld-pe/basefile1.s b/ld/testsuite/ld-pe/basefile1.s new file mode 100644 index 0000000..f24c4fc --- /dev/null +++ b/ld/testsuite/ld-pe/basefile1.s @@ -0,0 +1,18 @@ +.globl _start +.globl start +.text +_start: +start: + .long 0 + +.globl _d1 +.globl _d2 +.globl _d3 +.data +_d1: + .long 1 +_d2: + .secrel32 _d3 +_d3: + .long 2 + diff --git a/ld/testsuite/ld-pe/pe-compile.exp b/ld/testsuite/ld-pe/pe-compile.exp index b9bc4af..07ad016 100755 --- a/ld/testsuite/ld-pe/pe-compile.exp +++ b/ld/testsuite/ld-pe/pe-compile.exp @@ -34,6 +34,47 @@ if { [which $CC] == 0 } { return } +proc build_basefile1_o {} { + global CC + global CFLAGS + global srcdir + global subdir + + # Compile the object file. + if ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/basefile1.s tmpdir/basefile1.o] { + fail "compiling basefile1 object" + } +} + +proc run_basefile_test { testname } { + global LD + global DLLTOOL + global srcdir + global subdir + global verbose + + if ![ld_simple_link "$LD -e start \ + --base-file=tmpdir/$testname.base \ + --export-all-symbols" tmpdir/$testname.dll \ + "tmpdir/basefile1.o"] { + fail "linking DLL" + return + } + + if { $verbose > 2 } then { verbose "output is [file_contents tmpdir/$testname.base]" 3 } + + catch "exec wc -c tmpdir/$testname.base" err + + if ![string match "0 tmpdir/$testname.base" $err] then { + send_log "$err\n" + if { $verbose == 2 } then { verbose "$err" 2 } + fail $testname + return + } + + pass "$testname" +} + proc build_vers_script_dll_o {} { global CC global CFLAGS @@ -77,6 +118,17 @@ run_ver_script_test "vers-script-2" run_ver_script_test "vers-script-3" run_ver_script_test "vers-script-4" +if {[istarget i*86-*-cygwin*] + || [istarget i*86-*-pe] + || [istarget i*86-*-mingw*] + || [istarget x86_64-*-mingw*] } { + + build_basefile1_o + run_basefile_test "basefile-secrel" + } else { + untested "PE basefile test" + } + set align_tests { {"aligned common 1" "" "" {aligncomm-1.c} {{nm -C aligncomm.d}} "aligncomm-1.x"} |