diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2006-09-25 08:53:24 +0000 |
---|---|---|
committer | Jamie Lenehan <lenehan@twibble.org> | 2006-09-25 08:53:24 +0000 |
commit | 24f8add82d160dc484dbdf00e58044c3890246a5 (patch) | |
tree | 2c5a98d08a2083f6b87a215ee5ba452ecf87b873 /packages/perl/perl_5.8.7.bb | |
parent | aa36784ca33f26e61215d5dc6cba5acd5515b0d8 (diff) |
perl 5.8.7: Fix the perl shared library generation for sh3/sh4
targets:
- You cannot link using LD on sh3/sh4, since ld fails to link in the
hidden library of weak symbols that is needed. Ccc knows about this
library and correctly links it in. The generate_config_sh script
was replacing the configred linker with LD from the environment and
the soname patch was passing parameters directly to LD which need
to be passed differently when linking with gcc.
- Any code to go in shared libraries must be compiled with -fPIC,
which while present in the config file was again being replaced
from the environment by the generate_config_sh script.
Both these patches probably should be ok for all targets, but they
would definately need run-time testing. So they are just patched in
for sh3 and sh4 for now.
Also removed the old code I added not to install the shared library
if its not configured since its configured for all targets after this
change.
Diffstat (limited to 'packages/perl/perl_5.8.7.bb')
-rw-r--r-- | packages/perl/perl_5.8.7.bb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/perl/perl_5.8.7.bb b/packages/perl/perl_5.8.7.bb index b3cfd1a3bb..834be8fcc9 100644 --- a/packages/perl/perl_5.8.7.bb +++ b/packages/perl/perl_5.8.7.bb @@ -10,9 +10,16 @@ SRC_URI += "file://config.sh-armeb-linux \ file://config.sh-sh3-linux \ file://config.sh-sh4-linux" +# Patches for sh3/sh4, use gcc to link and override generaet.sh to +# use PIC mode for compiling shared library objects. +SRC_URI_append_sh4 += "file://override-generate-sh.patch;patch=1" +SRC_URI_append_sh4 += "file://makefile-usegcc-to-link.patch;patch=1" +SRC_URI_append_sh3 += "file://override-generate-sh.patch;patch=1" +SRC_URI_append_sh3 += "file://makefile-usegcc-to-link.patch;patch=1" + PARALLEL_MAKE = "" -PR = "r17" +PR = "r18" do_configure() { ln -sf ${HOSTPERL} ${STAGING_BINDIR}/hostperl @@ -57,9 +64,7 @@ do_configure() { } do_install_append() { - # Make sure the shared library is configured before trying to symlink it - grep -q "useshrplib='false'" ${S}/config.sh || - ln -s libperl.so.${PV} ${D}/${libdir}/libperl.so.5 + ln -s libperl.so.${PV} ${D}/${libdir}/libperl.so.5 sed -i -e "s,${D},,g" ${D}/${libdir}/perl5/${PV}/${TARGET_ARCH}-${TARGET_OS}/Config_heavy.pl } |