Patchwork [3/3] x86 tune inc files: add x32 abi tune parameters

login
register
mail settings
Submitter Nitin A Kamble
Date Aug. 5, 2011, 5:42 p.m.
Message ID <d6226c2a156d6c9d53237f98385e252c34a1e74d.1312565996.git.nitin.a.kamble@intel.com>
Download mbox | patch
Permalink /patch/9411/
State New, archived
Headers show

Comments

Nitin A Kamble - Aug. 5, 2011, 5:42 p.m.
From: Nitin A Kamble <nitin.a.kamble@intel.com>

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
---
 meta/conf/machine/include/ia32/arch-ia32.inc |   19 +++++++++++++++++--
 meta/conf/machine/include/tune-core2.inc     |    4 ++++
 meta/conf/machine/include/tune-x86_64.inc    |    2 +-
 3 files changed, 22 insertions(+), 3 deletions(-)
Lianhao Lu - Aug. 10, 2011, 2:28 a.m.
nitin.a.kamble@intel.com wrote on 2011-08-06:
> From: Nitin A Kamble <nitin.a.kamble@intel.com>
> 
> Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> ---
>  meta/conf/machine/include/ia32/arch-ia32.inc |   19 +++++++++++++++++--
>  meta/conf/machine/include/tune-core2.inc     |    4 ++++
>  meta/conf/machine/include/tune-x86_64.inc    |    2 +-
>  3 files changed, 22 insertions(+), 3 deletions(-)
> diff --git a/meta/conf/machine/include/ia32/arch-ia32.inc
> b/meta/conf/machine/include/ia32/arch-ia32.inc index 2709440..96980d2
> 100644 --- a/meta/conf/machine/include/ia32/arch-ia32.inc +++
> b/meta/conf/machine/include/ia32/arch-ia32.inc @@ -9,13 +9,22 @@
> X86ARCH64 ?= "x86_64"
> 
>  # ELF32 ABI
>  TUNEVALID[m32] = "IA32 ELF32 standard ABI"
> -TUNECONFLICTS[m32] = "m64"
> +TUNECONFLICTS[m32] = "m64 mx32"
>  TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32",
>  "${X86ARCH32}", "" ,d)}" TUNE_CCARGS +=
>  "${@bb.utils.contains("TUNE_FEATURES", "m32", "-m32",
> "", d)}"
> 
> +# x32 ABI
> +TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI"
> +TUNECONFLICTS[mx32] = "m64 m32"
> +TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "mx32",
> "${X86ARCH64}", "" ,d)}"
> +ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "x32",
> "" ,d)}"
> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32",
> "-mx32", "", d)}"
> +TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m
> elf32_x86_64", "", d)}"
> +TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32",
> "", d)}"
> +
>  # ELF64 ABI
>  TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI"
> -TUNECONFLICT[m64] = "m32"
> +TUNECONFLICT[m64] = "m32 mx32"
>  TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m64",
>  "${X86ARCH64}", "" ,d)}" TUNE_CCARGS +=
>  "${@bb.utils.contains("TUNE_FEATURES", "m64", "-m64",
> "", d)}"
> 
> @@ -31,3 +40,9 @@ AVAILTUNES += "x86-64"
>  TUNE_FEATURES_tune-x86-64 ?= "m64"
>  BASE_LIB_tune-x86-64 ?= "lib64"
>  PACKAGE_EXTRA_ARCHS_tune-x86-64 = "x86_64"
> + +AVAILTUNES += "x86-64-x32" +TUNE_FEATURES_tune-x86-64-x32 ?= "mx32"
> +BASE_LIB_tune-x86-64-x32 ?= "lib" +PACKAGE_EXTRA_ARCHS_tune-x86-64-x32
> = "x86_64-x32" +TUNE_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES",
> "mx32", +"-x32", "", d)}" diff --git
> a/meta/conf/machine/include/tune-core2.inc
> b/meta/conf/machine/include/tune-core2.inc index 25c2226..78f8f4d 100644
> --- a/meta/conf/machine/include/tune-core2.inc +++
> b/meta/conf/machine/include/tune-core2.inc @@ -18,3 +18,7 @@
> TUNE_FEATURES_tune-core2-64 ?= "${TUNE_FEATURES_tune-x86-64} core2"
>  BASE_LIB_tune-core2-64 ?= "lib64"
>  PACKAGE_EXTRA_ARCHS_tune-core2-64 =
> "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64"
> 
> +AVAILTUNES += "core2-64-x32" +TUNE_FEATURES_tune-core2-64-x32 ?=
> "${TUNE_FEATURES_tune-x86-64-x32} core2" +BASE_LIB_tune-core2-64-x32 ?=
> "lib" +PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 =
> "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32" diff --git
> a/meta/conf/machine/include/tune-x86_64.inc
> b/meta/conf/machine/include/tune-x86_64.inc index 04b0f96..50f20ba
> 100644 --- a/meta/conf/machine/include/tune-x86_64.inc +++
> b/meta/conf/machine/include/tune-x86_64.inc @@ -1,3 +1,3 @@
>  require conf/machine/include/ia32/arch-ia32.inc
> -DEFAULTTUNE = "x86-64"
> +DEFAULTTUNE ?= "x86-64"

Well, it seems this "?=" has no effect here because DEFAULTTUNE is already "?="ed in arch-ia32.inc. Now machine qemux86-64 has the incorrect TUNE_ARCH of i586.

Best Regards,
-Lianhao
Richard Purdie - Aug. 10, 2011, 12:16 p.m.
On Wed, 2011-08-10 at 10:28 +0800, Lu, Lianhao wrote:
> nitin.a.kamble@intel.com wrote on 2011-08-06:
> > From: Nitin A Kamble <nitin.a.kamble@intel.com>
> > 
> > Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
> > ---
> >  meta/conf/machine/include/ia32/arch-ia32.inc |   19 +++++++++++++++++--
> >  meta/conf/machine/include/tune-core2.inc     |    4 ++++
> >  meta/conf/machine/include/tune-x86_64.inc    |    2 +-
> >  3 files changed, 22 insertions(+), 3 deletions(-)
> > diff --git a/meta/conf/machine/include/ia32/arch-ia32.inc
> > b/meta/conf/machine/include/ia32/arch-ia32.inc index 2709440..96980d2
> > 100644 --- a/meta/conf/machine/include/ia32/arch-ia32.inc +++
> > b/meta/conf/machine/include/ia32/arch-ia32.inc @@ -9,13 +9,22 @@
> > X86ARCH64 ?= "x86_64"
> > 
> >  # ELF32 ABI
> >  TUNEVALID[m32] = "IA32 ELF32 standard ABI"
> > -TUNECONFLICTS[m32] = "m64"
> > +TUNECONFLICTS[m32] = "m64 mx32"
> >  TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32",
> >  "${X86ARCH32}", "" ,d)}" TUNE_CCARGS +=
> >  "${@bb.utils.contains("TUNE_FEATURES", "m32", "-m32",
> > "", d)}"
> > 
> > +# x32 ABI
> > +TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI"
> > +TUNECONFLICTS[mx32] = "m64 m32"
> > +TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "mx32",
> > "${X86ARCH64}", "" ,d)}"
> > +ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "x32",
> > "" ,d)}"
> > +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32",
> > "-mx32", "", d)}"
> > +TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m
> > elf32_x86_64", "", d)}"
> > +TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32",
> > "", d)}"
> > +
> >  # ELF64 ABI
> >  TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI"
> > -TUNECONFLICT[m64] = "m32"
> > +TUNECONFLICT[m64] = "m32 mx32"
> >  TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m64",
> >  "${X86ARCH64}", "" ,d)}" TUNE_CCARGS +=
> >  "${@bb.utils.contains("TUNE_FEATURES", "m64", "-m64",
> > "", d)}"
> > 
> > @@ -31,3 +40,9 @@ AVAILTUNES += "x86-64"
> >  TUNE_FEATURES_tune-x86-64 ?= "m64"
> >  BASE_LIB_tune-x86-64 ?= "lib64"
> >  PACKAGE_EXTRA_ARCHS_tune-x86-64 = "x86_64"
> > + +AVAILTUNES += "x86-64-x32" +TUNE_FEATURES_tune-x86-64-x32 ?= "mx32"
> > +BASE_LIB_tune-x86-64-x32 ?= "lib" +PACKAGE_EXTRA_ARCHS_tune-x86-64-x32
> > = "x86_64-x32" +TUNE_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES",
> > "mx32", +"-x32", "", d)}" diff --git
> > a/meta/conf/machine/include/tune-core2.inc
> > b/meta/conf/machine/include/tune-core2.inc index 25c2226..78f8f4d 100644
> > --- a/meta/conf/machine/include/tune-core2.inc +++
> > b/meta/conf/machine/include/tune-core2.inc @@ -18,3 +18,7 @@
> > TUNE_FEATURES_tune-core2-64 ?= "${TUNE_FEATURES_tune-x86-64} core2"
> >  BASE_LIB_tune-core2-64 ?= "lib64"
> >  PACKAGE_EXTRA_ARCHS_tune-core2-64 =
> > "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64"
> > 
> > +AVAILTUNES += "core2-64-x32" +TUNE_FEATURES_tune-core2-64-x32 ?=
> > "${TUNE_FEATURES_tune-x86-64-x32} core2" +BASE_LIB_tune-core2-64-x32 ?=
> > "lib" +PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 =
> > "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32" diff --git
> > a/meta/conf/machine/include/tune-x86_64.inc
> > b/meta/conf/machine/include/tune-x86_64.inc index 04b0f96..50f20ba
> > 100644 --- a/meta/conf/machine/include/tune-x86_64.inc +++
> > b/meta/conf/machine/include/tune-x86_64.inc @@ -1,3 +1,3 @@
> >  require conf/machine/include/ia32/arch-ia32.inc
> > -DEFAULTTUNE = "x86-64"
> > +DEFAULTTUNE ?= "x86-64"
> 
> Well, it seems this "?=" has no effect here because DEFAULTTUNE is already "?="ed in arch-ia32.inc. Now machine qemux86-64 has the incorrect TUNE_ARCH of i586.

Good catch, it should be *before* the require too (like many of the
other similar files). I'll fix this.

Cheers,

Richard

Patch

diff --git a/meta/conf/machine/include/ia32/arch-ia32.inc b/meta/conf/machine/include/ia32/arch-ia32.inc
index 2709440..96980d2 100644
--- a/meta/conf/machine/include/ia32/arch-ia32.inc
+++ b/meta/conf/machine/include/ia32/arch-ia32.inc
@@ -9,13 +9,22 @@  X86ARCH64 ?= "x86_64"
 
 # ELF32 ABI
 TUNEVALID[m32] = "IA32 ELF32 standard ABI"
-TUNECONFLICTS[m32] = "m64"
+TUNECONFLICTS[m32] = "m64 mx32"
 TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32", "${X86ARCH32}", "" ,d)}"
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "m32", "-m32", "", d)}"
 
+# x32 ABI
+TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI"
+TUNECONFLICTS[mx32] = "m64 m32"
+TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "${X86ARCH64}", "" ,d)}"
+ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "x32", "" ,d)}"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-mx32", "", d)}"
+TUNE_LDARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-m elf32_x86_64", "", d)}"
+TUNE_ASARGS += "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
+
 # ELF64 ABI
 TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI"
-TUNECONFLICT[m64] = "m32"
+TUNECONFLICT[m64] = "m32 mx32"
 TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m64", "${X86ARCH64}", "" ,d)}"
 TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "m64", "-m64", "", d)}"
 
@@ -31,3 +40,9 @@  AVAILTUNES += "x86-64"
 TUNE_FEATURES_tune-x86-64 ?= "m64"
 BASE_LIB_tune-x86-64 ?= "lib64"
 PACKAGE_EXTRA_ARCHS_tune-x86-64 = "x86_64"
+
+AVAILTUNES += "x86-64-x32"
+TUNE_FEATURES_tune-x86-64-x32 ?= "mx32"
+BASE_LIB_tune-x86-64-x32 ?= "lib"
+PACKAGE_EXTRA_ARCHS_tune-x86-64-x32 = "x86_64-x32"
+TUNE_PKGARCH .= "${@bb.utils.contains("TUNE_FEATURES", "mx32", "-x32", "", d)}"
diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
index 25c2226..78f8f4d 100644
--- a/meta/conf/machine/include/tune-core2.inc
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -18,3 +18,7 @@  TUNE_FEATURES_tune-core2-64 ?= "${TUNE_FEATURES_tune-x86-64} core2"
 BASE_LIB_tune-core2-64 ?= "lib64"
 PACKAGE_EXTRA_ARCHS_tune-core2-64 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64"
 
+AVAILTUNES += "core2-64-x32"
+TUNE_FEATURES_tune-core2-64-x32 ?= "${TUNE_FEATURES_tune-x86-64-x32} core2"
+BASE_LIB_tune-core2-64-x32 ?= "lib"
+PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32"
diff --git a/meta/conf/machine/include/tune-x86_64.inc b/meta/conf/machine/include/tune-x86_64.inc
index 04b0f96..50f20ba 100644
--- a/meta/conf/machine/include/tune-x86_64.inc
+++ b/meta/conf/machine/include/tune-x86_64.inc
@@ -1,3 +1,3 @@ 
 require conf/machine/include/ia32/arch-ia32.inc
 
-DEFAULTTUNE = "x86-64"
+DEFAULTTUNE ?= "x86-64"