Re: binutils 2.18.50.0.8 frv build error
From: H.J. Lu
Date: Tue Jul 15 2008 - 10:00:59 EST
On Tue, Jul 15, 2008 at 04:47:47PM +0300, Adrian Bunk wrote:
> On Tue, Jul 15, 2008 at 06:20:05AM -0700, H.J. Lu wrote:
> > On Tue, Jul 15, 2008 at 03:13:27PM +0300, Adrian Bunk wrote:
> > > Toolchain:
> > > - gcc 4.3.1
> > > - binutils 2.18.50.0.7 and 2.18.50.0.8
> > > - configured for frv-linux
> > > - kernel 2.6.26
> > >
> > > Builds fine when using binutils 2.18.50.0.7,
> > > but fails as follows with binutils 2.18.50.0.8:
> > >
> > > <-- snip -->
> > >
> > > ...
> > > HOSTCC scripts/kallsyms
> > > CC init/main.o
> > > CHK include/linux/compile.h
> > > UPD include/linux/compile.h
> > > CC init/version.o
> > > CC init/do_mounts.o
> > > LD init/mounts.o
> > > CC init/noinitramfs.o
> > > LD init/built-in.o
> > > frv-linux-ld: init/mounts.o: compiled with -fpic and linked with modules that use non-pic relocations
> > > frv-linux-ld: failed to merge target specific data of file init/mounts.o
> > > make[2]: *** [init/built-in.o] Error 1
> > >
> > > <-- snip -->
> > >
> > > Complete verbose log below.
> > >
> > > Any hints what's going wrong?
> > >
> > > cu
> > > Adrian
> > >
> > >
> >
> > ...
> >
> > > frv-linux-ld -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/noinitramfs.o
> > > frv-linux-ld: init/mounts.o: compiled with -fpic and linked with modules that use non-pic relocations
> > > frv-linux-ld: failed to merge target specific data of file init/mounts.o
> > > make[1]: *** [init/built-in.o] Error 1
> > > make: *** [init] Error 2
> >
> > This regression was introduced between 2008-05-02 10:10am and
> > 2008-07-09 5:45pm PDT. Does ld from binutils 2.18.50.0.7 work
> > on the same init/main.o init/version.o init/mounts.o
> > init/noinitramfs.o? If yes, please open a bug report at
> >
> > http://www.sourceware.org/bugzilla/
>
> No, it does not work with these .o files.
>
> > with those .o files. If not, please find out why.
>
> Tried it the other way round:
> - compiled with 2.18.50.0.7.
> - then changed binutils to 2.18.50.0.8
>
> Works:
> frv-linux-ld -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/noinitramfs.o
>
> Fails:
> frv-linux-ld -r -o init/mounts.o init/do_mounts.o
> frv-linux-ld -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/noinitramfs.o
>
>
> I did an "frv-linux-objdump -Dx" on the init/mounts.o files generated
> with both binutils versions, and the diff is:
>
>
> --- working 2008-07-15 16:34:49.000000000 +0300
> +++ broken 2008-07-15 16:34:40.000000000 +0300
> architecture: fr450, flags 0x00000011:
> HAS_RELOC, HAS_SYMS
> start address 0x00000000
> -private flags = 0x800020d: -mcpu=fr450 -mgpr-32 -msoft-float non-pic relocations
> +private flags = 0x800030d: -mcpu=fr450 -mgpr-32 -msoft-float -fpic non-pic relocations
>
Are you saying "ld -r init/do_mounts.o" changed private flags? If
yes, please open a bug report at
http://www.sourceware.org/bugzilla/
with the original init/do_mounts.o.
H.J.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/