Patchwork [v8,02/11] perl: new package

login
register
mail settings
Submitter Thomas Petazzoni
Date Oct. 4, 2012, 9:18 p.m.
Message ID <20121004231833.7c4f3cb5@skate>
Download mbox | patch
Permalink /patch/189326/
State Superseded
Headers show

Comments

Thomas Petazzoni - Oct. 4, 2012, 9:18 p.m.
François,

On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:

> +		-Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \

You should also apply the following patch:


Otherwise, the build fails with:

/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc -l gcc_s -fstack-protector -o miniperl \
            perlmini.o opmini.o miniperlmain.o  malloc.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.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 globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o   
pp.o: In function `Perl_pp_pow':
pp.c:(.text+0x1b24): undefined reference to `pow'
pp.o: In function `Perl_pp_modulo':
pp.c:(.text+0x1f92): undefined reference to `floor'
pp.c:(.text+0x1fa0): undefined reference to `floor'
pp.c:(.text+0x1fbc): undefined reference to `fmod'
[...]

with certain toolchains.

Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
files. One is a hardlink to the other, but it is always a bit
disturbing to see two big files of the same size. Shouldn't we replace
that by a symlink instead, which is more obvious?

Thanks!

Thomas
Francois Perrad - Oct. 6, 2012, 1:33 p.m.
2012/10/4 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
> François,
>
> On Tue, 25 Sep 2012 19:18:18 +0200, Francois Perrad wrote:
>
>> +             -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
>
> You should also apply the following patch:
>
> diff --git a/package/perl/perl.mk b/package/perl/perl.mk
> index fbe7ba9..4e6f50b 100644
> --- a/package/perl/perl.mk
> +++ b/package/perl/perl.mk
> @@ -52,7 +52,7 @@ define PERL_CONFIGURE_CMDS
>                 -Dnm="$(TARGET_NM)" \
>                 -Dranlib="$(TARGET_RANLIB)" \
>                 -Dccflags="$(TARGET_CFLAGS)" \
> -               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
> +               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s -lm" \
>                 -Dlddlflags="-shared" \
>                 -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
>                 -Duseshrplib \
>

Ok, fixed.

> Otherwise, the build fails with:
>
> /home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc -l gcc_s -fstack-protector -o miniperl \
>             perlmini.o opmini.o miniperlmain.o  malloc.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.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 globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o
> pp.o: In function `Perl_pp_pow':
> pp.c:(.text+0x1b24): undefined reference to `pow'
> pp.o: In function `Perl_pp_modulo':
> pp.c:(.text+0x1f92): undefined reference to `floor'
> pp.c:(.text+0x1fa0): undefined reference to `floor'
> pp.c:(.text+0x1fbc): undefined reference to `fmod'
> [...]
>
> with certain toolchains.
>
> Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
> files. One is a hardlink to the other, but it is always a bit
> disturbing to see two big files of the same size. Shouldn't we replace
> that by a symlink instead, which is more obvious?

libperl.so  1.2 MB
perl      4 KB (stripped)
perl5.16.1   4 KB
We speak about 4KB !

>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni - Oct. 6, 2012, 5:18 p.m.
On Sat, 6 Oct 2012 15:33:02 +0200, François Perrad wrote:

> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
> > files. One is a hardlink to the other, but it is always a bit
> > disturbing to see two big files of the same size. Shouldn't we
> > replace that by a symlink instead, which is more obvious?
> 
> libperl.so  1.2 MB
> perl      4 KB (stripped)
> perl5.16.1   4 KB
> We speak about 4KB !

Here:

$ ls -l output/target/usr/bin/perl*
-rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
-rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
-rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
-rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
-rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
-rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks

So it's not exactly 4 KB :)

Thomas
Francois Perrad - Oct. 6, 2012, 7:37 p.m.
2012/10/6 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>
> On Sat, 6 Oct 2012 15:33:02 +0200, François Perrad wrote:
>
>> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
>> > files. One is a hardlink to the other, but it is always a bit
>> > disturbing to see two big files of the same size. Shouldn't we
>> > replace that by a symlink instead, which is more obvious?
>>
>> libperl.so  1.2 MB
>> perl      4 KB (stripped)
>> perl5.16.1   4 KB
>> We speak about 4KB !
>
> Here:
>
> $ ls -l output/target/usr/bin/perl*
> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
> -rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
> -rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks
>
> So it's not exactly 4 KB :)
>

do you have a shared library libperl.so, in
output/target/usr/lib/perl5/5.16.1/-your-arch-/CORE/libperl.so ?
or in output/build/perl-5.16.1/libperl.so ?

looks like a static linked build
the use of shared lib is forced at configure time by the option : -Duseshrplib

I need to see the ouput of :
on your target :
     # perl -V
or on your host :
     $ output/host/usr/bin/qemu-your-arch output/build/perl-5.16.1/perl -Ilib -V

François

> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com
Francois Perrad - Oct. 8, 2012, 4:57 p.m.
2012/10/6 François Perrad <francois.perrad@gadz.org>:
> 2012/10/6 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>:
>>
>> On Sat, 6 Oct 2012 15:33:02 +0200, François Perrad wrote:
>>
>>> > Also, on the target there is a usr/bin/perl and a usr/bin/perl5.x.y
>>> > files. One is a hardlink to the other, but it is always a bit
>>> > disturbing to see two big files of the same size. Shouldn't we
>>> > replace that by a symlink instead, which is more obvious?
>>>
>>> libperl.so  1.2 MB
>>> perl      4 KB (stripped)
>>> perl5.16.1   4 KB
>>> We speak about 4KB !
>>
>> Here:
>>
>> $ ls -l output/target/usr/bin/perl*
>> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl
>> -rwxr-xr-x 2 thomas thomas 4558484 oct.   4 23:12 output/target/usr/bin/perl5.16.1
>> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlbug
>> -rwxr-xr-x 1 thomas thomas     224 oct.   4 22:59 output/target/usr/bin/perldoc
>> -rwxr-xr-x 1 thomas thomas   10766 oct.   4 22:59 output/target/usr/bin/perlivp
>> -rwxr-xr-x 2 thomas thomas   41693 oct.   4 22:59 output/target/usr/bin/perlthanks
>>
>> So it's not exactly 4 KB :)
>>

ping.
do you still have this problem ?

>
> do you have a shared library libperl.so, in
> output/target/usr/lib/perl5/5.16.1/-your-arch-/CORE/libperl.so ?
> or in output/build/perl-5.16.1/libperl.so ?
>
> looks like a static linked build
> the use of shared lib is forced at configure time by the option : -Duseshrplib
>
> I need to see the ouput of :
> on your target :
>      # perl -V
> or on your host :
>      $ output/host/usr/bin/qemu-your-arch output/build/perl-5.16.1/perl -Ilib -V
>
> François
>
>> Thomas
>> --
>> Thomas Petazzoni, Free Electrons
>> Kernel, drivers, real-time and embedded Linux
>> development, consulting, training and support.
>> http://free-electrons.com

Patch

diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index fbe7ba9..4e6f50b 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -52,7 +52,7 @@  define PERL_CONFIGURE_CMDS
                -Dnm="$(TARGET_NM)" \
                -Dranlib="$(TARGET_RANLIB)" \
                -Dccflags="$(TARGET_CFLAGS)" \
-               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s" \
+               -Dldflags="$(TARGET_LDFLAGS) -l gcc_s -lm" \
                -Dlddlflags="-shared" \
                -Dlibc=$(TARGET_HOST)/usr/$(GNU_TARGET_NAME)/sysroot/lib/libc.so \
                -Duseshrplib \