All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch v2] arch-mips: Restructure mips64 and add mips64r2
@ 2016-09-20 10:33 Zubair Lutfullah Kakakhel
  2016-09-20 13:08 ` Mark Hatle
  0 siblings, 1 reply; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2016-09-20 10:33 UTC (permalink / raw)
  To: openembedded-core

The current file structure felt slightly unsuitable for adding
MIPS64r2. So I restructured it slightly and added MIPS64r2
support

Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>

---
V1 -> V2
Fixed a subtle bug in the include files for tune-mips64.inc which
resulted in a build failure for multi-lib configuration.
---
 meta/conf/machine/include/mips/arch-mips.inc | 60 --------------------
 meta/conf/machine/include/tune-mips32.inc    | 22 +++++++-
 meta/conf/machine/include/tune-mips64.inc    | 78 ++++++++++++++++++++++++++
 meta/conf/machine/include/tune-mips64r2.inc  | 84 ++++++++++++++++++++++++++++
 4 files changed, 183 insertions(+), 61 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-mips64r2.inc

diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
index d3e83d1..6be84be 100644
--- a/meta/conf/machine/include/mips/arch-mips.inc
+++ b/meta/conf/machine/include/mips/arch-mips.inc
@@ -42,64 +42,4 @@ MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
 TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
 TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
 
-# Base tunes
-AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
-TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
-BASE_LIB_tune-mips = "lib"
-MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
 
-TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
-BASE_LIB_tune-mips64-n32 = "lib32"
-MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
-
-TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
-BASE_LIB_tune-mips64 = "lib64"
-MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
-
-TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
-BASE_LIB_tune-mipsel = "lib"
-MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
-
-TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
-BASE_LIB_tune-mips64el-n32 = "lib32"
-MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
-
-TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
-BASE_LIB_tune-mips64el = "lib64"
-MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
-
-TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
-BASE_LIB_tune-mips-nf = "lib"
-MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
-
-TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
-BASE_LIB_tune-mips64-nf-n32 = "lib32"
-MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
-
-TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
-BASE_LIB_tune-mips64-nf = "lib64"
-MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
-
-TUNE_FEATURES_tune-mipsel-nf = "o32"
-BASE_LIB_tune-mipsel-nf = "lib"
-MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
-
-TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
-BASE_LIB_tune-mips64el-nf-n32 = "lib32"
-MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
-
-TUNE_FEATURES_tune-mips64el-nf = "n64"
-BASE_LIB_tune-mips64el-nf = "lib64"
-MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
-PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
index ce0445f..4c3d93f 100644
--- a/meta/conf/machine/include/tune-mips32.inc
+++ b/meta/conf/machine/include/tune-mips32.inc
@@ -6,7 +6,27 @@ TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
 TUNECONFLICTS[mips32] = "n64 n32"
 TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}"
 
-AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
+AVAILTUNES += "mips mipsel mips-nf mipsel-nf mips32 mips32el mips32-nf mips32el-nf"
+
+TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
+BASE_LIB_tune-mips = "lib"
+MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
+
+TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
+BASE_LIB_tune-mipsel = "lib"
+MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
+
+TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
+BASE_LIB_tune-mips-nf = "lib"
+MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
+
+TUNE_FEATURES_tune-mipsel-nf = "o32"
+BASE_LIB_tune-mipsel-nf = "lib"
+MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
 
 TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
 MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
index 9be0e0f..06e0ee3 100644
--- a/meta/conf/machine/include/tune-mips64.inc
+++ b/meta/conf/machine/include/tune-mips64.inc
@@ -1,3 +1,81 @@
 DEFAULTTUNE ?= "mips64"
 
 require conf/machine/include/tune-mips32r2.inc
+
+# Base tunes
+AVAILTUNES += "mips64 mips64el"
+
+TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
+BASE_LIB_tune-mips64 = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
+
+TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
+BASE_LIB_tune-mips64el = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
+
+# MIPS 64 Soft Float
+AVAILTUNES += "mips64-nf mips64el-nf"
+
+TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
+BASE_LIB_tune-mips64-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
+
+TUNE_FEATURES_tune-mips64el-nf = "n64"
+BASE_LIB_tune-mips64el-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
+
+# MIPS 64 n32
+AVAILTUNES += "mips64-n32 mips64el-n32"
+
+TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
+BASE_LIB_tune-mips64-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
+
+TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
+BASE_LIB_tune-mips64el-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
+
+# MIPS 64 n32 and Soft Float
+AVAILTUNES += "mips64-nf-n32 mips64el-nf-n32"
+
+TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
+BASE_LIB_tune-mips64-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
+
+TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
+BASE_LIB_tune-mips64el-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
+
+# MIPS 64 o32
+AVAILTUNES += "mips64-o32 mips64el-o32"
+
+TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
+BASE_LIB_tune-mips64-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips64-o32"
+
+TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
+BASE_LIB_tune-mips64el-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mips64el-o32"
+
+# MIPS 64 o32 and Soft Float
+AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
+
+TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
+BASE_LIB_tune-mips64-nf-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips64-nf-o32"
+
+TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
+BASE_LIB_tune-mips64el-nf-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/tune-mips64r2.inc
new file mode 100644
index 0000000..f64983d
--- /dev/null
+++ b/meta/conf/machine/include/tune-mips64r2.inc
@@ -0,0 +1,84 @@
+DEFAULTTUNE ?= "mips64r2"
+
+require conf/machine/include/tune-mips64.inc
+
+TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
+
+# Base tunes
+AVAILTUNES += "mips64r2 mips64r2el"
+
+TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
+BASE_LIB_tune-mips64r2 = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
+
+TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
+BASE_LIB_tune-mips64r2el = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
+
+# MIPS 64r2 Soft Float
+AVAILTUNES += "mips64r2-nf mips64r2el-nf"
+
+TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
+BASE_LIB_tune-mips64r2-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
+
+TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
+BASE_LIB_tune-mips64r2el-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
+
+# MIPS 64r2 n32
+AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
+
+TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
+BASE_LIB_tune-mips64r2-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
+
+TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
+BASE_LIB_tune-mips64r2el-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
+
+# MIPS 64r2 n32 and Soft Float
+AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
+
+TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
+BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
+
+TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
+BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
+
+# MIPS 64r2 o32
+AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
+
+TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
+BASE_LIB_tune-mips64r2-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
+
+TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
+BASE_LIB_tune-mips64r2el-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
+
+# MIPS 64r2 o32 and Soft Float
+AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
+
+TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
+BASE_LIB_tune-mips64r2-nf-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
+
+TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
+BASE_LIB_tune-mips64r2el-nf-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Patch v2] arch-mips: Restructure mips64 and add mips64r2
  2016-09-20 10:33 [Patch v2] arch-mips: Restructure mips64 and add mips64r2 Zubair Lutfullah Kakakhel
@ 2016-09-20 13:08 ` Mark Hatle
  2016-09-20 14:07   ` Zubair Lutfullah Kakakhel
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Hatle @ 2016-09-20 13:08 UTC (permalink / raw)
  To: Zubair Lutfullah Kakakhel, openembedded-core

On 9/20/16 5:33 AM, Zubair Lutfullah Kakakhel wrote:
> The current file structure felt slightly unsuitable for adding
> MIPS64r2. So I restructured it slightly and added MIPS64r2
> support
> 
> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> 
> ---
> V1 -> V2
> Fixed a subtle bug in the include files for tune-mips64.inc which
> resulted in a build failure for multi-lib configuration.

(Sorry, I didn't see V1.)

Can you explain why you moved the items out of arch-mips.inc?

Generally we want the arch-*.inc file to set a base set of components that the
optimized tunes can use.  It most case we define all of the core architecture
'features' and basic tunes in the arch files, and then add specific processor
optimizations in the arch-*.inc files.

Also I see 'mips64*-o32' defined.  I did not realize this was a valid
configuration.  In the past o32 could only be compiled with mips/mips32*
instructions.

+TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
+BASE_LIB_tune-mips64-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"

+TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
+BASE_LIB_tune-mips64el-nf-o32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"

Also o32 and n32 are currently defined to use the same lib directory.  This is
incorrect.  Per long time conventions, o32 belongs in 'lib', and n32 belongs in
'lib32'.  (n64 in lib64)

So at a minimum the directory name of o32 needs to be fixed.

> ---
>  meta/conf/machine/include/mips/arch-mips.inc | 60 --------------------
>  meta/conf/machine/include/tune-mips32.inc    | 22 +++++++-
>  meta/conf/machine/include/tune-mips64.inc    | 78 ++++++++++++++++++++++++++
>  meta/conf/machine/include/tune-mips64r2.inc  | 84 ++++++++++++++++++++++++++++
>  4 files changed, 183 insertions(+), 61 deletions(-)
>  create mode 100644 meta/conf/machine/include/tune-mips64r2.inc
> 
> diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
> index d3e83d1..6be84be 100644
> --- a/meta/conf/machine/include/mips/arch-mips.inc
> +++ b/meta/conf/machine/include/mips/arch-mips.inc
> @@ -42,64 +42,4 @@ MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
>  TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
>  TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
>  
> -# Base tunes
> -AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
> -TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
> -BASE_LIB_tune-mips = "lib"
> -MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>  
> -TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
> -BASE_LIB_tune-mips64-n32 = "lib32"
> -MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
> -
> -TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
> -BASE_LIB_tune-mips64 = "lib64"
> -MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
> -
> -TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
> -BASE_LIB_tune-mipsel = "lib"
> -MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
> -
> -TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
> -BASE_LIB_tune-mips64el-n32 = "lib32"
> -MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
> -
> -TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
> -BASE_LIB_tune-mips64el = "lib64"
> -MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
> -
> -TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
> -BASE_LIB_tune-mips-nf = "lib"
> -MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
> -
> -TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
> -BASE_LIB_tune-mips64-nf-n32 = "lib32"
> -MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
> -
> -TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
> -BASE_LIB_tune-mips64-nf = "lib64"
> -MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
> -
> -TUNE_FEATURES_tune-mipsel-nf = "o32"
> -BASE_LIB_tune-mipsel-nf = "lib"
> -MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
> -
> -TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
> -BASE_LIB_tune-mips64el-nf-n32 = "lib32"
> -MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
> -
> -TUNE_FEATURES_tune-mips64el-nf = "n64"
> -BASE_LIB_tune-mips64el-nf = "lib64"
> -MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
> diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
> index ce0445f..4c3d93f 100644
> --- a/meta/conf/machine/include/tune-mips32.inc
> +++ b/meta/conf/machine/include/tune-mips32.inc
> @@ -6,7 +6,27 @@ TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
>  TUNECONFLICTS[mips32] = "n64 n32"
>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}"
>  
> -AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
> +AVAILTUNES += "mips mipsel mips-nf mipsel-nf mips32 mips32el mips32-nf mips32el-nf"
> +
> +TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
> +BASE_LIB_tune-mips = "lib"
> +MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
> +
> +TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
> +BASE_LIB_tune-mipsel = "lib"
> +MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
> +
> +TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
> +BASE_LIB_tune-mips-nf = "lib"
> +MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
> +
> +TUNE_FEATURES_tune-mipsel-nf = "o32"
> +BASE_LIB_tune-mipsel-nf = "lib"
> +MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>  
>  TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
>  MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
> diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
> index 9be0e0f..06e0ee3 100644
> --- a/meta/conf/machine/include/tune-mips64.inc
> +++ b/meta/conf/machine/include/tune-mips64.inc
> @@ -1,3 +1,81 @@
>  DEFAULTTUNE ?= "mips64"
>  
>  require conf/machine/include/tune-mips32r2.inc
> +
> +# Base tunes
> +AVAILTUNES += "mips64 mips64el"
> +
> +TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
> +BASE_LIB_tune-mips64 = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
> +
> +TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
> +BASE_LIB_tune-mips64el = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
> +
> +# MIPS 64 Soft Float
> +AVAILTUNES += "mips64-nf mips64el-nf"
> +
> +TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
> +BASE_LIB_tune-mips64-nf = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
> +
> +TUNE_FEATURES_tune-mips64el-nf = "n64"
> +BASE_LIB_tune-mips64el-nf = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
> +
> +# MIPS 64 n32
> +AVAILTUNES += "mips64-n32 mips64el-n32"
> +
> +TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
> +BASE_LIB_tune-mips64-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
> +
> +TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
> +BASE_LIB_tune-mips64el-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
> +
> +# MIPS 64 n32 and Soft Float
> +AVAILTUNES += "mips64-nf-n32 mips64el-nf-n32"
> +
> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
> +
> +TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
> +BASE_LIB_tune-mips64el-nf-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
> +
> +# MIPS 64 o32
> +AVAILTUNES += "mips64-o32 mips64el-o32"
> +
> +TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
> +BASE_LIB_tune-mips64-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips64-o32"
> +
> +TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
> +BASE_LIB_tune-mips64el-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mips64el-o32"
> +
> +# MIPS 64 o32 and Soft Float
> +AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
> +
> +TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
> +BASE_LIB_tune-mips64-nf-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips64-nf-o32"
> +
> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
> diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/tune-mips64r2.inc
> new file mode 100644
> index 0000000..f64983d
> --- /dev/null
> +++ b/meta/conf/machine/include/tune-mips64r2.inc
> @@ -0,0 +1,84 @@
> +DEFAULTTUNE ?= "mips64r2"
> +
> +require conf/machine/include/tune-mips64.inc
> +
> +TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
> +
> +# Base tunes
> +AVAILTUNES += "mips64r2 mips64r2el"
> +
> +TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
> +BASE_LIB_tune-mips64r2 = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
> +
> +TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
> +BASE_LIB_tune-mips64r2el = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
> +
> +# MIPS 64r2 Soft Float
> +AVAILTUNES += "mips64r2-nf mips64r2el-nf"
> +
> +TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
> +BASE_LIB_tune-mips64r2-nf = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
> +
> +TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
> +BASE_LIB_tune-mips64r2el-nf = "lib64"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
> +
> +# MIPS 64r2 n32
> +AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
> +
> +TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
> +BASE_LIB_tune-mips64r2-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
> +
> +TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
> +BASE_LIB_tune-mips64r2el-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
> +
> +# MIPS 64r2 n32 and Soft Float
> +AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
> +
> +TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
> +BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
> +
> +TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
> +BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
> +
> +# MIPS 64r2 o32
> +AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
> +
> +TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
> +BASE_LIB_tune-mips64r2-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
> +
> +TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
> +BASE_LIB_tune-mips64r2el-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
> +
> +# MIPS 64r2 o32 and Soft Float
> +AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
> +
> +TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
> +BASE_LIB_tune-mips64r2-nf-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
> +
> +TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
> +BASE_LIB_tune-mips64r2el-nf-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Patch v2] arch-mips: Restructure mips64 and add mips64r2
  2016-09-20 13:08 ` Mark Hatle
@ 2016-09-20 14:07   ` Zubair Lutfullah Kakakhel
  2016-09-20 14:51     ` Mark Hatle
  0 siblings, 1 reply; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2016-09-20 14:07 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

Hi,

On 09/20/2016 02:08 PM, Mark Hatle wrote:
> On 9/20/16 5:33 AM, Zubair Lutfullah Kakakhel wrote:
>> The current file structure felt slightly unsuitable for adding
>> MIPS64r2. So I restructured it slightly and added MIPS64r2
>> support
>>
>> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
>>
>> ---
>> V1 -> V2
>> Fixed a subtle bug in the include files for tune-mips64.inc which
>> resulted in a build failure for multi-lib configuration.
>
> (Sorry, I didn't see V1.)
>
> Can you explain why you moved the items out of arch-mips.inc?
>
> Generally we want the arch-*.inc file to set a base set of components that the
> optimized tunes can use.  It most case we define all of the core architecture
> 'features' and basic tunes in the arch files, and then add specific processor
> optimizations in the arch-*.inc files.

I struggled a bit with drawing the line about where the basic tunes were and where
the rest of them go.

The previous structure was like so.

include/mips/arch-mips.inc had the following tunes : "mips mips64-n32 mips64 mipsel
mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"

Which is a mix of 32/64 bit.

Then
include/tune-mips32.inc defined "mips32 mips32el mips32-nf mips32el-nf"
include/tune-mips32r2.inc defined "mips32r2 mips32r2el mips32r2-nf mips32r2el-nf"

include/tune-mips64.inc just had a require include/tune-mips32r2.inc which
includes the base which basically has the actual mips64 tunes.

With this restructure patch.

include/mips/arch-mips.inc defines no tunes.
include/tune-mips32.inc defines mips and mips32
include/tune-mips32r2.inc defines mips32r2
include/tune-mips64.inc defines mips64
include/tune-mips64r2.inc defines mips64r2

I could leave the existing layout as is and only add 64r2 as a separate patch.
But as I was poking around here, I tried to improve things a bit.

Any recommendation regarding which way would be preferred?

>
> Also I see 'mips64*-o32' defined.  I did not realize this was a valid
> configuration.  In the past o32 could only be compiled with mips/mips32*
> instructions.
>
> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>
> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>
> Also o32 and n32 are currently defined to use the same lib directory.  This is
> incorrect.  Per long time conventions, o32 belongs in 'lib', and n32 belongs in
> 'lib32'.  (n64 in lib64)
>
> So at a minimum the directory name of o32 needs to be fixed.

Thanks for pointing this out. I'll fix this in v3.

Regards,
ZubairLK

>
>> ---
>>  meta/conf/machine/include/mips/arch-mips.inc | 60 --------------------
>>  meta/conf/machine/include/tune-mips32.inc    | 22 +++++++-
>>  meta/conf/machine/include/tune-mips64.inc    | 78 ++++++++++++++++++++++++++
>>  meta/conf/machine/include/tune-mips64r2.inc  | 84 ++++++++++++++++++++++++++++
>>  4 files changed, 183 insertions(+), 61 deletions(-)
>>  create mode 100644 meta/conf/machine/include/tune-mips64r2.inc
>>
>> diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
>> index d3e83d1..6be84be 100644
>> --- a/meta/conf/machine/include/mips/arch-mips.inc
>> +++ b/meta/conf/machine/include/mips/arch-mips.inc
>> @@ -42,64 +42,4 @@ MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
>>  TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
>>  TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
>>
>> -# Base tunes
>> -AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
>> -TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>> -BASE_LIB_tune-mips = "lib"
>> -MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>>
>> -TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>> -BASE_LIB_tune-mips64-n32 = "lib32"
>> -MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>> -
>> -TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>> -BASE_LIB_tune-mips64 = "lib64"
>> -MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>> -
>> -TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>> -BASE_LIB_tune-mipsel = "lib"
>> -MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>> -
>> -TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>> -BASE_LIB_tune-mips64el-n32 = "lib32"
>> -MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>> -
>> -TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>> -BASE_LIB_tune-mips64el = "lib64"
>> -MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>> -
>> -TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>> -BASE_LIB_tune-mips-nf = "lib"
>> -MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>> -
>> -TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>> -BASE_LIB_tune-mips64-nf-n32 = "lib32"
>> -MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>> -
>> -TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>> -BASE_LIB_tune-mips64-nf = "lib64"
>> -MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>> -
>> -TUNE_FEATURES_tune-mipsel-nf = "o32"
>> -BASE_LIB_tune-mipsel-nf = "lib"
>> -MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>> -
>> -TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>> -BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>> -
>> -TUNE_FEATURES_tune-mips64el-nf = "n64"
>> -BASE_LIB_tune-mips64el-nf = "lib64"
>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>> diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
>> index ce0445f..4c3d93f 100644
>> --- a/meta/conf/machine/include/tune-mips32.inc
>> +++ b/meta/conf/machine/include/tune-mips32.inc
>> @@ -6,7 +6,27 @@ TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
>>  TUNECONFLICTS[mips32] = "n64 n32"
>>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}"
>>
>> -AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
>> +AVAILTUNES += "mips mipsel mips-nf mipsel-nf mips32 mips32el mips32-nf mips32el-nf"
>> +
>> +TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>> +BASE_LIB_tune-mips = "lib"
>> +MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>> +
>> +TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>> +BASE_LIB_tune-mipsel = "lib"
>> +MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>> +
>> +TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>> +BASE_LIB_tune-mips-nf = "lib"
>> +MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>> +
>> +TUNE_FEATURES_tune-mipsel-nf = "o32"
>> +BASE_LIB_tune-mipsel-nf = "lib"
>> +MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>>
>>  TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
>>  MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
>> diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
>> index 9be0e0f..06e0ee3 100644
>> --- a/meta/conf/machine/include/tune-mips64.inc
>> +++ b/meta/conf/machine/include/tune-mips64.inc
>> @@ -1,3 +1,81 @@
>>  DEFAULTTUNE ?= "mips64"
>>
>>  require conf/machine/include/tune-mips32r2.inc
>> +
>> +# Base tunes
>> +AVAILTUNES += "mips64 mips64el"
>> +
>> +TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>> +BASE_LIB_tune-mips64 = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>> +
>> +TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>> +BASE_LIB_tune-mips64el = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>> +
>> +# MIPS 64 Soft Float
>> +AVAILTUNES += "mips64-nf mips64el-nf"
>> +
>> +TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>> +BASE_LIB_tune-mips64-nf = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>> +
>> +TUNE_FEATURES_tune-mips64el-nf = "n64"
>> +BASE_LIB_tune-mips64el-nf = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>> +
>> +# MIPS 64 n32
>> +AVAILTUNES += "mips64-n32 mips64el-n32"
>> +
>> +TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>> +BASE_LIB_tune-mips64-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>> +
>> +TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>> +BASE_LIB_tune-mips64el-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>> +
>> +# MIPS 64 n32 and Soft Float
>> +AVAILTUNES += "mips64-nf-n32 mips64el-nf-n32"
>> +
>> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>> +
>> +TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>> +BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>> +
>> +# MIPS 64 o32
>> +AVAILTUNES += "mips64-o32 mips64el-o32"
>> +
>> +TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
>> +BASE_LIB_tune-mips64-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips64-o32"
>> +
>> +TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
>> +BASE_LIB_tune-mips64el-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mips64el-o32"
>> +
>> +# MIPS 64 o32 and Soft Float
>> +AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
>> +
>> +TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
>> +BASE_LIB_tune-mips64-nf-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips64-nf-o32"
>> +
>> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
>> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>> diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/tune-mips64r2.inc
>> new file mode 100644
>> index 0000000..f64983d
>> --- /dev/null
>> +++ b/meta/conf/machine/include/tune-mips64r2.inc
>> @@ -0,0 +1,84 @@
>> +DEFAULTTUNE ?= "mips64r2"
>> +
>> +require conf/machine/include/tune-mips64.inc
>> +
>> +TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
>> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
>> +
>> +# Base tunes
>> +AVAILTUNES += "mips64r2 mips64r2el"
>> +
>> +TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
>> +BASE_LIB_tune-mips64r2 = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
>> +
>> +TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
>> +BASE_LIB_tune-mips64r2el = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
>> +
>> +# MIPS 64r2 Soft Float
>> +AVAILTUNES += "mips64r2-nf mips64r2el-nf"
>> +
>> +TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
>> +BASE_LIB_tune-mips64r2-nf = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
>> +
>> +TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
>> +BASE_LIB_tune-mips64r2el-nf = "lib64"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
>> +
>> +# MIPS 64r2 n32
>> +AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
>> +
>> +TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
>> +BASE_LIB_tune-mips64r2-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
>> +
>> +TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
>> +BASE_LIB_tune-mips64r2el-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
>> +
>> +# MIPS 64r2 n32 and Soft Float
>> +AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
>> +
>> +TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
>> +BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
>> +
>> +TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
>> +BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
>> +
>> +# MIPS 64r2 o32
>> +AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
>> +
>> +TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
>> +BASE_LIB_tune-mips64r2-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
>> +
>> +TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
>> +BASE_LIB_tune-mips64r2el-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
>> +
>> +# MIPS 64r2 o32 and Soft Float
>> +AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
>> +
>> +TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
>> +BASE_LIB_tune-mips64r2-nf-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
>> +
>> +TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
>> +BASE_LIB_tune-mips64r2el-nf-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
>>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Patch v2] arch-mips: Restructure mips64 and add mips64r2
  2016-09-20 14:07   ` Zubair Lutfullah Kakakhel
@ 2016-09-20 14:51     ` Mark Hatle
  2016-09-20 15:17       ` Zubair Lutfullah Kakakhel
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Hatle @ 2016-09-20 14:51 UTC (permalink / raw)
  To: Zubair Lutfullah Kakakhel, openembedded-core

On 9/20/16 9:07 AM, Zubair Lutfullah Kakakhel wrote:
> Hi,
> 
> On 09/20/2016 02:08 PM, Mark Hatle wrote:
>> On 9/20/16 5:33 AM, Zubair Lutfullah Kakakhel wrote:
>>> The current file structure felt slightly unsuitable for adding
>>> MIPS64r2. So I restructured it slightly and added MIPS64r2
>>> support
>>>
>>> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
>>>
>>> ---
>>> V1 -> V2
>>> Fixed a subtle bug in the include files for tune-mips64.inc which
>>> resulted in a build failure for multi-lib configuration.
>>
>> (Sorry, I didn't see V1.)
>>
>> Can you explain why you moved the items out of arch-mips.inc?
>>
>> Generally we want the arch-*.inc file to set a base set of components that the
>> optimized tunes can use.  It most case we define all of the core architecture
>> 'features' and basic tunes in the arch files, and then add specific processor
>> optimizations in the arch-*.inc files.
> 
> I struggled a bit with drawing the line about where the basic tunes were and where
> the rest of them go.
> 
> The previous structure was like so.
> 
> include/mips/arch-mips.inc had the following tunes : "mips mips64-n32 mips64 mipsel
> mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"

Most other architectures are divided into a 32-bit and a 64-bit base tune.. so
it ends up something like:

mips/arch-mips.inc:
define: mips mipsel mips-nf mipsel-nf

mips/arch-mips64.inc:
include mips/arch-mips.inc

define: mips64-n32 mips64 mips64el-n32 mips64el mips64-nf-n32 mips64-nf
mips64el-nf-n32 mips64el-nf

tune-mips32r2.inc:
include mips/arch-mips.inc

define: (mips32r2 extensions)

tune-mips64r2.inc:
include mips/arch-mips64.inc

define: (mips64r2 extensions)


but if I remember right, there was a problem.  The 64-bit people wanted to use
the 32r2 version.  So if the include becomes:

include tune-mips32r2.inc (which includes arch-mips.inc)
include mips/arch-mips64.inc (which includes arch-mips.inc)

and now you run into the same thing being included two -- which you are not
supposed to do in OE..  So I believe this is why they were merged into a single
'arch-mips'.

> 
> Which is a mix of 32/64 bit.
> 
> Then
> include/tune-mips32.inc defined "mips32 mips32el mips32-nf mips32el-nf"
> include/tune-mips32r2.inc defined "mips32r2 mips32r2el mips32r2-nf mips32r2el-nf"
> 
> include/tune-mips64.inc just had a require include/tune-mips32r2.inc which
> includes the base which basically has the actual mips64 tunes.
> 
> With this restructure patch.
> 
> include/mips/arch-mips.inc defines no tunes.

The arch should define a basic set of tunes that work on all mips architectures
(within reason)

> include/tune-mips32.inc defines mips and mips32
> include/tune-mips32r2.inc defines mips32r2
> include/tune-mips64.inc defines mips64
> include/tune-mips64r2.inc defines mips64r2
> 
> I could leave the existing layout as is and only add 64r2 as a separate patch.
> But as I was poking around here, I tried to improve things a bit.
> 
> Any recommendation regarding which way would be preferred?

As long as the tunes remain, I'm fine.. but changing which files the base ones
are in can break BSPs developed elsewhere.  This is the biggest concern I have.

>>
>> Also I see 'mips64*-o32' defined.  I did not realize this was a valid
>> configuration.  In the past o32 could only be compiled with mips/mips32*
>> instructions.
>>
>> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>
>> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
>> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>>
>> Also o32 and n32 are currently defined to use the same lib directory.  This is
>> incorrect.  Per long time conventions, o32 belongs in 'lib', and n32 belongs in
>> 'lib32'.  (n64 in lib64)
>>
>> So at a minimum the directory name of o32 needs to be fixed.
> 
> Thanks for pointing this out. I'll fix this in v3.
> 
> Regards,
> ZubairLK
> 
>>
>>> ---
>>>  meta/conf/machine/include/mips/arch-mips.inc | 60 --------------------
>>>  meta/conf/machine/include/tune-mips32.inc    | 22 +++++++-
>>>  meta/conf/machine/include/tune-mips64.inc    | 78 ++++++++++++++++++++++++++
>>>  meta/conf/machine/include/tune-mips64r2.inc  | 84 ++++++++++++++++++++++++++++
>>>  4 files changed, 183 insertions(+), 61 deletions(-)
>>>  create mode 100644 meta/conf/machine/include/tune-mips64r2.inc
>>>
>>> diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
>>> index d3e83d1..6be84be 100644
>>> --- a/meta/conf/machine/include/mips/arch-mips.inc
>>> +++ b/meta/conf/machine/include/mips/arch-mips.inc
>>> @@ -42,64 +42,4 @@ MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
>>>  TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
>>>  TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
>>>
>>> -# Base tunes
>>> -AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
>>> -TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>>> -BASE_LIB_tune-mips = "lib"
>>> -MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>>>
>>> -TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>>> -BASE_LIB_tune-mips64-n32 = "lib32"
>>> -MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>>> -
>>> -TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>>> -BASE_LIB_tune-mips64 = "lib64"
>>> -MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>>> -
>>> -TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>>> -BASE_LIB_tune-mipsel = "lib"
>>> -MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>>> -
>>> -TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>>> -BASE_LIB_tune-mips64el-n32 = "lib32"
>>> -MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>>> -
>>> -TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>>> -BASE_LIB_tune-mips64el = "lib64"
>>> -MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>>> -
>>> -TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>>> -BASE_LIB_tune-mips-nf = "lib"
>>> -MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>>> -
>>> -TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>>> -BASE_LIB_tune-mips64-nf-n32 = "lib32"
>>> -MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>> -
>>> -TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>>> -BASE_LIB_tune-mips64-nf = "lib64"
>>> -MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>>> -
>>> -TUNE_FEATURES_tune-mipsel-nf = "o32"
>>> -BASE_LIB_tune-mipsel-nf = "lib"
>>> -MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>>> -
>>> -TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>>> -BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>>> -
>>> -TUNE_FEATURES_tune-mips64el-nf = "n64"
>>> -BASE_LIB_tune-mips64el-nf = "lib64"
>>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>>> diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
>>> index ce0445f..4c3d93f 100644
>>> --- a/meta/conf/machine/include/tune-mips32.inc
>>> +++ b/meta/conf/machine/include/tune-mips32.inc
>>> @@ -6,7 +6,27 @@ TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
>>>  TUNECONFLICTS[mips32] = "n64 n32"
>>>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}"
>>>
>>> -AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
>>> +AVAILTUNES += "mips mipsel mips-nf mipsel-nf mips32 mips32el mips32-nf mips32el-nf"
>>> +
>>> +TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>>> +BASE_LIB_tune-mips = "lib"
>>> +MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>>> +
>>> +TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>>> +BASE_LIB_tune-mipsel = "lib"
>>> +MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>>> +
>>> +TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>>> +BASE_LIB_tune-mips-nf = "lib"
>>> +MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>>> +
>>> +TUNE_FEATURES_tune-mipsel-nf = "o32"
>>> +BASE_LIB_tune-mipsel-nf = "lib"
>>> +MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>>>
>>>  TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
>>>  MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
>>> diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
>>> index 9be0e0f..06e0ee3 100644
>>> --- a/meta/conf/machine/include/tune-mips64.inc
>>> +++ b/meta/conf/machine/include/tune-mips64.inc
>>> @@ -1,3 +1,81 @@
>>>  DEFAULTTUNE ?= "mips64"
>>>
>>>  require conf/machine/include/tune-mips32r2.inc
>>> +
>>> +# Base tunes
>>> +AVAILTUNES += "mips64 mips64el"
>>> +
>>> +TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>>> +BASE_LIB_tune-mips64 = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>>> +
>>> +TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>>> +BASE_LIB_tune-mips64el = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>>> +
>>> +# MIPS 64 Soft Float
>>> +AVAILTUNES += "mips64-nf mips64el-nf"
>>> +
>>> +TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>>> +BASE_LIB_tune-mips64-nf = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>>> +
>>> +TUNE_FEATURES_tune-mips64el-nf = "n64"
>>> +BASE_LIB_tune-mips64el-nf = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>>> +
>>> +# MIPS 64 n32
>>> +AVAILTUNES += "mips64-n32 mips64el-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>>> +BASE_LIB_tune-mips64-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>>> +BASE_LIB_tune-mips64el-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>>> +
>>> +# MIPS 64 n32 and Soft Float
>>> +AVAILTUNES += "mips64-nf-n32 mips64el-nf-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>>> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>>> +BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>>> +
>>> +# MIPS 64 o32
>>> +AVAILTUNES += "mips64-o32 mips64el-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
>>> +BASE_LIB_tune-mips64-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips64-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
>>> +BASE_LIB_tune-mips64el-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mips64el-o32"
>>> +
>>> +# MIPS 64 o32 and Soft Float
>>> +AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
>>> +BASE_LIB_tune-mips64-nf-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips64-nf-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
>>> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>>> diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/tune-mips64r2.inc
>>> new file mode 100644
>>> index 0000000..f64983d
>>> --- /dev/null
>>> +++ b/meta/conf/machine/include/tune-mips64r2.inc
>>> @@ -0,0 +1,84 @@
>>> +DEFAULTTUNE ?= "mips64r2"
>>> +
>>> +require conf/machine/include/tune-mips64.inc
>>> +
>>> +TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
>>> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
>>> +
>>> +# Base tunes
>>> +AVAILTUNES += "mips64r2 mips64r2el"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
>>> +BASE_LIB_tune-mips64r2 = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
>>> +BASE_LIB_tune-mips64r2el = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
>>> +
>>> +# MIPS 64r2 Soft Float
>>> +AVAILTUNES += "mips64r2-nf mips64r2el-nf"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
>>> +BASE_LIB_tune-mips64r2-nf = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
>>> +BASE_LIB_tune-mips64r2el-nf = "lib64"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
>>> +
>>> +# MIPS 64r2 n32
>>> +AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
>>> +BASE_LIB_tune-mips64r2-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
>>> +BASE_LIB_tune-mips64r2el-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
>>> +
>>> +# MIPS 64r2 n32 and Soft Float
>>> +AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
>>> +BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
>>> +BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
>>> +
>>> +# MIPS 64r2 o32
>>> +AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
>>> +BASE_LIB_tune-mips64r2-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
>>> +BASE_LIB_tune-mips64r2el-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
>>> +
>>> +# MIPS 64r2 o32 and Soft Float
>>> +AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
>>> +BASE_LIB_tune-mips64r2-nf-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
>>> +
>>> +TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
>>> +BASE_LIB_tune-mips64r2el-nf-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
>>>
>>



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Patch v2] arch-mips: Restructure mips64 and add mips64r2
  2016-09-20 14:51     ` Mark Hatle
@ 2016-09-20 15:17       ` Zubair Lutfullah Kakakhel
  0 siblings, 0 replies; 5+ messages in thread
From: Zubair Lutfullah Kakakhel @ 2016-09-20 15:17 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

Hi,

On 09/20/2016 03:51 PM, Mark Hatle wrote:
> On 9/20/16 9:07 AM, Zubair Lutfullah Kakakhel wrote:
>> Hi,
>>
>> On 09/20/2016 02:08 PM, Mark Hatle wrote:
>>> On 9/20/16 5:33 AM, Zubair Lutfullah Kakakhel wrote:
>>>> The current file structure felt slightly unsuitable for adding
>>>> MIPS64r2. So I restructured it slightly and added MIPS64r2
>>>> support
>>>>
>>>> Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
>>>>
>>>> ---
>>>> V1 -> V2
>>>> Fixed a subtle bug in the include files for tune-mips64.inc which
>>>> resulted in a build failure for multi-lib configuration.
>>>
>>> (Sorry, I didn't see V1.)
>>>
>>> Can you explain why you moved the items out of arch-mips.inc?
>>>
>>> Generally we want the arch-*.inc file to set a base set of components that the
>>> optimized tunes can use.  It most case we define all of the core architecture
>>> 'features' and basic tunes in the arch files, and then add specific processor
>>> optimizations in the arch-*.inc files.
>>
>> I struggled a bit with drawing the line about where the basic tunes were and where
>> the rest of them go.
>>
>> The previous structure was like so.
>>
>> include/mips/arch-mips.inc had the following tunes : "mips mips64-n32 mips64 mipsel
>> mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
>
> Most other architectures are divided into a 32-bit and a 64-bit base tune.. so
> it ends up something like:
>
> mips/arch-mips.inc:
> define: mips mipsel mips-nf mipsel-nf
>
> mips/arch-mips64.inc:
> include mips/arch-mips.inc
>
> define: mips64-n32 mips64 mips64el-n32 mips64el mips64-nf-n32 mips64-nf
> mips64el-nf-n32 mips64el-nf
>
> tune-mips32r2.inc:
> include mips/arch-mips.inc
>
> define: (mips32r2 extensions)
>
> tune-mips64r2.inc:
> include mips/arch-mips64.inc
>
> define: (mips64r2 extensions)
>
>
> but if I remember right, there was a problem.  The 64-bit people wanted to use
> the 32r2 version.  So if the include becomes:
>
> include tune-mips32r2.inc (which includes arch-mips.inc)
> include mips/arch-mips64.inc (which includes arch-mips.inc)
>
> and now you run into the same thing being included two -- which you are not
> supposed to do in OE..  So I believe this is why they were merged into a single
> 'arch-mips'.
>
>>
>> Which is a mix of 32/64 bit.
>>
>> Then
>> include/tune-mips32.inc defined "mips32 mips32el mips32-nf mips32el-nf"
>> include/tune-mips32r2.inc defined "mips32r2 mips32r2el mips32r2-nf mips32r2el-nf"
>>
>> include/tune-mips64.inc just had a require include/tune-mips32r2.inc which
>> includes the base which basically has the actual mips64 tunes.
>>
>> With this restructure patch.
>>
>> include/mips/arch-mips.inc defines no tunes.
>
> The arch should define a basic set of tunes that work on all mips architectures
> (within reason)
>
>> include/tune-mips32.inc defines mips and mips32
>> include/tune-mips32r2.inc defines mips32r2
>> include/tune-mips64.inc defines mips64
>> include/tune-mips64r2.inc defines mips64r2
>>
>> I could leave the existing layout as is and only add 64r2 as a separate patch.
>> But as I was poking around here, I tried to improve things a bit.
>>
>> Any recommendation regarding which way would be preferred?
>
> As long as the tunes remain, I'm fine.. but changing which files the base ones
> are in can break BSPs developed elsewhere.  This is the biggest concern I have.

I agree restructure can potentially break existing work out there.
I'll send v3 which only adds 64r2 support and doesn't restructure anything.

Thanks
ZubairLK

>
>>>
>>> Also I see 'mips64*-o32' defined.  I did not realize this was a valid
>>> configuration.  In the past o32 could only be compiled with mips/mips32*
>>> instructions.
>>>
>>> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>>> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>>
>>> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
>>> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>>>
>>> Also o32 and n32 are currently defined to use the same lib directory.  This is
>>> incorrect.  Per long time conventions, o32 belongs in 'lib', and n32 belongs in
>>> 'lib32'.  (n64 in lib64)
>>>
>>> So at a minimum the directory name of o32 needs to be fixed.
>>
>> Thanks for pointing this out. I'll fix this in v3.
>>
>> Regards,
>> ZubairLK
>>
>>>
>>>> ---
>>>>  meta/conf/machine/include/mips/arch-mips.inc | 60 --------------------
>>>>  meta/conf/machine/include/tune-mips32.inc    | 22 +++++++-
>>>>  meta/conf/machine/include/tune-mips64.inc    | 78 ++++++++++++++++++++++++++
>>>>  meta/conf/machine/include/tune-mips64r2.inc  | 84 ++++++++++++++++++++++++++++
>>>>  4 files changed, 183 insertions(+), 61 deletions(-)
>>>>  create mode 100644 meta/conf/machine/include/tune-mips64r2.inc
>>>>
>>>> diff --git a/meta/conf/machine/include/mips/arch-mips.inc b/meta/conf/machine/include/mips/arch-mips.inc
>>>> index d3e83d1..6be84be 100644
>>>> --- a/meta/conf/machine/include/mips/arch-mips.inc
>>>> +++ b/meta/conf/machine/include/mips/arch-mips.inc
>>>> @@ -42,64 +42,4 @@ MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
>>>>  TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
>>>>  TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
>>>>
>>>> -# Base tunes
>>>> -AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf"
>>>> -TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>>>> -BASE_LIB_tune-mips = "lib"
>>>> -MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>>>>
>>>> -TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>>>> -BASE_LIB_tune-mips64-n32 = "lib32"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>>>> -BASE_LIB_tune-mips64 = "lib64"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>>>> -
>>>> -TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>>>> -BASE_LIB_tune-mipsel = "lib"
>>>> -MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>>>> -BASE_LIB_tune-mips64el-n32 = "lib32"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>>>> -BASE_LIB_tune-mips64el = "lib64"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>>>> -
>>>> -TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>>>> -BASE_LIB_tune-mips-nf = "lib"
>>>> -MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>>>> -BASE_LIB_tune-mips64-nf-n32 = "lib32"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>>>> -BASE_LIB_tune-mips64-nf = "lib64"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>>>> -
>>>> -TUNE_FEATURES_tune-mipsel-nf = "o32"
>>>> -BASE_LIB_tune-mipsel-nf = "lib"
>>>> -MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>>>> -BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>>>> -
>>>> -TUNE_FEATURES_tune-mips64el-nf = "n64"
>>>> -BASE_LIB_tune-mips64el-nf = "lib64"
>>>> -MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>>>> -PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>>>> diff --git a/meta/conf/machine/include/tune-mips32.inc b/meta/conf/machine/include/tune-mips32.inc
>>>> index ce0445f..4c3d93f 100644
>>>> --- a/meta/conf/machine/include/tune-mips32.inc
>>>> +++ b/meta/conf/machine/include/tune-mips32.inc
>>>> @@ -6,7 +6,27 @@ TUNEVALID[mips32] = "Enable mips32 specific processor optimizations"
>>>>  TUNECONFLICTS[mips32] = "n64 n32"
>>>>  TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}"
>>>>
>>>> -AVAILTUNES += "mips32 mips32el mips32-nf mips32el-nf"
>>>> +AVAILTUNES += "mips mipsel mips-nf mipsel-nf mips32 mips32el mips32-nf mips32el-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard"
>>>> +BASE_LIB_tune-mips = "lib"
>>>> +MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips = "mips"
>>>> +
>>>> +TUNE_FEATURES_tune-mipsel = "o32 fpu-hard"
>>>> +BASE_LIB_tune-mipsel = "lib"
>>>> +MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel"
>>>> +
>>>> +TUNE_FEATURES_tune-mips-nf = "o32 bigendian"
>>>> +BASE_LIB_tune-mips-nf = "lib"
>>>> +MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mipsel-nf = "o32"
>>>> +BASE_LIB_tune-mipsel-nf = "lib"
>>>> +MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf"
>>>>
>>>>  TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32"
>>>>  MIPSPKGSFX_VARIANT_tune-mips32 = "mips32"
>>>> diff --git a/meta/conf/machine/include/tune-mips64.inc b/meta/conf/machine/include/tune-mips64.inc
>>>> index 9be0e0f..06e0ee3 100644
>>>> --- a/meta/conf/machine/include/tune-mips64.inc
>>>> +++ b/meta/conf/machine/include/tune-mips64.inc
>>>> @@ -1,3 +1,81 @@
>>>>  DEFAULTTUNE ?= "mips64"
>>>>
>>>>  require conf/machine/include/tune-mips32r2.inc
>>>> +
>>>> +# Base tunes
>>>> +AVAILTUNES += "mips64 mips64el"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard"
>>>> +BASE_LIB_tune-mips64 = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el = "n64 fpu-hard"
>>>> +BASE_LIB_tune-mips64el = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el"
>>>> +
>>>> +# MIPS 64 Soft Float
>>>> +AVAILTUNES += "mips64-nf mips64el-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64-nf = "n64 bigendian"
>>>> +BASE_LIB_tune-mips64-nf = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el-nf = "n64"
>>>> +BASE_LIB_tune-mips64el-nf = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
>>>> +
>>>> +# MIPS 64 n32
>>>> +AVAILTUNES += "mips64-n32 mips64el-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard"
>>>> +BASE_LIB_tune-mips64-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard"
>>>> +BASE_LIB_tune-mips64el-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32"
>>>> +
>>>> +# MIPS 64 n32 and Soft Float
>>>> +AVAILTUNES += "mips64-nf-n32 mips64el-nf-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian"
>>>> +BASE_LIB_tune-mips64-nf-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el-nf-n32 = "n32"
>>>> +BASE_LIB_tune-mips64el-nf-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32"
>>>> +
>>>> +# MIPS 64 o32
>>>> +AVAILTUNES += "mips64-o32 mips64el-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
>>>> +BASE_LIB_tune-mips64-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips64-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
>>>> +BASE_LIB_tune-mips64el-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mips64el-o32"
>>>> +
>>>> +# MIPS 64 o32 and Soft Float
>>>> +AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
>>>> +BASE_LIB_tune-mips64-nf-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips64-nf-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
>>>> +BASE_LIB_tune-mips64el-nf-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mips64el-nf-o32"
>>>> diff --git a/meta/conf/machine/include/tune-mips64r2.inc b/meta/conf/machine/include/tune-mips64r2.inc
>>>> new file mode 100644
>>>> index 0000000..f64983d
>>>> --- /dev/null
>>>> +++ b/meta/conf/machine/include/tune-mips64r2.inc
>>>> @@ -0,0 +1,84 @@
>>>> +DEFAULTTUNE ?= "mips64r2"
>>>> +
>>>> +require conf/machine/include/tune-mips64.inc
>>>> +
>>>> +TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
>>>> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
>>>> +
>>>> +# Base tunes
>>>> +AVAILTUNES += "mips64r2 mips64r2el"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
>>>> +BASE_LIB_tune-mips64r2 = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
>>>> +
>>>> +# MIPS 64r2 Soft Float
>>>> +AVAILTUNES += "mips64r2-nf mips64r2el-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
>>>> +BASE_LIB_tune-mips64r2-nf = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el-nf = "lib64"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
>>>> +
>>>> +# MIPS 64r2 n32
>>>> +AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
>>>> +
>>>> +# MIPS 64r2 n32 and Soft Float
>>>> +AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
>>>> +
>>>> +# MIPS 64r2 o32
>>>> +AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
>>>> +
>>>> +# MIPS 64r2 o32 and Soft Float
>>>> +AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2-nf-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
>>>> +
>>>> +TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
>>>> +BASE_LIB_tune-mips64r2el-nf-o32 = "lib32"
>>>> +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
>>>> +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
>>>>
>>>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-09-20 15:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-20 10:33 [Patch v2] arch-mips: Restructure mips64 and add mips64r2 Zubair Lutfullah Kakakhel
2016-09-20 13:08 ` Mark Hatle
2016-09-20 14:07   ` Zubair Lutfullah Kakakhel
2016-09-20 14:51     ` Mark Hatle
2016-09-20 15:17       ` Zubair Lutfullah Kakakhel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.