All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.