Patchwork perl: Fix various nativesdk build issues

login
register
mail settings
Submitter Richard Purdie
Date Aug. 30, 2012, 11:36 p.m.
Message ID <1346369784.16485.14.camel@ted>
Download mbox | patch
Permalink /patch/35575/
State New
Headers show

Comments

Richard Purdie - Aug. 30, 2012, 11:36 p.m.
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.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
Koen Kooi - Aug. 31, 2012, 8:42 a.m.
Op 31 aug. 2012, om 01:36 heeft Richard Purdie <richard.purdie@linuxfoundation.org> het volgende geschreven:

> 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.
> 
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

I'm not entirely sure, but since this has a potential impact on the build output, shouldn't there be a PR bump?

> ---
> diff --git a/meta/recipes-devtools/perl/perl_5.14.2.bb b/meta/recipes-devtools/perl/perl_5.14.2.bb
> index 9db3805..8e7ab9e 100644
> --- a/meta/recipes-devtools/perl/perl_5.14.2.bb
> +++ b/meta/recipes-devtools/perl/perl_5.14.2.bb
> @@ -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}

Whitespace issue in the first line

Patch

diff --git a/meta/recipes-devtools/perl/perl_5.14.2.bb b/meta/recipes-devtools/perl/perl_5.14.2.bb
index 9db3805..8e7ab9e 100644
--- a/meta/recipes-devtools/perl/perl_5.14.2.bb
+++ b/meta/recipes-devtools/perl/perl_5.14.2.bb
@@ -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