[oe] Query on meta-java layer: openjdk-7-jre: compilation issue with '-fuse-ld-bfd'

Max Krummenacher max.oss.09 at gmail.com
Tue Mar 17 23:38:59 UTC 2015


Hello Sam

> I am using an openembedded setup and using the daisy branch.
> I am trying to use meta java: git://git.yoctoproject.org/meta-java  to compile openjdk-7-jre and seeing the following error:
>
> | arm-linux-gnueabihf-gcc: error: unrecognized command line option '-fuse-ld=bfd'
>
> Looks like the addition of '-fuse-ld=bfd" was introduced with the following commit in meta-java:
> commit cb351db824b0eb4a71514156bba543f6dde19740
> Author: Max Krummenacher <max.oss.09 at gmail.com>
> Date:   Tue Jan 20 16:14:23 2015 +0100
>
> I am using linaro toolchain: gcc-linaro-arm-linx-gnueabihf-4.7-2013 and does not support "-fuse-ld" option. Any ideas on how this can be fixed?
>
The openemembedded built toolchain in daisy, both from the oe-core and
the linaro layers are gcc 4.8 based and do support the option.
So  having the toolchain built by oe or using a newer external
toolchain can fix your issue.

If you're looked to a 4.7 toolchain because of some other issue you
could go through the commit which introduced the -fuse-ld and remove
the -fuse-ld=bfd from the patches in
recipes-core/openjdk/openjdk-7-25b30/. I guess your toolchain by
default does link with the classic bfd linker rather than using gold.

If that is a bigger problem one could probably add support for your
use case, e.g. by trying to compile on failure without the option and
commit such a patch to meta-java. :

$(CC_COMPILE) -static -fuse-ld=bfd -o $@ $< $(COMPILE_DONE) ||
$(CC_COMPILE) -static -o $@ $< $(COMPILE_DONE)


Regards
Max



More information about the Openembedded-devel mailing list