On Tue, Feb 1, 2011 at 9:52 AM, Dave Korn <dave.korn.cyg...@gmail.com> wrote:
> On 01/02/2011 17:15, H.J. Lu wrote:
>> On Tue, Feb 1, 2011 at 2:54 AM, Dave Korn <dave.korn.cyg...@gmail.com> wrote:
>>> On 01/02/2011 02:33, Joel Sherrill wrote:
>>>> Hi,
>>>>
>>>> There are ~100 failures on each *-rtems* target
>>>> in the latest test runs when various lto related
>>>> flags are on.  The symbols in questions are in the
>>>> RTEMS libraries which are picked up via the
>>>> -B... argument.  Other symbols from the same
>>>> library are resolved.
>>>  These have all cropped up since -fuse-linker-plugin became the default.
>>>
>>>> Should LTO work with a target not using gold?
>>>  Yes, it should, but some work is needed at the binutils end.  I am testing
>>> the attached two patches at the moment; the idea is to have fully-debugged
>>> support for LTO+plugin in the 2.20.1 release, to support 4.6.0 when it 
>>> comes out.
>>>
>>
>> FWIW, your recan linker patch doesn't fix LTO 8, which is:
>>
>> http://sourceware.org/bugzilla/show_bug.cgi?id=12277
>
>  It wasn't supposed to, we've been through this before.  It needs both the
> link-order fix *and* the rescan-libs fix.  The combined pair of patches I sent
> Joel (one of which is indeed that first patch, the second of which is for lib
> rescanning) *does* fix LTO 8 on i686/Linux, I tested it.
>

I applied 2 patches of yours, With gcc version 4.6.0 revision 169143, I got

/usr/gcc-4.6/bin/gcc
-B/export/build/gnu/binutils-lto/build-i686-linux/ld/tmpdir/ld/
-L/usr/local/i686-linux/lib -L/usr/local/lib -L/lib -L/usr/lib  -m32
-o tmpdir/lto-8.exe
-L/net/gnu-6/export/gnu/src/binutils/binutils/ld/testsuite/ld-plugin
-O2 -flto -fuse-linker-plugin tmpdir/lto-8b.o tmpdir/lto-8a.o
tmpdir/dummy.o
Executing on host: sh -c {/usr/gcc-4.6/bin/gcc
-B/export/build/gnu/binutils-lto/build-i686-linux/ld/tmpdir/ld/
-L/usr/local/i686-linux/lib -L/usr/local/lib -L/lib -L/usr/lib  -m32
-o tmpdir/lto-8.exe
-L/net/gnu-6/export/gnu/src/binutils/binutils/ld/testsuite/ld-plugin
-O2 -flto -fuse-linker-plugin tmpdir/lto-8b.o tmpdir/lto-8a.o
tmpdir/dummy.o 2>&1}  /dev/null ld.tmp (timeout = 300)
/export/build/gnu/binutils-lto/build-i686-linux/ld/tmpdir/ld/ld:
tmpdir/lto-8.exe: hidden symbol `bar' isn't defined
/export/build/gnu/binutils-lto/build-i686-linux/ld/tmpdir/ld/ld: final
link failed: Bad value
collect2: ld returned 1 exit status


-- 
H.J.

Reply via email to