Patchwork [1/2] gcc-cross-intermediate: fix do_install for x32

login
register
mail settings
Submitter Nitin A Kamble
Date April 3, 2012, 10:57 p.m.
Message ID <3c9f0f3047f80b6290ea2ceb4fcecdb7b286c1d5.1333493785.git.nitin.a.kamble@intel.com>
Download mbox | patch
Permalink /patch/25129/
State New
Headers show

Comments

Nitin A Kamble - April 3, 2012, 10:57 p.m.
From: Nitin A Kamble <nitin.a.kamble@intel.com>

This Fixes [Ycoto #2223] bug.

The gcc osdir is obtained in the do_install by invocation of
command "gcc -print-multi-os-directory". For x32 it returns gcc
osdir for the default abi which is x86_64. Fix this by adding
target abi parameter to the gcc command line to get correct gcc
osdir with invocation of command "gcc -mx32 -print-multi-os-directory"

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
---
 .../gcc/gcc-cross-intermediate.inc                 |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Nitin A Kamble - April 3, 2012, 11:01 p.m.
> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org
> [mailto:openembedded-core-bounces@lists.openembedded.org] On Behalf Of
> nitin.a.kamble@intel.com
> Sent: Tuesday, April 03, 2012 3:58 PM
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH 1/2] gcc-cross-intermediate: fix do_install
> for x32
> 
> From: Nitin A Kamble <nitin.a.kamble@intel.com>
> 
> This Fixes [Ycoto #2223] bug.
> 
> The gcc osdir is obtained in the do_install by invocation of command
> "gcc -print-multi-os-directory". For x32 it returns gcc osdir for the
> default abi which is x86_64. Fix this by adding target abi parameter to
> the gcc command line to get correct gcc osdir with invocation of
> command "gcc -mx32 -print-multi-os-directory"
> 
> Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> ---
>  .../gcc/gcc-cross-intermediate.inc                 |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> index 316a764..1995725 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> @@ -35,9 +35,10 @@ do_compile () {
>  }
> 
>  do_install () {
> +	set -x

I have removed this debug line from the commit on the contrib branch.
Nitin


>  	oe_runmake 'DESTDIR=${D}' install
>  	install -d ${D}${target_base_libdir}/
> -	osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc
> -print-multi-os-directory`
> +	osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc
> +${TARGET_CC_ARCH} -print-multi-os-directory`
>  	mv ${D}${exec_prefix}/${TARGET_SYS}/lib/$osdir/*
> ${D}${target_base_libdir}/
> 
>  	# We don't really need this (here shares/ contains man/, info/,
> locale/).
> --
> 1.7.7.6
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Khem Raj - April 7, 2012, 6:05 a.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/03/2012 04:01 PM, Kamble, Nitin A wrote:
> 
> 
>> -----Original Message----- From:
>> openembedded-core-bounces@lists.openembedded.org 
>> [mailto:openembedded-core-bounces@lists.openembedded.org] On
>> Behalf Of nitin.a.kamble@intel.com Sent: Tuesday, April 03, 2012
>> 3:58 PM To: openembedded-core@lists.openembedded.org Subject:
>> [OE-core] [PATCH 1/2] gcc-cross-intermediate: fix do_install for
>> x32
>> 
>> From: Nitin A Kamble <nitin.a.kamble@intel.com>
>> 
>> This Fixes [Ycoto #2223] bug.
>> 
>> The gcc osdir is obtained in the do_install by invocation of
>> command "gcc -print-multi-os-directory". For x32 it returns gcc
>> osdir for the default abi which is x86_64. Fix this by adding
>> target abi parameter to the gcc command line to get correct gcc
>> osdir with invocation of command "gcc -mx32
>> -print-multi-os-directory"


how does it do on ppc64 multilib ?

>> 
>> Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> --- 
>> .../gcc/gcc-cross-intermediate.inc                 |    3 ++- 1
>> files changed, 2 insertions(+), 1 deletions(-)
>> 
>> diff --git
>> a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc 
>> b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc index
>> 316a764..1995725 100644 ---
>> a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc +++
>> b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc @@ -35,9
>> +35,10 @@ do_compile () { }
>> 
>> do_install () { +	set -x
> 
> I have removed this debug line from the commit on the contrib
> branch. Nitin
> 
> 
>> oe_runmake 'DESTDIR=${D}' install install -d
>> ${D}${target_base_libdir}/ -
>> osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc 
>> -print-multi-os-directory` +
>> osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc 
>> +${TARGET_CC_ARCH} -print-multi-os-directory` mv
>> ${D}${exec_prefix}/${TARGET_SYS}/lib/$osdir/* 
>> ${D}${target_base_libdir}/
>> 
>> # We don't really need this (here shares/ contains man/, info/, 
>> locale/). -- 1.7.7.6
>> 
>> 
>> _______________________________________________ Openembedded-core
>> mailing list Openembedded-core@lists.openembedded.org 
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>> 
> _______________________________________________ Openembedded-core
> mailing list Openembedded-core@lists.openembedded.org 
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk9/2UUACgkQuwUzVZGdMxRRvwCeN8ulkeVxnXLliRUElg8anFfq
7aMAn0WU8GI58qHMxJxTjXOuQr4p5bPE
=A/xt
-----END PGP SIGNATURE-----

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
index 316a764..1995725 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
@@ -35,9 +35,10 @@  do_compile () {
 }
 
 do_install () {
+	set -x
 	oe_runmake 'DESTDIR=${D}' install
 	install -d ${D}${target_base_libdir}/
-	osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc -print-multi-os-directory`
+	osdir=`${D}${STAGING_BINDIR_TOOLCHAIN}.${PN}/${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} -print-multi-os-directory`
 	mv ${D}${exec_prefix}/${TARGET_SYS}/lib/$osdir/* ${D}${target_base_libdir}/
 
 	# We don't really need this (here shares/ contains man/, info/, locale/).