# Expect script for various ELF tests.
#   Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
#   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.
#

# Exclude non-ELF targets.

# The following tests require running the executable generated by ld,
# or enough of a build environment to create a fully linked executable.
# This is not commonly available when testing a cross-built linker.
if ![isnative] {
    return
}

if ![is_elf_format] {
    return
}

# Check to see if the C compiler works
if { [which $CC] == 0 } {
    return
}

set build_tests {
  {"Build libfoo.so"
   "-shared" "-fPIC"
   {foo.c} {} "libfoo.so"}
  {"Build versioned libfoo.so"
   "-shared -Wl,--version-script=foo.map" "-fPIC"
   {foo.c} {} "libfoov.so"}
  {"Build libbar.so"
   "-shared" "-fPIC"
   {begin.c end.c} {} "libbar.so"}
  {"Build warn libbar.so"
   "-shared" "-fPIC"
   {beginwarn.c end.c} {{readelf {-S --wide} libbarw.rd}} "libbarw.so"
    "C" "^.*\\\): warning: function foo is deprecated$"}
  {"Build hidden libbar.so"
   "-shared" "-fPIC"
   {begin.c endhidden.c} {} "libbarh.so"}
  {"Build protected libbar.so"
   "-shared" "-fPIC"
   {begin.c endprotected.c} {} "libbarp.so"}
  {"Build libbar.so with libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoo.so" "-fPIC"
   {end.c} {} "libbarfoo.so"}
  {"Build libar.so with versioned libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoov.so" "-fPIC"
   {end.c} {} "libbarfoov.so"}
  {"Build hidden libbar.so with libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoo.so" "-fPIC"
   {endhidden.c} {} "libbarhfoo.so"}
  {"Build hidden libar.so with versioned libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoov.so" "-fPIC"
   {endhidden.c} {} "libbarhfoov.so"}
  {"Build protected libbar.so with libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoo.so" "-fPIC"
   {endprotected.c} {} "libbarpfoo.so"}
  {"Build protected libbar.so with versioned libfoo.so"
   "-shared tmpdir/begin.o tmpdir/libfoov.so" "-fPIC"
   {endprotected.c} {} "libbarpfoov.so"}
  {"Build libdl1.so"
   "-shared" "-fPIC"
   {dl1.c} {} "libdl1.so"}
  {"Build libdl2a.so with --dynamic-list=dl2.list"
   "-shared -Wl,--dynamic-list=dl2.list" "-fPIC"
   {dl2.c dl2xxx.c} {} "libdl2a.so"}
  {"Build libdl2a.so with --dynamic-list=dl2a.list"
   "-shared -Wl,--dynamic-list=dl2a.list" "-fPIC"
   {dl2.c dl2xxx.c} {} "libdl2a.so"}
  {"Build libdl2a.so with --dynamic-list-data"
   "-shared -Wl,--dynamic-list-data" "-fPIC"
   {dl2.c dl2xxx.c} {} "libdl2a.so"}
  {"Build libdl2b.so with --dynamic-list=dl2.list and dl2xxx.list"
   "-shared -Wl,--dynamic-list=dl2.list,--dynamic-list=dl2xxx.list" "-fPIC"
   {dl2.c dl2xxx.c} {} "libdl2b.so"}
  {"Build libdl2c.so with --dynamic-list-data and dl2xxx.list"
   "-shared -Wl,--dynamic-list-data,--dynamic-list=dl2xxx.list" "-fPIC"
   {dl2.c dl2xxx.c} {} "libdl2c.so"}
  {"Build libdl4a.so with --dynamic-list=dl4.list"
   "-shared -Wl,--dynamic-list=dl4.list" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4a.so"}
  {"Build libdl4b.so with --dynamic-list-data"
   "-shared -Wl,--dynamic-list-data" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4b.so"}
  {"Build libdl4c.so with --dynamic-list=dl4.list and dl4xxx.list"
   "-shared -Wl,--dynamic-list=dl4.list,--dynamic-list=dl4xxx.list" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4c.so"}
  {"Build libdl4d.so with --dynamic-list-data and dl4xxx.list"
   "-shared -Wl,--dynamic-list-data,--dynamic-list=dl4xxx.list" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4d.so"}
  {"Build libdl4e.so with -Bsymbolic-functions --dynamic-list-cpp-new"
   "-shared -Wl,-Bsymbolic-functions,--dynamic-list-cpp-new" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4e.so"}
  {"Build libdl4f.so with --dynamic-list-cpp-new -Bsymbolic-functions"
   "-shared -Wl,--dynamic-list-cpp-new,-Bsymbolic-functions" "-fPIC"
   {dl4.c dl4xxx.c} {} "libdl4f.so"}
  {"Build libdl6a.so"
   "-shared" "-fPIC"
   {dl6.c} {} "libdl6a.so"}
  {"Build libdl6b.so with -Bsymbolic --dynamic-list-data"
   "-shared -Wl,-Bsymbolic,--dynamic-list-data" "-fPIC"
   {dl6.c} {} "libdl6b.so"}
  {"Build libdl6c.so with -Bsymbolic"
   "-shared -Wl,-Bsymbolic" "-fPIC"
   {dl6.c} {} "libdl6c.so"}
  {"Build libdl6d.so with --dynamic-list-data -Bsymbolic"
   "-shared -Wl,--dynamic-list-data,-Bsymbolic" "-fPIC"
   {dl6.c} {} "libdl6d.so"}
  {"Build libdata1.so"
   "-shared" "-fPIC"
   {data1.c} {} "libdata1.so"}
  {"Build libdata2.so"
   "-shared" "-fPIC"
   {data2.c} {} "libdata2.so"}
  {"Build libcomm1.o"
   "-r -nostdlib" ""
   {comm1.c} {} "libcomm1.o"}
  {"Build libfunc1.so"
   "-shared" "-fPIC"
   {func1.c} {} "libfunc1.so"}
  {"Build libpr9676-1.a"
   "" "-fPIC"
   {pr9676-1.c} {} "libpr9676-1.a"}
  {"Build libpr9676-2.a"
   "" "-fPIC"
   {pr9676-2.c} {} "libpr9676-2.a"}
  {"Build libpr9676-3.so"
   "-shared" "-fPIC"
   {pr9676-3.c} {} "libpr9676-3.so"}
  {"Build libpr9676-4.so"
   "-shared" "-fPIC"
   {pr9676-4.c} {} "libpr9676-4.so"}
  {"Build libpr9676-4a.so"
   "-shared tmpdir/pr9676-4.o -Ltmpdir -lpr9676-3 -Wl,--start-group -lpr9676-1 -lpr9676-2 -Wl,--end-group"
   "-fPIC"
   {dummy.c} {{readelf {-s} pr9676.rd}} "libpr9676-4a.so"}
  {"Build libpr9679.so"
   "-shared" "-fPIC -O0"
   {pr9679-1.c pr9679-2.c} {{readelf {-s} pr9679.rd}} "libpr9679.so"}
  {"Build libpr11138-1.so"
   "-shared -Wl,--version-script=pr11138-1.map" "-fPIC"
   {pr11138-1.c} {} "libpr11138-1.so"}
  {"Build libpr11138-2.o"
   "-r -nostdlib" ""
   {pr11138-2.c} {} "libpr11138-2.o"}
  {"Build pr13250-1.so"
   "-shared" "-fPIC"
   {pr13250-1.c} {} "libpr13250-1.so"}
  {"Build pr13250-2.so with libpr13250-1.so"
   "-shared -Wl,--no-as-needed tmpdir/libpr13250-1.so" "-fPIC"
   {pr13250-2.c} {} "libpr13250-2.so"}
  {"Build libpr13250-3.o"
   "-r -nostdlib" ""
   {pr13250-3.c} {} "libpr13250-3.o"}
  {"Build libpr14323-2.so"
   "-shared" "-fPIC"
   {pr14323-2.c} {} "libpr14323-2.so"}
  {"Build pr14862-1.o"
   "-r -nostdlib" ""
   {pr14862-1.c} {} "libpr14862-1.o"}
  {"Build libpr14862.so"
   "-shared -Wl,--version-script=pr11138-1.map" "-fPIC"
   {pr14862-2.c} {} "libpr14862.so"}
  {"Build libneeded1b.so"
   "-shared" "-fPIC"
   {needed1b.c} {} "libneeded1b.so"}
  {"Build libneeded1a.so"
   "-shared -Wl,--add-needed,--no-as-needed -Ltmpdir -lneeded1b" "-fPIC"
   {needed1a.c} {} "libneeded1a.so"}
  {"Build libneeded1c.o"
   "-r -nostdlib" ""
   {needed1c.c} {} "libneeded1c.o"}
  {"Build libneeded1pic.o"
   "-r -nostdlib" "-fPIC"
   {needed1c.c} {} "libneeded1pic.o"}
  {"Build needed1a.so with --add-needed"
   "-shared tmpdir/libneeded1pic.o -Wl,--add-needed,-rpath=tmpdir,-z,defs -Ltmpdir -lneeded1a" ""
   {dummy.c} {} "needed1a.so"}
  {"Build needed1b.so with --copy-dt-needed-entries"
   "-shared tmpdir/libneeded1pic.o -Wl,--copy-dt-needed-entries,-rpath=tmpdir,-z,defs -Ltmpdir -lneeded1a" ""
   {dummy.c} {} "needed1b.so"}
  {"Build needed1a.so with --no-add-needed"
   "-shared tmpdir/libneeded1pic.o -Wl,--no-add-needed -Ltmpdir -lneeded1a" ""
   {dummy.c} {} "needed1c.so"}
  {"Build needed1b.so with --no-copy-dt-needed-entries"
   "-shared tmpdir/libneeded1pic.o -Wl,--no-copy-dt-needed-entries -Ltmpdir -lneeded1a" ""
   {dummy.c} {} "needed1d.so"}
  {"Build librel.so"
   "-shared" "-fPIC"
   {rel.c} {} "librel.so"}
}

run_cc_link_tests $build_tests

set run_tests {
    {"Run normal with libfoo.so"
     "tmpdir/begin.o tmpdir/libfoo.so tmpdir/end.o" ""
     {main.c} "normal" "normal.out"}
    {"Run protected with libfoo.so"
     "tmpdir/begin.o tmpdir/libfoo.so tmpdir/endprotected.o" ""
     {main.c} "protected" "normal.out"}
    {"Run hidden with libfoo.so"
     "tmpdir/begin.o tmpdir/libfoo.so tmpdir/endhidden.o" ""
     {main.c} "hidden" "hidden.out"}
    {"Run normal with versioned libfoo.so"
     "tmpdir/begin.o tmpdir/libfoov.so tmpdir/end.o" ""
     {main.c} "normalv" "normal.out"}
    {"Run warn with versioned libfoo.so"
     "tmpdir/beginwarn.o tmpdir/libfoov.so" ""
     {main.c} "warn" "warn.out"
     "" "" "^.*\\\): warning: function foo is deprecated$"}
    {"Run protected with versioned libfoo.so"
     "tmpdir/begin.o tmpdir/libfoov.so tmpdir/endprotected.o" ""
     {main.c} "protected" "normal.out"}
    {"Run hidden with versioned libfoo.so"
     "tmpdir/begin.o tmpdir/libfoov.so tmpdir/endhidden.o" ""
     {main.c} "hiddenv" "hidden.out"}
    {"Run normal libbar.so with libfoo.so"
     "tmpdir/libbarfoo.so tmpdir/libfoo.so" ""
     {main.c} "normal" "normal.out"}
    {"Run protected libbar.so with libfoo.so"
     "tmpdir/libbarpfoo.so tmpdir/libfoo.so" ""
     {main.c} "protected" "normal.out"}
    {"Run hidden libbar.so with libfoo.so"
     "tmpdir/libbarhfoo.so tmpdir/libfoo.so" ""
     {main.c} "hidden" "hidden.out"}
    {"Run normal libbar.so with versioned libfoo.so"
     "tmpdir/libbarfoov.so tmpdir/libfoov.so" ""
     {main.c} "normal" "normal.out"}
    {"Run protected libbar.so with versioned libfoo.so"
     "tmpdir/libbarpfoov.so tmpdir/libfoov.so" ""
     {main.c} "protected" "normal.out"}
    {"Run hidden libbar.so with versioned libfoo.so"
     "tmpdir/libbarhfoov.so tmpdir/libfoov.so" ""
     {main.c} "hidden" "hidden.out"}
    {"Run dl1a with --dynamic-list=dl1.list and dlopen on libdl1.so"
     "--dynamic-list=dl1.list -ldl" ""
     {dl1main.c} "dl1a" "dl1.out"}
    {"Run dl1b with --dynamic-list-data and dlopen on libdl1.so"
     "--dynamic-list-data -ldl" ""
     {dl1main.c} "dl1b" "dl1.out"}
    {"Run with libdl2a.so"
     "tmpdir/libdl2a.so" ""
     {dl2main.c} "dl2a" "dl2a.out"}
    {"Run with libdl2b.so"
     "tmpdir/libdl2b.so" ""
     {dl2main.c} "dl2b" "dl2b.out"}
    {"Run with libdl2c.so"
     "tmpdir/libdl2c.so" ""
     {dl2main.c} "dl2c" "dl2b.out"}
    {"Run with libdl4a.so"
     "tmpdir/libdl4a.so" ""
     {dl4main.c} "dl4a" "dl4a.out"}
    {"Run with libdl4b.so"
     "tmpdir/libdl4b.so" ""
     {dl4main.c} "dl4b" "dl4a.out"}
    {"Run with libdl4c.so"
     "tmpdir/libdl4c.so" ""
     {dl4main.c} "dl4c" "dl4b.out"}
    {"Run with libdl4d.so"
     "tmpdir/libdl4d.so" ""
     {dl4main.c} "dl4d" "dl4b.out"}
    {"Run with libdl4e.so"
     "tmpdir/libdl4e.so" ""
     {dl4main.c} "dl4e" "dl4a.out"}
    {"Run with libdl4f.so"
     "tmpdir/libdl4f.so" ""
     {dl4main.c} "dl4f" "dl4a.out"}
    {"Run dl6a1 with --dynamic-list-data and dlopen on libdl6a.so"
     "--dynamic-list-data -ldl" ""
     {dl6amain.c} "dl6a1" "dl6a.out"}
    {"Run dl6a2 with -Bsymbolic-functions and dlopen on libdl6a.so"
     "-Bsymbolic-functions -ldl" ""
     {dl6amain.c} "dl6a2" "dl6b.out"}
    {"Run dl6a3 with -Bsymbolic and dlopen on libdl6a.so"
     "-Bsymbolic -ldl" ""
     {dl6amain.c} "dl6a3" "dl6b.out"}
    {"Run dl6a4 with -Bsymbolic --dynamic-list-data and dlopen on libdl6a.so"
     "-Bsymbolic --dynamic-list-data -ldl" ""
     {dl6amain.c} "dl6a4" "dl6a.out"}
    {"Run dl6a5 with -Bsymbolic-functions --dynamic-list-cpp-new and dlopen on libdl6a.so"
     "-Bsymbolic-functions --dynamic-list-cpp-new -ldl" ""
     {dl6amain.c} "dl6a5" "dl6b.out"}
    {"Run dl6a6 with --dynamic-list-cpp-new -Bsymbolic-functions and dlopen on libdl6a.so"
     "--dynamic-list-cpp-new -Bsymbolic-functions -ldl" ""
     {dl6amain.c} "dl6a6" "dl6b.out"}
    {"Run dl6a7 with --dynamic-list-data -Bsymbolic and dlopen on libdl6a.so"
     "--dynamic-list-data -Bsymbolic -ldl" ""
     {dl6amain.c} "dl6a7" "dl6a.out"}
    {"Run dl6b1 with --dynamic-list-data and dlopen on libdl6b.so"
     "--dynamic-list-data -ldl" ""
     {dl6bmain.c} "dl6b1" "dl6a.out"}
    {"Run dl6b2 with dlopen on libdl6b.so"
     "-ldl" ""
     {dl6bmain.c} "dl6b2" "dl6b.out"}
    {"Run dl6c1 with --dynamic-list-data and dlopen on libdl6c.so"
     "--dynamic-list-data -ldl" ""
     {dl6cmain.c} "dl6c1" "dl6b.out"}
    {"Run dl6d1 with --dynamic-list-data and dlopen on libdl6d.so"
     "--dynamic-list-data -ldl" ""
     {dl6dmain.c} "dl6d1" "dl6b.out"}
    {"Run with libdata1.so"
     "tmpdir/libdata1.so" ""
     {dynbss1.c} "dynbss1" "pass.out"}
    {"Run with libdata2.so"
     "tmpdir/libdata2.so" ""
     {weakdef1.c} "weakdef1" "pass.out"}
    {"Run with libfunc1.so comm1.o"
     "tmpdir/libfunc1.so tmpdir/comm1.o" ""
     {dummy.c} "comm1" "pass.out"}
    {"Run with comm1.o libfunc1.so"
     "tmpdir/comm1.o tmpdir/libfunc1.so" ""
     {dummy.c} "comm1" "pass.out"}
    {"Run with pr11138-2.c libpr11138-1.so"
     "--version-script=pr11138-2.map tmpdir/pr11138-2.o tmpdir/libpr11138-1.so" ""
     {dummy.c} "pr11138a" "pr11138.out"}
    {"Run with libpr11138-1.so pr11138-2.c"
     "--version-script=pr11138-2.map tmpdir/libpr11138-1.so tmpdir/pr11138-2.o" ""
     {dummy.c} "pr11138b" "pr11138.out"}
    {"Run with pr13250-3.c, libpr13250-1.so and libpr13250-2.so"
     "--as-needed tmpdir/pr13250-3.o tmpdir/libpr13250-1.so tmpdir/libpr13250-2.so" ""
     {dummy.c} "pr13250" "pass.out"}
    {"Run with pr14323-1.c pr14323-2.so"
     "tmpdir/libpr14323-2.so" ""
     {pr14323-1.c} "pr14323" "pass.out"}
    {"Run with pr14862-1.c libpr14862.so"
     "--as-needed tmpdir/libpr14862-1.o tmpdir/libpr14862.so" ""
     {dummy.c} "pr14862" "pr14862.out"}
    {"Link with --add-needed"
     "tmpdir/libneeded1c.o --add-needed -rpath=tmpdir -Ltmpdir -lneeded1a" ""
     {dummy.c} "needed1a" "needed1.out"}
    {"Link with --copy-dt-needed-entries"
     "tmpdir/libneeded1c.o --copy-dt-needed-entries -rpath=tmpdir -Ltmpdir -lneeded1a" ""
     {dummy.c} "needed1b" "needed1.out"}
    {"Run relmain"
     "--no-as-needed -rpath=tmpdir -Ltmpdir -lrel" ""
     {relmain.c} "relmain" "relmain.out"}
}

# NetBSD ELF systems do not currently support the .*_array sections.
run_ld_link_exec_tests [list "*-*-netbsdelf*"] $run_tests

# Check --no-add-needed and --no-copy-dt-needed-entries
set testname "--no-add-needed"
set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag tmpdir/libneeded1c.o -Wl,--no-add-needed,-rpath-link=tmpdir -Ltmpdir -lneeded1a"]
if { [ regexp "tmpdir/libneeded1b.so: .*: DSO missing" $exec_output ] } {
    pass $testname
} {
    fail $testname
}
set testname "--no-copy-dt-needed-entries"
set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag tmpdir/libneeded1c.o -Wl,--no-copy-dt-needed-entries,-rpath-link=tmpdir -Ltmpdir -lneeded1a"]
if { [ regexp "tmpdir/libneeded1b.so: .*: DSO missing" $exec_output ] } {
    pass $testname
} {
    fail $testname
}
set testname "--no-add-needed -shared"
set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag -shared tmpdir/libneeded1pic.o -Wl,--no-add-needed,-z,defs -Ltmpdir -lneeded1a"]
if { [ regexp "undefined reference to `bar'" $exec_output ] } {
    pass $testname
} {
    fail $testname
}
set testname "--no-copy-dt-needed-entries -shared"
set exec_output [run_host_cmd "$CC" "$gcc_gas_flag $gcc_ld_flag -shared tmpdir/libneeded1pic.o -Wl,--no-copy-dt-needed-entries,-z,defs -Ltmpdir -lneeded1a"]
if { [ regexp "undefined reference to `bar'" $exec_output ] } {
    pass $testname
} {
    fail $testname
}

# Check to see if the C++ compiler works
if { [which $CXX] == 0 } {
    return
}

set build_cxx_tests {
  {"Build libdl3a.so with --dynamic-list=dl3.list"
   "-shared -Wl,--dynamic-list=dl3.list" "-fPIC"
   {dl3.cc} {} "libdl3a.so" "c++"}
  {"Build libdl3b.so with -Bsymbolic"
   "-shared -Wl,-Bsymbolic" "-fPIC"
   {dl3.cc} {} "libdl3b.so" "c++"}
  {"Build libdl3a.so with --dynamic-list-cpp-typeinfo"
   "-shared -Wl,--dynamic-list-cpp-typeinfo" "-fPIC"
   {dl3.cc} {} "libdl3c.so" "c++"}
  {"Build libdnew1a.so with --Bsymbolic-functions --dynamic-list-cpp-new"
   "-shared -Wl,-Bsymbolic-functions,--dynamic-list-cpp-new" "-fPIC"
   {del.cc new.cc} {} "libnew1a.so" "c++"}
  {"Build libdnew1b.so with --dynamic-list-data --dynamic-list-cpp-new"
   "-shared -Wl,--dynamic-list-data,--dynamic-list-cpp-new" "-fPIC"
   {del.cc new.cc} {} "libnew1b.so" "c++"}
}

# "-shared -Bsymbolic" only works with gcc 4.5.0 and newer.
#    {"Run with libdl3b.so"
#     "tmpdir/libdl3b.so" ""
#     {dl3main.cc} "dl3b" "dl3b.out" "" "c++"}
set run_cxx_tests {
    {"Run with libdl3a.so"
     "-Wl,--no-as-needed tmpdir/libdl3a.so" ""
     {dl3main.cc} "dl3a" "dl3a.out" "" "c++"}
    {"Run with libdl3c.so"
     "-Wl,--no-as-needed tmpdir/libdl3c.so" ""
     {dl3main.cc} "dl3c" "dl3a.out" "" "c++"}
    {"Run with libnew1a.so"
     "tmpdir/libnew1a.so" ""
     {dl5.cc} "dl5a" "dl5.out" "" "c++"}
    {"Run with libnew1b.so"
     "tmpdir/libnew1b.so" ""
     {dl5.cc} "dl5b" "dl5.out" "" "c++"}
}

run_cc_link_tests $build_cxx_tests
run_ld_link_exec_tests [] $run_cxx_tests
