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}"'
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
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Tom Rini
Mentor Graphics Corporation
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel