[OE-core] libpcre build failure - using host system libs?

Jack Mitchell ml at communistcode.co.uk
Fri Jun 22 10:49:20 UTC 2012


On 22/06/12 11:42, Jack Mitchell wrote:
> Ok, so it seems today isn't my day. Along with the sgml-common I have 
> now come across another issue:
>
>     [jack at archHP ~]$ cat
>     /home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/temp/log.do_compile.21828
>     DEBUG: Executing shell function do_compile
>     ERROR: Function failed: do_compile (see
>     /home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/temp/log.do_compile.21828
>     for further information)
>     NOTE: make CC_FOR_BUILD=gcc  CFLAGS_FOR_BUILD=-DLINK_SIZE=2
>     -I/home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/pcre-8.30/include
>     LINK_FOR_BUILD=gcc
>     -L/home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/pcre-8.30/lib
>     make  all-am
>     make[1]: Entering directory
>     `/home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/pcre-8.30'
>     ./x86_64-linux-libtool  --tag=CXX   --mode=link g++
>     -isystem/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/include
>     -O2 -pipe -version-info 0:0:0
>     -L/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -L/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     -Wl,-rpath-link,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -Wl,-rpath-link,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     -Wl,-rpath,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -Wl,-rpath,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     -Wl,-O1 -o libpcrecpp.la -rpath
>     /home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     pcrecpp.lo pcre_scanner.lo pcre_stringpiece.lo libpcre.la
>     x86_64-linux-libtool: link: g++  -fPIC -DPIC -shared -nostdlib
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/crti.o
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/crtbeginS.o
>     .libs/pcrecpp.o .libs/pcre_scanner.o .libs/pcre_stringpiece.o  
>     -Wl,-rpath
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/pcre-8.30/.libs
>     -Wl,-rpath
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -L/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -L/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     ./.libs/libpcre.so -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0
>     -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib
>     -L/lib/../lib -L/usr/lib/../lib
>     -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../.. -lstdc++
>     -lm -lc -lgcc_s
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/crtendS.o
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/crtn.o
>     -O2 -Wl,-rpath-link
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -Wl,-rpath-link
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     -Wl,-rpath
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/usr/lib
>     -Wl,-rpath
>     -Wl,/home/jack/Projects/poky-denzil.git/r0005/tmp/sysroots/x86_64-linux/lib
>     -Wl,-O1   -Wl,-soname -Wl,libpcrecpp.so.0 -o .libs/libpcrecpp.so.0.0.0
>     g++: error:
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/crti.o: No
>     such file or directory
>     g++: error:
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/crtbeginS.o: No such
>     file or directory
>     g++: error: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/crtendS.o:
>     No such file or directory
>     g++: error:
>     /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/crtn.o: No
>     such file or directory
>     make[1]: *** [libpcrecpp.la] Error 1
>     make[1]: Leaving directory
>     `/home/jack/Projects/poky-denzil.git/r0005/tmp/work/x86_64-linux/libpcre-native-8.30-r2/pcre-8.30'
>     make: *** [all] Error 2
>     ERROR: oe_runmake failed
>
>
>
> This seems to me like it is looking in my host distribution for the 
> require files and therefore can't find them? For starters I think I 
> know why it can't find them as my host uses GCC 4.7.1.
>
> So, first off is it meant to be using host system files, and second 
> why has it not picked up my new GCC version?
>
> Regards,
> -- 
>
>    Jack Mitchell (jack at embed.me.uk)
>    Embedded Systems Engineer
>    http://www.embed.me.uk
>
> --
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Ok, so it looks as if it isn't meant to be using host system files as 
this function shows:

do_compile () {
   # stop libtool from trying to link with host libraries - fix from #33
   # this resolve build problem on amd64 - #1015
   if [ -e ${S}/${HOST_SYS}-libtool ] ; then
     sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool
   else
     ln -sf ${S}/libtool ${S}/${HOST_SYS}-libtool
     sed -i 's:-L\$:-L${STAGING_LIBDIR} -L\$:' ${S}/${HOST_SYS}-libtool
   fi

   # The generation of dftables can lead to timestamp problems with ccache
   # because the generated config.h seems newer.  It is sufficient to 
ensure that the
   # attempt to build dftables inside make will actually work 
(foo_FOR_BUILD is
   # only used for this).
   oe_runmake CC_FOR_BUILD="${BUILD_CC}" CFLAGS_FOR_BUILD="-DLINK_SIZE=2 
-I${S}/include" LINK_FOR_BUILD="${BUILD_CC} -L${S}/lib"
}

So it's something that has been tried to fix but maybe I've just hit a 
corner case. My machine is 64bit.

-- 

   Jack Mitchell (jack at embed.me.uk)
   Embedded Systems Engineer
   http://www.embed.me.uk

--





More information about the Openembedded-core mailing list