This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: r159311, LTO fails with emutls on ObjC.
On Thu, May 13, 2010 at 10:55:35AM +0100, IainS wrote:
>
> On 13 May 2010, at 04:39, Jack Howarth wrote:
>> FYI, there are a few new failures introduced with r159311...
>
> one good reason for introducing the checks ;-)
>
> [ I should get the ObjC++ TLS stuff posted this week too... ]
>
>> FAIL: objc.dg/torture/trivial.m -O2 -flto (test for excess errors)
>> WARNING: objc.dg/torture/trivial.m -O2 -flto compilation failed to
>> produce executable
>> FAIL: objc.dg/torture/trivial.m -O2 -fwhopr (test for excess errors)
>> WARNING: objc.dg/torture/trivial.m -O2 -fwhopr compilation failed to
>> produce executable
>> FAIL: objc.dg/torture/tls/thr-init-3.m -O2 -flto (test for excess
>> errors)
>> WARNING: objc.dg/torture/tls/thr-init-3.m -O2 -flto compilation
>> failed to produce executable
>> FAIL: objc.dg/torture/tls/thr-init-3.m -O2 -fwhopr (test for excess
>> errors)
>> WARNING: objc.dg/torture/tls/thr-init-3.m -O2 -fwhopr compilation
>> failed to produce executable
>> FAIL: objc.dg/torture/tls/thr-init-3.m -O2 -flto (test for excess
>> errors)
>> WARNING: objc.dg/torture/tls/thr-init-3.m -O2 -flto compilation
>> failed to produce executable
>> FAIL: objc.dg/torture/tls/thr-init-3.m -O2 -fwhopr (test for excess
>> errors)
>> WARNING: objc.dg/torture/tls/thr-init-3.m -O2 -fwhopr compilation
>> failed to produce executable
>>
>> that are lto related. We should open a PR for those, which are of the
>> form...
>
>> Executing on host: /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/
>> gcc/xgcc -B/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/ /
>> sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20100512/gcc/testsuite/
>> objc.dg/torture/trivial.m -O2 -flto -fnext-runtime -B/sw/src/
>> fink.build/gcc46-4.6.0-1000/darwin_objdir/x86
>> _64-apple-darwin10.3.0/./libobjc/.libs -L/sw/src/fink.build/
>> gcc46-4.6.0-1000/darwin_objdir/x86_64-apple-darwin10.3.0/./
>> libobjc/.libs /sw/src/fink.build/
>> gcc46-4.6.0-1000/gcc-4.6-20100512/gcc/testsuite/objc.dg/
>> torture/../../objc-obj-c++-shared/Object1.m -lobjc -lm -o ./
>> trivial.exe (timeout = 300)
>> /var/tmp//ccigmvmn.s:unknown:Undefined local symbol
>> L_OBJC_CLASS_Object.2245^M
>> /var/tmp//ccigmvmn.s:unknown:Undefined local symbol
>> L_OBJC_METACLASS_Object.2244^M
>> lto-wrapper: /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/
>> xgcc returned 1 exit status^M
>> lto-wrapper: deleting LTRANS file /var/tmp//ccz9Or6L.lto.o: No such
>> file or directory^M
>> collect2: lto-wrapper returned 1 exit status^M
>> compiler exited with status 1
>> output is:
>> /var/tmp//ccigmvmn.s:unknown:Undefined local symbol
>> L_OBJC_CLASS_Object.2245^M
>> /var/tmp//ccigmvmn.s:unknown:Undefined local symbol
>> L_OBJC_METACLASS_Object.2244^M
>> lto-wrapper: /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/
>> xgcc returned 1 exit status^M
>> lto-wrapper: deleting LTRANS file /var/tmp//ccz9Or6L.lto.o: No such
>> file or directory^M
>> collect2: lto-wrapper returned 1 exit status^M
>> FAIL: objc.dg/torture/trivial.m -O2 -flto (test for excess errors)
>
> I think we perhaps need some LTO-specific coverage on ObjC and ObjC++
> (I'll give it some thought after clearing the current backlog).
>
Iain,
My understanding was that all of the other lto failures on
x86_64-apple-darwin10 were expected and it seemed to be immune to
the issue of missing symbols that are seen in the lto testsuite
on i386-apple-darwin* or powerpc-apple-darwin9. I found these
objc lto failures on x86_64-apple-darwin10 to be very interesting
since they suggested that perhaps the issue of symbols being
optimized away by lto also exists on x86_64-apple-darwin* after all.
Jack
> Iain