# Expect script for LD Bootstrap Tests
#   Copyright (C) 1993-2022 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#
# Written by Jeffrey Wheat (cassidy@cygnus.com)
# Rewritten by Ian Lance Taylor (ian@cygnus.com)
#

# Make sure that ld can bootstrap itself.

# This test can only be run if ld generates native executables.
if ![isnative] {
    return
}

# Skip if OFILES aren't provided, it can happen when lauching
# the testsuites outside the build directory.
if {![info exists OFILES]} {
    return
}

# Skip for -fprofile-generate=.
catch "exec $nm $plug_opt $OFILES" exec_output
send_log "foo: $exec_output"
if { [ string match "*__gcov_*" $exec_output ] } {
    return
}

remote_exec host "$nm --help" "" "/dev/null" "plugin-support"
set tmp [file_contents "plugin-support"]
regexp ".*\(--plugin\).*\n" $tmp foo plugins
if [info exists plugins] then {
    set plugins "yes"
} else {
    set plugins "no"
}

# LD can have plugin support even if BFD does not.
if [check_plugin_api_available] {
    set plugins "yes"
}

# Bootstrap ld.  First link the object files together using -r, in
# order to test -r.  Then link the result into an executable, ld1, to
# really test -r.  Use ld1 to link a fresh ld, ld2.  Use ld2 to link a
# new ld, ld3.  ld2 and ld3 should be identical.
set test_flags {"" "strip" "--static" "-Wl,--traditional-format"
		"-Wl,--no-keep-memory" "-Wl,--relax"
		"-Wl,--max-cache-size=-1"}
if { [istarget "powerpc-*-*"] } {
    lappend test_flags "-Wl,--ppc476-workaround"
}

set gcc_B_opt_save $gcc_B_opt

if {![file exists tmpdir/ldscripts]} then {
    catch "exec ln -s ../ldscripts tmpdir/ldscripts" status
}
foreach ldexe {ld1 ld2 ld3} {
    if {![file isdirectory tmpdir/gcc$ldexe]} then {
	catch "exec mkdir tmpdir/gcc$ldexe" status
	catch "exec ln -s ../$ldexe tmpdir/gcc$ldexe/ld" status
	catch "exec ln -s ld tmpdir/gcc$ldexe/collect-ld" status
	catch "exec ln -s ../../../gas/as-new tmpdir/gcc$ldexe/as" status
    }
}

foreach flags $test_flags {
    set gcc_B_opt $gcc_B_opt_save
    set do_strip "no"
    if {"$flags" == "strip"} { 
	set testname "bootstrap with $flags"
        set flags ""
	set do_strip "yes"
    } else { if {"$flags" != ""} { 
	set testname "bootstrap with $flags"
    } else {
	set testname "bootstrap"
    }}

    # --static is meaningless and --relax is incompatible with -r.
    regsub -- "-Wl," $flags "" partial_flags
    if { "$partial_flags" == "--static" || "$partial_flags" == "--relax" } {
	set partial_flags ""
    }

    if { $partial_flags == "--ppc476-workaround" } {
	append partial_flags " -T $srcdir/$subdir/ppc476.t"
    }

    # This test can only be run if we have the ld build directory,
    # since we need the object files.
    if {$ld != "$objdir/ld-new"} {
	untested $testname
	continue
    }

    # If -static doesn't work, these tests will fail.
    if { $flags == "--static" && [string match "" $STATIC_LDFLAGS] } then {
	untested $testname
	continue
    }

    # Plugin support requires linking with a dynamic library which
    # means that these tests will fail.
    if { $flags == "--static" && $plugins == "yes" } then {
	untested $testname
	continue
    }

    # If we only have a shared libbfd, we probably can't run the
    # --static test.
    if { $flags == "--static" && ! [string match "*libbfd.a*" $BFDLIB] } then {
	untested $testname
	continue
    }

    if ![ld_relocate $ld tmpdir/ld-partial.o "$partial_flags $OFILES"] {
	fail $testname
	continue
    }

    # On AIX, you need to specify an import list when using --static.
    # You only want the import list when creating the final
    # executable.
    if { [istarget "*-*-aix*"] 
         && ![istarget "ia64-*-aix*"]} {
	if {"$flags" == "--static"} {
	    set flags "--static -bI:/lib/syscalls.exp"
	}
    }

    # On Cygwin, -lintl may require -liconv when linking statically.
    set extralibs ""
    if { [istarget "*-*-cygwin*"]} {
	if {"$flags" == "--static"} {
	    set extralibs "-liconv"
	}
    }

    # Check if the system's zlib library is used.
    if {[file exists ../zlib/Makefile ]} then {
	set extralibs "$extralibs -L../zlib -lz"
    } else {
	set extralibs "$extralibs -lz"
    }

    if { [lindex [remote_exec build grep "-q \"HAVE_ZSTD 1\" config.h" ] 0] == 0 } then {
	set extralibs "$extralibs -lzstd"
    }

    # Check if the system's jansson library is used. If so, the object files will
    # be using symbols from it, so link to it.
    if { [lindex [remote_exec build grep "-q \"HAVE_JANSSON 1\" config.h" ] 0] == 0 } then {
	set extralibs "$extralibs -ljansson"
    }

    # Plugin support requires linking with libdl.
    if { $plugins == "yes" } {
	if { ![istarget "*-*-freebsd*"]} {
	    set extralibs "$extralibs -ldl"
	}
    }

    # On Irix 5, linking with --static only works if all the files are
    # compiled using -non_shared.
    if {"$flags" == "--static"} {
	setup_xfail "mips*-*-irix5*"
    }

    if ![ld_link $CC tmpdir/ld1 "$CFLAGS $flags tmpdir/ld-partial.o $CTFLIB $BFDLIB $LIBIBERTY $extralibs"] {
	fail $testname
	continue
    }

    if {"$do_strip" == "yes"} { 
	verbose -log "$strip tmpdir/ld1"     
	catch "exec $strip tmpdir/ld1" exec_output
	set exec_output [prune_warnings $exec_output]
	if ![string match "" $exec_output] then {
	    verbose -log "$exec_output"
	    fail $testname
	    continue
	}
    }

    regsub /tmpdir/ld/ $gcc_B_opt_save /tmpdir/gccld1/ gcc_B_opt
    if ![ld_link $CC tmpdir/ld2 "$CFLAGS $flags $OFILES $CTFLIB $BFDLIB $LIBIBERTY $extralibs"] {
	fail $testname
	continue
    }

    regsub /tmpdir/ld/ $gcc_B_opt_save /tmpdir/gccld2/ gcc_B_opt
    if ![ld_link $CC tmpdir/ld3 "$CFLAGS $flags $OFILES $CTFLIB $BFDLIB $LIBIBERTY $extralibs"] {
	fail $testname
	continue
    }

    if { "$flags" == "--static"
	 && ([istarget ia64-*-elf*]
	     || [istarget ia64-*-linux*]
	     || [istarget mips*-*-linux*]) } {
	# On ia64 and mips, tmpdir/ld2 != tmpdir/ld3 is normal since they are
	# generated by different linkers, tmpdir/ld1 and tmpdir/ld2.
	# So we rebuild tmpdir/ld2 with tmpdir/ld3.
	regsub /tmpdir/ld/ $gcc_B_opt_save /tmpdir/gccld3/ gcc_B_opt
	if ![ld_link $CC tmpdir/ld2 "$CFLAGS $flags $OFILES $CTFLIB $BFDLIB $LIBIBERTY $extralibs"] {
	    fail $testname
	    continue
	}
    }

    if {[istarget "*-*-pe"]
	|| [istarget "*-*-wince"]
	|| [istarget "*-*-cygwin*"]
	|| [istarget "*-*-winnt*"]
	|| [istarget "*-*-mingw*"]
	|| [istarget "*-*-interix*"]
	|| [istarget "*-*-beospe*"]} {
	# Trim off the date present in PE binaries by only looking
	#   at the ends of the files
	# Although this works, a way to set the date would be better.
	# Removing or zeroing the date stamp in the binary produced by
	# the linker is not possible as it is required by the target OS.
	set do_compare [string map {16 220 f1 tmpdir/ld2 f2 tmpdir/ld3 tmp-foo1 tmpdir/ld2tail tmp-foo2 tmpdir/ld3tail} $DO_COMPARE]
	send_log "$do_compare\n"
	verbose  "$do_compare"
	catch "exec sh -c [list $do_compare]" exec_output
    } else {
	send_log "cmp tmpdir/ld2 tmpdir/ld3\n"
	verbose  "cmp tmpdir/ld2 tmpdir/ld3"
	catch "exec cmp tmpdir/ld2 tmpdir/ld3" exec_output
    }
    set exec_output [prune_warnings $exec_output]

    if [string match "" $exec_output] then {
	pass $testname
    } else {
	send_log "$exec_output\n"
	verbose "$exec_output" 1

	fail $testname
    }
}

set gcc_B_opt $gcc_B_opt_save
catch "exec rm -f tmpdir/ld-partial.o tmpdir/ld1 tmpdir/ld2 tmpdir/ld3" status
catch "exec rm -f tmpdir/ld2tail tmpdir/ld3tail" status
