From 266861d7124495d10951a8a0542ab8b88bf8847a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 30 Aug 2012 16:36:24 -0700 Subject: [PATCH] perl: Fix various nativesdk build issues The config.sh lists -fstack-protector but this isn't in LDFLAGS. This can result in perl compilation failures due to the mismatch. Adding the flag to LDFLAGS solves makes all the flags consistent and avoids build failures from missing symbols. It was also found that the path substitutions made by the sed statement can conflict with each other and you can end up with $prefix$prefix type expressions in config.sh-X which can break the build in unusual ways. This patch anchors the expressions to ensure only true matches are replaced. (From OE-Core rev: 38234f2e276356b1d77a87ceabc486107e336d19) Signed-off-by: Richard Purdie --- meta/recipes-devtools/perl/perl_5.14.2.bb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/meta/recipes-devtools/perl/perl_5.14.2.bb b/meta/recipes-devtools/perl/perl_5.14.2.bb index 9db3805..3c1360f 100644 --- a/meta/recipes-devtools/perl/perl_5.14.2.bb +++ b/meta/recipes-devtools/perl/perl_5.14.2.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ # We need gnugrep (for -I) DEPENDS = "virtual/db grep-native" DEPENDS += "gdbm zlib" -PR = "r8" +PR = "r9" # 5.10.1 has Module::Build built-in PROVIDES += "libmodule-build-perl" @@ -90,6 +90,8 @@ export PERLHOSTLIB = "${STAGING_LIBDIR_NATIVE}/perl-native/perl/${PV}/" # LDFLAGS for shared libraries export LDDLFLAGS = "${LDFLAGS} -shared" +LDFLAGS_append = " -fstack-protector" + # We're almost Debian, aren't we? CFLAGS += "-DDEBIAN" @@ -148,10 +150,10 @@ do_configure() { -e 's,@ARCH@-thread-multi,,g' \ -e 's,@ARCH@,${TARGET_ARCH}-${TARGET_OS},g' \ -e 's,@STAGINGDIR@,${STAGING_DIR_HOST},g' \ - -e "s%/usr/include%${STAGING_INCDIR}%g" \ - -e 's,/usr/lib/,${libdir}/,g' \ - -e 's,/usr/,${exec_prefix}/,g' \ - -e 's,/perl5,/perl,g' \ + -e "s%\([ \"^\',=]\+\)/usr/include%\1${STAGING_INCDIR}%g" \ + -e "s%\([ \"^\',=]\+\)/usr/lib/%\1${libdir}/%g" \ + -e "s%\([ \"^\',=]\+\)/usr/%\1${exec_prefix}/%g" \ + -e "s%/perl5%/perl%g" \ config.sh-${TARGET_ARCH}-${TARGET_OS} case "${TARGET_ARCH}" in -- 2.7.4