From: Tom Rini <tom_rini@mentor.com>
To: <openembedded-devel@lists.openembedded.org>
Subject: Re: perl-native_5.10.1 fails
Date: Sat, 19 Mar 2011 07:01:10 -0700 [thread overview]
Message-ID: <4D84B726.5060302@mentor.com> (raw)
In-Reply-To: <4D814E28.6080701@gmail.com>
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
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Tom Rini
Mentor Graphics Corporation
next prev parent reply other threads:[~2011-03-19 14:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-16 20:49 perl-native_5.10.1 fails Jan Paesmans
2011-03-16 22:01 ` Tom Rini
2011-03-16 23:56 ` Jan Paesmans
2011-03-19 14:01 ` Tom Rini [this message]
2011-03-19 18:44 ` Khem Raj
2011-03-22 19:36 ` Jan Paesmans
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D84B726.5060302@mentor.com \
--to=tom_rini@mentor.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox