2010-03-31 Kai TIetz <kai.tietz@onevision.com>
authorKai Tietz <kai.tietz@onevision.com>
Wed, 31 Mar 2010 16:34:12 +0000 (16:34 +0000)
committerKai Tietz <kai.tietz@onevision.com>
Wed, 31 Mar 2010 16:34:12 +0000 (16:34 +0000)
        * ld-pe/basefile1.s: New.
        * ld-pe/pe-compile.exp: Add base-file test.

ld/testsuite/ChangeLog
ld/testsuite/ld-pe/basefile1.s [new file with mode: 0644]
ld/testsuite/ld-pe/pe-compile.exp

index d8d0475..c4852d6 100644 (file)
@@ -1,3 +1,8 @@
+2010-03-31  Kai TIetz  <kai.tietz@onevision.com>
+
+       * ld-pe/basefile1.s: New.
+       * ld-pe/pe-compile.exp: Add base-file test.
+
 2010-03-31  Hans-Peter Nilsson  <hp@axis.com>
 
        PR ld/11458
diff --git a/ld/testsuite/ld-pe/basefile1.s b/ld/testsuite/ld-pe/basefile1.s
new file mode 100644 (file)
index 0000000..f24c4fc
--- /dev/null
@@ -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
+
index b9bc4af..07ad016 100755 (executable)
@@ -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"}