This is the mail archive of the
egcs-testresults@egcs.cygnus.com
mailing list for the EGCS project.
g77 -fPIC failures. was: Results for egcs-2.93.20 19990429 (gcc2 ss-980929 experimental) testsuite on i686-pc-sco3.2v5.0.5
- To: craig@jcb-sc.com
- Subject: g77 -fPIC failures. was: Results for egcs-2.93.20 19990429 (gcc2 ss-980929 experimental) testsuite on i686-pc-sco3.2v5.0.5
- From: Robert Lipe <robertlipe@usa.net>
- Date: Fri, 4 Jun 1999 00:20:50 -0500
- Cc: egcs-testresults@egcs.cygnus.com
- References: <199904291445.JAA25148@rjlhome.dgii.com> <19990429150600.7279.qmail@deer>
Since this was a regression, I started to dig into this a little deeper.
> Could someone with an SCO system look into these failures? They don't
> occur on other i686 targets, AFAICT, or on i686-pc-sco for -mcoff
> instead of -fPIC (if I'm reading these test results right).
-mcoff and -fPIC are rather different and even incompaptible.
Interestingly, these failures don't show up on even the SVR5/x86 targets
even in PIC mode.
I walked back through my logs. These passed on 4/13 but failed on 4/24.
(I don't recall why OpenServer wouldn't build for that week and a half
but at least that gives us a range of ChangeLogs to parse.) This was
right at the peak of the i386 overhaul.
I looked at 970816-3.f. If I add -static to the link line, I get
believable output. Only if it's dyanmic and PIC does it fail
to execute. Unfortunately, it looks like it's dropping core in
/usr/lib/libc.so.1 if the GDB output can be believed:
Program received signal SIGSEGV, Segmentation fault.
0x80016ce6 in ?? () from /usr/lib/libc.so.1
(gdb) where
#0 0x80016ce6 in ?? () from /usr/lib/libc.so.1
#1 0x80016bcc in ?? () from /usr/lib/libc.so.1
#2 0x800181dd in ?? () from /usr/lib/libc.so.1
#3 0x8001929d in ?? () from /usr/lib/libc.so.1
#4 0x80014a90 in ?? () from /usr/lib/libc.so.1
PIC and dynamic linking on x86 is pretty mysterious to me. How should
we debug this? I can walk the tree (or at least specific files) back in
time to spot the exact date it broke but that's a pretty icky way to do
it.
> >Running target unix/-fPIC
> >FAIL: g77.f-torture/execute/970816-3.f execution, -O0
> >FAIL: g77.f-torture/execute/970816-3.f execution, -O1
> >FAIL: g77.f-torture/execute/970816-3.f execution, -O2
> >FAIL: g77.f-torture/execute/970816-3.f execution, -O2 -fomit-frame-pointer -finline-functions
> >FAIL: g77.f-torture/execute/970816-3.f execution, -Os
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O0
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O1
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O2
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O2 -fomit-frame-pointer -finline-functions
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O2 -fomit-frame-pointer -finline-functions -funroll-loops
> >FAIL: g77.f-torture/execute/971102-1.f execution, -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops
> >FAIL: g77.f-torture/execute/971102-1.f execution, -Os
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O0
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O1
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O2
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O2 -fomit-frame-pointer -finline-functions
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O2 -fomit-frame-pointer -finline-functions -funroll-loops
> >FAIL: g77.f-torture/execute/u77-test.f execution, -O2 -fomit-frame-pointer -finline-functions -funroll-all-loops
> >FAIL: g77.f-torture/execute/u77-test.f execution, -Os