# 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} {} "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 "'bar' is defined in DSO tmpdir/libneeded1b.so" $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 "'bar' is defined in DSO tmpdir/libneeded1b.so" $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
