[oe] perl-native_5.10.1 fails

Khem Raj raj.khem at gmail.com
Sat Mar 19 18:44:03 UTC 2011


On (19/03/11 07:01), Tom Rini wrote:
> On 03/16/2011 04:56 PM, Jan Paesmans wrote:
> >On 03/16/11 23:01, Tom Rini wrote:
> >>On 03/16/2011 01:49 PM, Jan Paesmans wrote:
> >>>Hi all,
> >>>
> >>>When trying to build an x11-image for pm9263 with angstrom-2010.x,
> >>>perl-native fails to build.
> >>>The error is listed below. As far as I can tell, the problem is that a
> >>>gcc flag is passed to the linker, -fstack-protector. I tried to find out
> >>>where this -fstack-protector could come from, but the only trace I could
> >>>find was in the Configure of perl-native itself. There is no mention
> >>>that it is set when Configure is called in the configure step, nor in
> >>>any of the environment variables during the do_configure or
> >>>do_compile step.
> >>>
> >>>I run Ubuntu 10.10 with gold as the linker. I thought that it might be
> >>>the gold linker but neither gold nor ld seem to have this option when
> >>>reviewing the man-page.
> >>
> >>Can you edit the recipe and add in:
> >>EXTRA_OEMAKE = 'LD="${CCLD}"'
> >>

actually when inheriting native it export LD=ld in envronment and thats
whats used in makefiles

You could try setting

export LD=${CC}
just after inherit native in the perl-native recipe

I have a simialr fix lined up for oe-core
> >>And do a bitbake -c clean perl-native then bitbake perl-native
> >>Thanks.
> >>
> >That did the trick. Now perl-native compiles fine. However when I
> >checked the output of the log.do_compile I did notice a change a the
> >behaviour. I was expecting the -fstack-protector flag to be gone,
> >instead it is still there. However, instead of invoking ld for the final
> >link, now gcc is invoked. Below you can find the relevent section of the
> >log file. Also in attachment is a patch with the change you suggested.
> 
> OK, thanks.  I'll put this into a patch this weekend.  What's going
> on is that while I'm not sure where -fstack-protector is coming from
> (but it's a useful flag), as you saw, 'ld' chokes on it.  But for
> linking you shouldn't really ever invoke ld directly but rather via
> gcc, so passing LD=${CCLD} overrides perl's makefiles and we invoke
> gcc as the linker and it handles the flag right in this case.
> 
> >
> >Thanks for the help.
> >Regards,
> >
> >Jan
> >
> >Running Makefile.PL in ext/DynaLoader
> >../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl
> >INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.so
> >LINKTYPE=static
> >Processing hints file hints/linux.pl
> >Unrecognized argument in LIBS ignored:
> >'-Wl,-rpath-link,/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib'
> >Unrecognized argument in LIBS ignored:
> >'-Wl,-rpath,/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib'
> >Unrecognized argument in LIBS ignored: '-Wl,-O1'
> >Unrecognized argument in LIBS ignored: '-fstack-protector'
> >Writing Makefile for DynaLoader
> >make[1]: Entering directory
> >`/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1/ext/DynaLoader'
> >make[1]: Leaving directory
> >`/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1/ext/DynaLoader'
> >Making all in ext/DynaLoader
> >  make all PERL_CORE=1 LIBPERL_A=libperl.so LINKTYPE=static
> >make[1]: Entering directory
> >`/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1/ext/DynaLoader'
> >../../miniperl "-I../../lib" "-I../../lib" DynaLoader_pm.PL DynaLoader.pm
> >../../miniperl "-I../../lib" "-I../../lib" XSLoader_pm.PL XSLoader.pm
> >cp XSLoader.pm ../../lib/XSLoader.pm
> >cp DynaLoader.pm ../../lib/DynaLoader.pm
> >AutoSplitting ../../lib/DynaLoader.pm (../../lib/auto/DynaLoader)
> >rm -f DynaLoader.xs
> >cp dl_dlopen.xs DynaLoader.xs
> >../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp
> >-noprototypes -typemap ../../lib/ExtUtils/typemap DynaLoader.xs>
> >DynaLoader.xsc&&  mv DynaLoader.xsc DynaLoader.c
> >gcc  -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe
> >-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE
> >-D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.10\" -DXS_VERSION=\"1.10\"
> >-fPIC "-I../.."  -DLIBC="/lib/libc-2.12.1.so" DynaLoader.c
> >rm -rf ../../DynaLoader.o
> >cp DynaLoader.o ../../DynaLoader.o
> >make[1]: Leaving directory
> >`/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1/ext/DynaLoader'
> >rm -f libperl.so
> >gcc  -o libperl.so -shared -O2
> >-L/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib
> >-L/usr/local/lib -fstack-protector op.o perl.o   gv.o toke.o perly.o
> >pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o
> >pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o
> >utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o
> >numeric.o mathoms.o locale.o pp_pack.o pp_sort.o   DynaLoader.o -lnsl
> >-ldl -lm -lcrypt -lutil -lpthread -lc
> >LD_LIBRARY_PATH=/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1
> >gcc  -o perl
> >-L/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib
> >-Wl,-rpath-link,/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib
> >-Wl,-rpath,/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib
> >-Wl,-O1 -fstack-protector -L/usr/local/lib -Wl,-E
> >-Wl,-rpath,/home/janp/src/openembedded/build/tmp/sysroots/x86_64-linux/usr/lib/perl/5.10.1/CORE
> >perlmain.o  libperl.so `cat ext.libs` -lnsl -ldl -lm -lcrypt -lutil
> >-lpthread -lc
> >LD_LIBRARY_PATH=/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1
> >./miniperl -Ilib mkppport
> >running
> >/home/janp/src/openembedded/build/tmp/work/x86_64-linux/perl-native-5.10.1-r10/perl-5.10.1/miniperl
> >-I../../lib PPPort_pm.PL
> >
> >
> >
> >
> >_______________________________________________
> >Openembedded-devel mailing list
> >Openembedded-devel at lists.openembedded.org
> >http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> 
> 
> -- 
> Tom Rini
> Mentor Graphics Corporation
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

-- 
-Khem




More information about the Openembedded-devel mailing list