# Expect script for ld-powerpc tests
#   Copyright 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2011
#   Free Software Foundation
#
# 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.
#

if { ![istarget "powerpc*-*-*"]	} {
    return
}

if {[istarget "*-*-vxworks"]} {
    set ppcvxtests {
	{"VxWorks shared library test 1 (default script)" "-shared"
	 "-mregnames" {vxworks1-lib.s}
	 {{readelf --segments vxworks1-lib.sd}}
	 "libvxworks1.so"}
	{"VxWorks shared library test 1" "-shared -Tvxworks1.ld"
	 "-mregnames" {vxworks1-lib.s}
	 {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
	  {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
	 "libvxworks1.so"}
	{"VxWorks executable test 1 (dynamic)" \
	 "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic"
	 "-mregnames" {vxworks1.s}
	 {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
	 "vxworks1"}
	{"VxWorks executable test 2 (dynamic)" \
	 "-Tvxworks1.ld -q --force-dynamic"
	 "-mregnames" {vxworks2.s}
	 {{readelf --segments vxworks2.sd}}
	 "vxworks2"}
	{"VxWorks executable test 2 (static)"
	 "-Tvxworks1.ld"
	 "-mregnames" {vxworks2.s}
	 {{readelf --segments vxworks2-static.sd}}
	 "vxworks2"}
	{"VxWorks relax test"
	 "-Tvxworks1.ld --relax -q"
	 "-mregnames" {vxworks-relax.s}
	 {{readelf --relocs vxworks-relax.rd}}
	 "vxworks-relax"}
	{"VxWorks relocatable relax test"
	 "-Tvxworks1.ld -r --relax -q"
	 "-mregnames" {vxworks-relax-2.s}
	 {{readelf --relocs vxworks-relax-2.rd}}
	 "vxworks-relax-2"}
    }
    run_ld_link_tests $ppcvxtests
    run_dump_test "vxworks1-static"
    return
}

# powerpc ELF only at the moment.  Disable for nto too, even though it
# is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants
# -melf32ppcnto.

if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"]
     || [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
     || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
     || [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"]
     || [istarget "*-*-nto*"] } {
    return
}

proc supports_ppc64 { } {
    global ld

    catch "exec $ld --help | grep emulations" tmp
    if [ string match "*elf64ppc*" $tmp ] then {
	return 1
    } else {
	return 0
    }
}

# List contains test-items with 3 items followed by 2 lists:
# 0:name 1:ld options 2:assembler options
# 3:filenames of assembler files 4: action and options. 5: name of output file

# Actions:
# objdump: Apply objdump options on result.  Compare with regex (last arg).
# nm: Apply nm options on result.  Compare with regex (last arg).
# readelf: Apply readelf options on result.  Compare with regex (last arg).

set ppcelftests {
    {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "-a32" {reloc.s}
     {{objdump -hw reloc.d}} "reloc.so"}
    {"APUinfo section processing" "-melf32ppc"
     "-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
    {{readelf -x2 apuinfo.rd}} "apuinfo"}
    {"APUinfo NULL section processing" "-melf32ppc"
     "-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
    {{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
    {"TLS32 static exec" "-melf32ppc" "-a32"  {tls32.s tlslib32.s}
     {{objdump -dr tls32.d} {objdump -sj.got tls32.g}
      {objdump -sj.tdata tls32.t}}
     "tls32"}
    {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" {}
     {} "libtlslib32.so"}
    {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" {}
     {{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
      {objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
      "tlsexe32"}
    {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" {}
     {{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
      {objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
      "tls32.so"}
    {"TLS32 markers" "-melf32ppc" "-a32"  {tlsmark32.s tlslib32.s}
     {{objdump -dr tlsmark32.d}}
      "tlsmark32"}
    {"TLS32 opt 1" "-melf32ppc" "-a32"  {tlsopt1_32.s tlslib32.s}
     {{objdump -dr tlsopt1_32.d}}
      "tlsopt1_32"}
    {"TLS32 opt 2" "-melf32ppc" "-a32"  {tlsopt2_32.s tlslib32.s}
     {{objdump -dr tlsopt2_32.d}}
      "tlsopt2_32"}
    {"TLS32 opt 3" "-melf32ppc" "-a32"  {tlsopt3_32.s tlslib32.s}
     {{objdump -dr tlsopt3_32.d}}
      "tlsopt3_32"}
    {"TLS32 opt 4" "-melf32ppc" "-a32"  {tlsopt4_32.s tlslib32.s}
     {{objdump -dr tlsopt4_32.d}}
      "tlsopt4_32"}
    {"Shared library with global symbol" "-shared -melf32ppc" "-a32" {sdalib.s}
     {} "sdalib.so"}
    {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "-a32" {sdadyn.s}
     {{objdump -R sdadyn.d}} "sdadyn"}
    {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "-a32" "relax.s"
     {{objdump -dr relax.d}}
      "relax"}
    {"relocatable relaxing" "-melf32ppc -r --relax" "-a32" "relax.s"
     {{objdump -dr relaxr.d}}
      "relax"}
}

set ppc64elftests {
    {"TLS static exec" "-melf64ppc" "-a64"  {tls.s tlslib.s}
     {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
      "tls"}
    {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" {}
     {} "libtlslib.so"}
    {"TLS helper old shared lib" "-shared -melf64ppc" "-a64" {oldtlslib.s}
     {} "liboldlib.so"}
    {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" {}
     {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
      {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
      "tlsexe"}
    {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" {}
     {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
      {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
      "tlsexeold"}
    {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" {}
     {{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
      {objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
      "tls.so"}
    {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "-a64"  {tlstoc.s}
     {{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
      {objdump -sj.tdata tlstoc.t}}
      "tlstoc"}
    {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so"
     "" {}
     {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
      {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
      "tlsexetoc"}
    {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so"
     "" {}
     {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
      {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
      "tlsexetocold"}
    {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" {}
     {{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
      {objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
      "tlstoc.so"}
    {"TLS markers" "-melf64ppc" "-a64"  {tlsmark.s tlslib.s}
     {{objdump -dr tlsmark.d}}
      "tlsmark"}
    {"TLS opt 1" "-melf64ppc" "-a64"  {tlsopt1.s tlslib.s}
     {{objdump -dr tlsopt1.d}}
      "tlsopt1"}
    {"TLS opt 2" "-melf64ppc" "-a64"  {tlsopt2.s tlslib.s}
     {{objdump -dr tlsopt2.d}}
      "tlsopt2"}
    {"TLS opt 3" "-melf64ppc" "-a64"  {tlsopt3.s tlslib.s}
     {{objdump -dr tlsopt3.d}}
      "tlsopt3"}
    {"TLS opt 4" "-melf64ppc" "-a64"  {tlsopt4.s tlslib.s}
     {{objdump -dr tlsopt4.d}}
      "tlsopt4"}
    {"sym@tocbase" "-shared -melf64ppc" "-a64" {symtocbase-1.s symtocbase-2.s}
	{{objdump -dj.data symtocbase.d}} "symtocbase.so"}
    {"TOC opt" "-melf64ppc" "-a64"  {tocopt.s}
	{{ld tocopt.out} {objdump -s tocopt.d}} "tocopt"}
    {"TOC opt2" "-melf64ppc --defsym x=2" "-a64"  {tocopt2.s}
	{{ld tocopt2.out} {objdump -s tocopt2.d}} "tocopt2"}
    {"TOC opt3" "-melf64ppc -no-keep-memory --defsym x=2" "-a64"  {tocopt3.s}
	{{objdump -s tocopt3.d}} "tocopt3"}
    {"TOC opt4" "-melf64ppc -no-keep-memory --defsym x=2" "-a64"
        {tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"}
    {"TOC opt5" "-melf64ppc" "-a64"  {tocopt5.s}
	{{objdump -s tocopt5.d}} "tocopt5"}
}


run_ld_link_tests $ppcelftests

if [ supports_ppc64 ] then {
    run_ld_link_tests $ppc64elftests
    run_dump_test "relbrlt"
}

run_dump_test "plt1"

run_dump_test "attr-gnu-4-00"
run_dump_test "attr-gnu-4-01"
run_dump_test "attr-gnu-4-02"
run_dump_test "attr-gnu-4-03"
run_dump_test "attr-gnu-4-10"
run_dump_test "attr-gnu-4-11"
run_dump_test "attr-gnu-4-12"
run_dump_test "attr-gnu-4-13"
run_dump_test "attr-gnu-4-14"
run_dump_test "attr-gnu-4-20"
run_dump_test "attr-gnu-4-21"
run_dump_test "attr-gnu-4-22"
run_dump_test "attr-gnu-4-23"
run_dump_test "attr-gnu-4-24"
run_dump_test "attr-gnu-4-31"
run_dump_test "attr-gnu-4-32"
run_dump_test "attr-gnu-4-33"
run_dump_test "attr-gnu-4-34"
run_dump_test "attr-gnu-4-41"

run_dump_test "attr-gnu-8-11"
run_dump_test "attr-gnu-8-23"
run_dump_test "attr-gnu-8-31"

run_dump_test "attr-gnu-12-11"
run_dump_test "attr-gnu-12-21"
