# Expect script for complex PE tests that require a C compiler and the ability
# to run target executables natively, in addition to the just-built binutils.
-# Copyright 2006, 2007
-# Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
}
# No compiler, no test.
-if { [which $CC] == 0 } {
+if { ![check_compiler_available] } {
untested "Direct linking to dll test"
return
}
# Compile the dll.
if ![ld_compile "$CC $CFLAGS" $srcdir/$subdir/direct_dll.c $tmpdir/direct_dll.o ] {
fail "compiling shared lib"
- } elseif ![ld_simple_link "$CC -shared" $tmpdir/direct_dll.dll "$tmpdir/direct_dll.o" ] {
+ } elseif ![ld_link "$CC -shared" $tmpdir/direct_dll.dll "$tmpdir/direct_dll.o" ] {
fail "linking shared lib (.dll)"
- } elseif ![ld_simple_link "$CC -shared" $tmpdir/direct_dll.sl "$tmpdir/direct_dll.o" ] {
+ } elseif ![ld_link "$CC -shared" $tmpdir/direct_dll.sl "$tmpdir/direct_dll.o" ] {
fail "linking shared lib (.sl)"
} else {
# Compile and link the client program.
} else {
# Check linking directly to direct_dll.dll.
set msg "linking client (.dll)"
- if [ld_simple_link $CC $tmpdir/direct_client_dll.exe "$tmpdir/direct_client.o $tmpdir/direct_dll.dll" ] {
+ if [ld_link "$CC -Wl,--enable-auto-import" $tmpdir/direct_client_dll.exe \
+ "$tmpdir/direct_client.o $tmpdir/direct_dll.dll" ] {
pass $msg
} else {
fail $msg
# Check linking directly to direct_dll.sl.
set msg "linking client (.sl)"
- if [ld_simple_link $CC $tmpdir/direct_client_sl.exe "$tmpdir/direct_client.o $tmpdir/direct_dll.sl" ] {
+ if [ld_link "$CC -Wl,--enable-auto-import" $tmpdir/direct_client_sl.exe \
+ "$tmpdir/direct_client.o $tmpdir/direct_dll.sl" ] {
pass $msg
} else {
fail $msg
# Create symbolic link.
catch "exec ln -fs direct_dll.dll $tmpdir/libdirect_dll.dll.a" ln_catch
set msg "linking client (symlink -> .dll)"
- if [ld_simple_link $CC $tmpdir/direct_client_symlink_dll.exe "$tmpdir/direct_client.o $tmpdir/libdirect_dll.dll.a" ] {
+ if [ld_link "$CC -Wl,--enable-auto-import" $tmpdir/direct_client_symlink_dll.exe \
+ "$tmpdir/direct_client.o $tmpdir/libdirect_dll.dll.a" ] {
pass $msg
} else {
fail $msg
# Create symbolic link.
catch "exec ln -fs direct_dll.sl $tmpdir/libdirect_sl.dll.a" ln_catch
set msg "linking client (symlink -> .sl)"
- if [ld_simple_link $CC $tmpdir/direct_client_symlink_sl.exe "$tmpdir/direct_client.o $tmpdir/libdirect_sl.dll.a" ] {
+ if [ld_link "$CC -Wl,--enable-auto-import" $tmpdir/direct_client_symlink_sl.exe \
+ "$tmpdir/direct_client.o $tmpdir/libdirect_sl.dll.a" ] {
pass $msg
} else {
fail $msg