distutils.bbclass: override LDSHARED so we use the linker for this build and not the one used in sstate-cache

Submitted by Matthew McClintock on Feb. 8, 2012, 9:06 p.m.

Details

Message ID 1328735214-1899-1-git-send-email-msm@freescale.com
State Accepted
Commit 3f6b859a29ba7f570b9dae3b5bb7ab4bd7b8cee4
Headers show

Commit Message

Matthew McClintock Feb. 8, 2012, 9:06 p.m.
Without this fix, when packages are being built using distutils and
the python packages were deployed from sstate-cache is it possible
that the LD command will contain an invalid sysroot override.

We can fix this by always exported LDSHARED, which is the env var
that distutil looks for to override creating shared libraries.

Signed-off-by: Matthew McClintock <msm@freescale.com>
---
 meta/classes/distutils.bbclass |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
index 79b962a..18ae805 100644
--- a/meta/classes/distutils.bbclass
+++ b/meta/classes/distutils.bbclass
@@ -72,3 +72,5 @@  distutils_do_install() {
 }
 
 EXPORT_FUNCTIONS do_compile do_install
+
+export LDSHARED="${CCLD} -shared"

Comments

Joshua Lock Feb. 10, 2012, 7:20 a.m.
On 08/02/12 13:06, Matthew McClintock wrote:
> Without this fix, when packages are being built using distutils and
> the python packages were deployed from sstate-cache is it possible
> that the LD command will contain an invalid sysroot override.
>
> We can fix this by always exported LDSHARED, which is the env var
> that distutil looks for to override creating shared libraries.

This patch appears to fix [YOCTO #1948] when applied to my Edison branch.

http://bugzilla.pokylinux.org/show_bug.cgi?id=1948

> Signed-off-by: Matthew McClintock<msm@freescale.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>

> ---
>   meta/classes/distutils.bbclass |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
> index 79b962a..18ae805 100644
> --- a/meta/classes/distutils.bbclass
> +++ b/meta/classes/distutils.bbclass
> @@ -72,3 +72,5 @@ distutils_do_install() {
>   }
>
>   EXPORT_FUNCTIONS do_compile do_install
> +
> +export LDSHARED="${CCLD} -shared"
Saul Wold Feb. 10, 2012, 3:58 p.m.
On 02/08/2012 01:06 PM, Matthew McClintock wrote:
> Without this fix, when packages are being built using distutils and
> the python packages were deployed from sstate-cache is it possible
> that the LD command will contain an invalid sysroot override.
>
> We can fix this by always exported LDSHARED, which is the env var
> that distutil looks for to override creating shared libraries.
>
> Signed-off-by: Matthew McClintock<msm@freescale.com>
> ---
>   meta/classes/distutils.bbclass |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/meta/classes/distutils.bbclass b/meta/classes/distutils.bbclass
> index 79b962a..18ae805 100644
> --- a/meta/classes/distutils.bbclass
> +++ b/meta/classes/distutils.bbclass
> @@ -72,3 +72,5 @@ distutils_do_install() {
>   }
>
>   EXPORT_FUNCTIONS do_compile do_install
> +
> +export LDSHARED="${CCLD} -shared"

Merged into OE-core

Thanks
	Sau!