+ {"TOC opt6" "-melf64ppc" "" "-a64" {tocopt6a.s tocopt6b.s tocopt6c.s}
+ {{objdump -d tocopt6.d}} "tocopt6"}
+ {"TOC opt7" "-melf64ppc" "" "-a64 -mpower9" {tocopt7.s}
+ {{ld tocopt7.out} {objdump -s tocopt7.d}} "tocopt7"}
+ {"TOC opt8" "-melf64ppc" "" "-a64 -mpower9" {tocopt8.s}
+ {{objdump -s tocopt8.d}} "tocopt8"}
+ {"tocsave lib" "-shared -melf64ppc" "" "-a64" {tocsavelib.s}
+ {} "tocsavelib.so"}
+ {"tocsave1 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave1.s}
+ {{objdump -dr tocsave1s.d}} "tocsave1s"}
+ {"tocsave1 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave1.s}
+ {{objdump -dr tocsave1a.d}} "tocsave1a"}
+ {"tocsave2 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave2.s}
+ {{objdump -dr tocsave2s.d}} "tocsave2s"}
+ {"tocsave2 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave2.s}
+ {{objdump -dr tocsave2a.d}} "tocsave2a"}
+ {"ambig shared v1" "-shared -melf64ppc" "" "-a64" {funv1.s} {} "funv1.so"}
+ {"ambig shared v2" "-shared -melf64ppc" "" "-a64" {funv2.s} {} "funv2.so"}
+ {"notoc ext" "" "" "-a64" {ext.s} {} ""}
+ {"notoc" "-melf64ppc --no-plt-localentry -T ext.lnk" "" "-a64" {notoc.s}
+ {{objdump -d notoc.d} {readelf {-wf -W} notoc.wf}} "notoc"}
+ {"notoc2" "-melf64ppc -shared" "" "-a64 -mfuture" {notoc2.s}
+ {{objdump {-d -Mfuture} notoc2.d}} "notoc2"}
+ {"pcrelopt" "-melf64ppc --hash-style=gnu" "tmpdir/symtocbase.so"
+ "-a64 -mfuture" {pcrelopt.s}
+ {{objdump {-d -Mfuture} pcrelopt.d}
+ {readelf {-S --wide} pcrelopt.sec}} "pcrelopt" }
+}
+
+set ppceabitests {
+ {"VLE multiple segments 1" "-melf32ppc -T vle-multiseg-1.ld" ""
+ "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
+ {{readelf "-l" vle-multiseg-1.d}} "vle-multiseg-1"}
+ {"VLE multiple segments 2" "-melf32ppc -T vle-multiseg-2.ld" ""
+ "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
+ {{readelf "-l" vle-multiseg-2.d}} "vle-multiseg-2"}
+ {"VLE multiple segments 3" "-melf32ppc -T vle-multiseg-3.ld" ""
+ "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
+ {{readelf "-l" vle-multiseg-3.d}} "vle-multiseg-3"}
+ {"VLE multiple segments 4" "-melf32ppc -T vle-multiseg-4.ld" ""
+ "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
+ {{readelf "-l" vle-multiseg-4.d}} "vle-multiseg-4"}
+ {"VLE multiple segments 5" "-melf32ppc -T vle-multiseg-5.ld" ""
+ "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
+ {{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"}
+ {"VLE relocations 1" "-melf32ppc -T vle.ld" ""
+ "-a32 -mbig -mvle" {vle-reloc-1.s vle-reloc-def-1.s}
+ {{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"}
+ {"VLE relocations 2" "-melf32ppc -T vle.ld" ""
+ "-a32 -mbig -mvle" {vle-reloc-2.s vle-reloc-def-2.s}
+ {{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"}
+ {"VLE relocations 3" "-melf32ppc -T vle.ld" ""
+ "-a32 -mbig -mvle" {vle-reloc-3.s vle-reloc-def-3.s}
+ {{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"}