Adam Nemet <anemet@caviumnetworks.com> writes:
Catherine Moore <clm@codesourcery.com> writes:
I've tested with mips-linux and also with mips-sde-elf. The testsuite
doesn't currently pass with the mips-sde-elf configuration due to extra
compiler/linker messages, though.
Can you elaborate? It would be nice if the new tests passed on the
configurations that they're run on.
I imagine it was:
%{fPIC|fpic|fPIE|fpie:%{!mips16*:-KPIC}}
in sde.h:SUBTARGET_ASM_SPEC. So we assemble -fpic code as -mabicalls,
even though GCC hasn't generated that.
If so, it looks like an SDE bug to me, and it's good that the testsuite
has picked up on it. -fpic really ought to be link-compatible with
-fno-pic, if it's accepted at all.
If that guess is right, I think the patch is OK to commit with
the following changes:
+foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/nonpic-\[a-z\]*.c]] {
Part of the reason for splitting out the "main-*" files was that this
could simply be non-pic-*.c instead of nonpic-\[a-z\]*.c and that this
could be:
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/main-\[0-9\]*.c]] "-fno-pic" ""
main-*.c instead of main-\[0-9\]*.c.
+These tests are meant to test the interoperability of PIC and nonpic objects for mips.
+This table shows the various combinations and each case is tested by one of the nonpic tests.
+Test Case The PIC code The non-PIC code The result (stub and/or PLT)
+
+nonpic-1.c nothing nothing Neither (trivial)
+nonpic-2.c nothing call only PLT entry
+nonpic-3.c nothing address taken only Neither (* But creating a PLT entry is valid)
+nonpic-4.c nothing address and call PLT entry
+nonpic-5.c call only nothing .MIPS.stubs entry
+nonpic-6.c call only call only .MIPS.stubs and PLT
+nonpic-7.c call only address taken only .MIPS.stubs (* Also creating a PLT entry is valid)
+nonpic-8.c call only address and call .MIPS.stubs and PLT entry
+nonpic-9.c address taken only nothing Neither
+nonpic-10.c address taken only call only PLT entry
+nonpic-11.c address taken only address taken only Neither (* But creating a PLT entry is valid)
+nonpic-12.c address taken only address and call PLT entry
+nonpic-13.c address and call nothing Neither
+nonpic-14.c address and call call only PLT entry
+nonpic-15.c address and call address taken only Neither (* But creating a PLT entry is valid)
+nonpic-16.c address and call address and call PLT entry
This hasn't been updated for the new names.
s/nonpic tests/main-*.c tests/
s/nonpic-/main-/
Looks good to go otherwise, thanks. But given that Adam and David have
expressed concerns, please leave 24 hours for objections before committing.
Richard