On (12/01/10 12:36), Paul Menzel wrote:
> Dear OE hackers,
>
>
> Am Montag, den 11.01.2010, 23:42 +0100 schrieb Paul Menzel:
>
> […]
>
> > Putting
> >
> > PREFERRED_VERSION_binutils = "2.20"
> > PREFERRED_VERSION_binutils-cross = "2.20"
> > PREFERRED_VERSION_binutils-cross-sdk = "2.20"
> >
> > PREFERRED_VERSION_gcc = "4.4.2"
> > PREFERRED_VERSION_gcc-cross = "4.4.2"
> > PREFERRED_VERSION_gcc-cross-sdk = "4.4.2"
> > PREFERRED_VERSION_gcc-cross-initial = "4.4.2"
> > PREFERRED_VERSION_gcc-cross-intermediate = "4.4.2"
> >
> > in my `local.conf` and running `bitbake vdr` gave me an error in
> > `do_compile` for `libcap_1.10.bb`.
> >
> > arm-angstrom-linux-gnueabi-ld -soname libcap.so.1 -x -shared -o
> > libcap.so.1.10 cap_alloc.o cap_proc.o cap_extint.o cap_flag.o cap_text.o
> > cap_sys.o
> > arm-angstrom-linux-gnueabi-ld: cap_text.o: relocation
> > R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a
> > shared object; recompile with -fPIC
>
> I opened a new thread for this [2].
>
> Anyways compiling the plugins for VDR in `do_install` [3]
>
> do_install () {
> oe_runmake 'DESTDIR=${D}' \
> 'PREFIX=${prefix}' \
> 'CONFDIR=${sysconfdir}/vdr' \
> 'VIDEODIR=/var/lib/vdr/video' \
> 'PLUGINLIBDIR=${PLUGINDIR}' \
> 'LOCDIR=${datadir}/locale' \
> install
> }
>
> I also get the same error which I did not get before with GCC 4.1.1.
Older versions of binutils/ld can not detect MOVT/MOVW relocations which
are absolute and cant be used in PIC code.
hence even if the error was there it remained latent.
>
>
> /oe/tangstrom-dev/cross/armv7a/lib/gcc/arm-angstrom-linux-gnueabi/4.4.2/../../../../arm-angstrom-linux-gnueabi/bin/ld:
> hello.o: relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be
> used when making a shared object; recompile with -fPIC
> hello.o: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make[1]: *** [libvdr-hello.so] Error 1
> make[1]: Leaving directory
> `/oe/tangstrom-dev/work/armv7a-angstrom-linux-gnueabi/vdr-1.7.10-r3/vdr-1.7.10/PLUGINS/src/hello'
>
> [… same for all other plugins]
>
> The thing that puzzles me is, that in the plugin’s Makefile [4] `-fPIC`
> is specified
>
> CXX ?= g++
> CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses
> LIBS ?= ${LDFLAGS}
>
> but in the above command it is not included.
These are conditional so may be you already have defined CXXFLAGS in
your environment infact bitbake will do it for you.
>
> arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8
> -mfpu=neon -mfloat-abi=softfp
> -isystem/oe/tangstrom-dev/staging/armv7a-angstrom-linux-gnueabi/usr/include
> -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -ggdb3
> -fpermissive -fvisibility-inlines-hidden -c -D_GNU_SOURCE
> -DPLUGIN_NAME_I18N='"hello"' -I../../../include hello.c
>
> Looking at `run.do_install.28829` I cannot see find the `-fPIC` in
> there. So my question is, why is it not included. Is it because of »?=«?
> How do I get it included?
you could do CXXFLAGS_append = ... in the recipe.
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel