diff mbox series

[1/6] arch-armv8a.inc: add tune include for armv8

Message ID 20190205025727.1937-1-raj.khem@gmail.com
State New
Headers show
Series [1/6] arch-armv8a.inc: add tune include for armv8 | expand

Commit Message

Khem Raj Feb. 5, 2019, 2:57 a.m. UTC
From: ayaka <ayaka@soulik.info>


There are some addtional instructions apart from bare armv8,
also there is armv8.1, armv8.2.

Most the processor would support crc, except X-gene 1.

Signed-off-by: Randy Li <ayaka@soulik.info>

Signed-off-by: Khem Raj <raj.khem@gmail.com>

---
 meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
 meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)
 delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

-- 
2.20.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Comments

Richard Purdie Feb. 5, 2019, 3:12 p.m. UTC | #1
On Mon, 2019-02-04 at 18:57 -0800, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>

> 

> There are some addtional instructions apart from bare armv8,

> also there is armv8.1, armv8.2.

> 

> Most the processor would support crc, except X-gene 1.

> 

> Signed-off-by: Randy Li <ayaka@soulik.info>

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

>  meta/conf/machine/include/arm/arch-armv8a.inc | 28

> +++++++++++++++++++

>  2 files changed, 28 insertions(+), 1 deletion(-)

>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc


Renaming the file when other things use it causes failures:

https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/256/steps/7/logs/step1c

Cheers,

Richard

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Feb. 5, 2019, 3:57 p.m. UTC | #2
On Tue, Feb 5, 2019 at 7:12 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>

> On Mon, 2019-02-04 at 18:57 -0800, Khem Raj wrote:

> > From: ayaka <ayaka@soulik.info>

> >

> > There are some addtional instructions apart from bare armv8,

> > also there is armv8.1, armv8.2.

> >

> > Most the processor would support crc, except X-gene 1.

> >

> > Signed-off-by: Randy Li <ayaka@soulik.info>

> > Signed-off-by: Khem Raj <raj.khem@gmail.com>

> > ---

> >  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

> >  meta/conf/machine/include/arm/arch-armv8a.inc | 28

> > +++++++++++++++++++

> >  2 files changed, 28 insertions(+), 1 deletion(-)

> >  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

> >  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

>

> Renaming the file when other things use it causes failures:

>


my bad. I have been testing this with rpi3_64 and missed the qemuarm64
part, I sent a patch to use armv8a instead for qemuarm64, since thats
more used configuration when it comes to armv8

> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/256/steps/7/logs/step1c

>

> Cheers,

>

> Richard

>

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Armin Kuster Feb. 5, 2019, 3:57 p.m. UTC | #3
On 2/4/19 6:57 PM, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>

>

> There are some addtional instructions apart from bare armv8,

> also there is armv8.1, armv8.2.

>

> Most the processor would support crc, except X-gene 1.


We have had these tune files sent by other folks in the past. Does this
settle all the questions from back then ?

It was sent couple months ago, you can find the discussion in various
threads, e.g.:
http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html
http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html

http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html

and more.

- armin

>

> Signed-off-by: Randy Li <ayaka@soulik.info>

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++

>  2 files changed, 28 insertions(+), 1 deletion(-)

>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

>

> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc

> deleted file mode 100644

> index 5e832fae6d..0000000000

> --- a/meta/conf/machine/include/arm/arch-armv8.inc

> +++ /dev/null

> @@ -1 +0,0 @@

> -require conf/machine/include/arm/arch-arm64.inc

> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc

> new file mode 100644

> index 0000000000..323d0d7f0f

> --- /dev/null

> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc

> @@ -0,0 +1,28 @@

> +DEFAULTTUNE ?= "armv8a-crc"

> +

> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"

> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"

> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"

> +TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"

> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"

> +

> +require conf/machine/include/arm/arch-arm64.inc

> +

> +# Little Endian base configs

> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"

> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"

> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"

> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"

> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"

> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 2/4/19 6:57 PM, Khem Raj wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20190205025727.1937-1-raj.khem@gmail.com">
      <pre class="moz-quote-pre" wrap="">From: ayaka <a class="moz-txt-link-rfc2396E" href="mailto:ayaka@soulik.info">&lt;ayaka@soulik.info&gt;</a>

There are some addtional instructions apart from bare armv8,
also there is armv8.1, armv8.2.

Most the processor would support crc, except X-gene 1.</pre>
    </blockquote>
    <br>
    We have had these tune files sent by other folks in the past. Does
    this settle all the questions from back then ?<br>
    <br>
    <pre>It was sent couple months ago, you can find the discussion in various
threads, e.g.:
<a href="http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html">http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html</a>
<a href="http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html">http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html</a>

<a class="moz-txt-link-freetext" href="http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html">http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html</a>

and more.

- armin
</pre>
    <blockquote type="cite"
      cite="mid:20190205025727.1937-1-raj.khem@gmail.com">
      <pre class="moz-quote-pre" wrap="">

Signed-off-by: Randy Li <a class="moz-txt-link-rfc2396E" href="mailto:ayaka@soulik.info">&lt;ayaka@soulik.info&gt;</a>

Signed-off-by: Khem Raj <a class="moz-txt-link-rfc2396E" href="mailto:raj.khem@gmail.com">&lt;raj.khem@gmail.com&gt;</a>

---
 meta/conf/machine/include/arm/arch-armv8.inc  |  1 -
 meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)
 delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
deleted file mode 100644
index 5e832fae6d..0000000000
--- a/meta/conf/machine/include/arm/arch-armv8.inc
+++ /dev/null
@@ -1 +0,0 @@
-require conf/machine/include/arm/arch-arm64.inc
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
new file mode 100644
index 0000000000..323d0d7f0f
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -0,0 +1,28 @@
+DEFAULTTUNE ?= "armv8a-crc"
+
+TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
+TUNE_CCARGS .= <a class="moz-txt-link-rfc2396E" href="mailto:${@bb.utils.contains('TUNE_FEATURES','armv8a','-march=armv8-a','',d)}">"${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"</a>
+TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
+TUNE_CCARGS .= <a class="moz-txt-link-rfc2396E" href="mailto:${@bb.utils.contains('TUNE_FEATURES','simd','+simd','',d)}">"${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"</a>
+TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
+TUNE_CCARGS .= <a class="moz-txt-link-rfc2396E" href="mailto:${@bb.utils.contains('TUNE_FEATURES','crc','+crc','',d)}">"${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"</a>
+TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"
+TUNE_CCARGS .= <a class="moz-txt-link-rfc2396E" href="mailto:${@bb.utils.contains('TUNE_FEATURES','crypto','+crypto','',d)}">"${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"</a>
+MACHINEOVERRIDES =. <a class="moz-txt-link-rfc2396E" href="mailto:${@bb.utils.contains('TUNE_FEATURES','armv8a','armv8a:','',d)}">"${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"</a>
+
+require conf/machine/include/arm/arch-arm64.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
+ARMPKGARCH_tune-armv8a                    ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
+TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
+TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
+TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
+TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
</pre>
    </blockquote>
    <br>
  </body>
</html>
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Feb. 5, 2019, 5:37 p.m. UTC | #4
On Tue, Feb 5, 2019 at 7:57 AM akuster808 <akuster808@gmail.com> wrote:
>

>

>

> On 2/4/19 6:57 PM, Khem Raj wrote:

>

> From: ayaka <ayaka@soulik.info>

>

> There are some addtional instructions apart from bare armv8,

> also there is armv8.1, armv8.2.

>

> Most the processor would support crc, except X-gene 1.

>

>

> We have had these tune files sent by other folks in the past. Does this settle all the questions from back then ?

>

> It was sent couple months ago, you can find the discussion in various

> threads, e.g.:

> http://lists.openembedded.org/pipermail/openembedded-core/2015-October/111318.html

> http://lists.openembedded.org/pipermail/openembedded-core/2015-November/112907.html

>


these are not relevant here.

> http://lists.openembedded.org/pipermail/openembedded-core/2016-March/118579.html

>


This I have looked at. Eventually, I plan to add aarch32 bit tunes as well
for now, I just want to make aarch64 piece look good with option to
have aarch32 in mind, if there are specific questions I would be
interested to here

> and more.

>

> - armin

>

> Signed-off-by: Randy Li <ayaka@soulik.info>

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++

>  2 files changed, 28 insertions(+), 1 deletion(-)

>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

>

> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc

> deleted file mode 100644

> index 5e832fae6d..0000000000

> --- a/meta/conf/machine/include/arm/arch-armv8.inc

> +++ /dev/null

> @@ -1 +0,0 @@

> -require conf/machine/include/arm/arch-arm64.inc

> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc

> new file mode 100644

> index 0000000000..323d0d7f0f

> --- /dev/null

> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc

> @@ -0,0 +1,28 @@

> +DEFAULTTUNE ?= "armv8a-crc"

> +

> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"

> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"

> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"

> +TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"

> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"

> +

> +require conf/machine/include/arm/arch-arm64.inc

> +

> +# Little Endian base configs

> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"

> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"

> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"

> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"

> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"

> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"

>

>

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Mike Crowe Feb. 23, 2019, 7:37 p.m. UTC | #5
On Monday 04 February 2019 at 18:57:22 -0800, Khem Raj wrote:
> From: ayaka <ayaka@soulik.info>

> 

> There are some addtional instructions apart from bare armv8,

> also there is armv8.1, armv8.2.

> 

> Most the processor would support crc, except X-gene 1.

> 

> Signed-off-by: Randy Li <ayaka@soulik.info>

> Signed-off-by: Khem Raj <raj.khem@gmail.com>

> ---

>  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

>  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++

>  2 files changed, 28 insertions(+), 1 deletion(-)

>  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

>  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

> 

> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc

> deleted file mode 100644

> index 5e832fae6d..0000000000

> --- a/meta/conf/machine/include/arm/arch-armv8.inc

> +++ /dev/null

> @@ -1 +0,0 @@

> -require conf/machine/include/arm/arch-arm64.inc

> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc

> new file mode 100644

> index 0000000000..323d0d7f0f

> --- /dev/null

> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc

> @@ -0,0 +1,28 @@

> +DEFAULTTUNE ?= "armv8a-crc"

> +

> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"

> +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"

> +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"

> +TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"

> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"

> +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"

> +

> +require conf/machine/include/arm/arch-arm64.inc

> +

> +# Little Endian base configs

> +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"

> +ARMPKGARCH_tune-armv8a                    ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"

> +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"

> +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"

> +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"

> +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"

> +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"

> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"

> -- 

> 2.20.1


I believe that this change, along with
6719de403620dded075dc74f2976669d95bffd7a, may have broken multilib for
AArch64. :(

When I enable multilib in local.conf with:

 require conf/multilib.conf
 MULTILIBS = "multilib:lib32"
 DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"

then both the primary target and lib32- packages end up installing stuff
into /usr/lib (and would presumably conflict, if I got as far as installing
them.)

If I revert 6719de403620dded075dc74f2976669d95bffd7a and
d1db78b0e284e1a1f370e71183ded0cbdc1475db then the primary target packages
end up installing stuff in /usr/lib64 as would be expected.

This appears to be because baselib = "lib" rather than "lib64". That in
turn may be because BASE_LIB_tune-armv8a-crc does not exist.

If I apply this patch:

diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
index 323d0d7f0f..649deca61b 100644
--- a/meta/conf/machine/include/arm/arch-armv8a.inc
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -26,3 +26,4 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
 PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"
+BASE_LIB_tune-armv8a-crc = "lib64"

then multilib behaves as it did before. Is this the correct fix?

Thanks.

Mike.
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Khem Raj Feb. 23, 2019, 8:04 p.m. UTC | #6
On Sat, Feb 23, 2019 at 11:37 AM Mike Crowe <mac@mcrowe.com> wrote:
>

> On Monday 04 February 2019 at 18:57:22 -0800, Khem Raj wrote:

> > From: ayaka <ayaka@soulik.info>

> >

> > There are some addtional instructions apart from bare armv8,

> > also there is armv8.1, armv8.2.

> >

> > Most the processor would support crc, except X-gene 1.

> >

> > Signed-off-by: Randy Li <ayaka@soulik.info>

> > Signed-off-by: Khem Raj <raj.khem@gmail.com>

> > ---

> >  meta/conf/machine/include/arm/arch-armv8.inc  |  1 -

> >  meta/conf/machine/include/arm/arch-armv8a.inc | 28 +++++++++++++++++++

> >  2 files changed, 28 insertions(+), 1 deletion(-)

> >  delete mode 100644 meta/conf/machine/include/arm/arch-armv8.inc

> >  create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

> >

> > diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc

> > deleted file mode 100644

> > index 5e832fae6d..0000000000

> > --- a/meta/conf/machine/include/arm/arch-armv8.inc

> > +++ /dev/null

> > @@ -1 +0,0 @@

> > -require conf/machine/include/arm/arch-arm64.inc

> > diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc

> > new file mode 100644

> > index 0000000000..323d0d7f0f

> > --- /dev/null

> > +++ b/meta/conf/machine/include/arm/arch-armv8a.inc

> > @@ -0,0 +1,28 @@

> > +DEFAULTTUNE ?= "armv8a-crc"

> > +

> > +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"

> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"

> > +TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"

> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"

> > +TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"

> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"

> > +TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"

> > +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"

> > +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"

> > +

> > +require conf/machine/include/arm/arch-arm64.inc

> > +

> > +# Little Endian base configs

> > +AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"

> > +ARMPKGARCH_tune-armv8a                    ?= "armv8a"

> > +ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"

> > +ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"

> > +ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"

> > +TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"

> > +TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"

> > +TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"

> > +TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"

> > +PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"

> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"

> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"

> > +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"

> > --

> > 2.20.1

>

> I believe that this change, along with

> 6719de403620dded075dc74f2976669d95bffd7a, may have broken multilib for

> AArch64. :(

>

> When I enable multilib in local.conf with:

>

>  require conf/multilib.conf

>  MULTILIBS = "multilib:lib32"

>  DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"

>

> then both the primary target and lib32- packages end up installing stuff

> into /usr/lib (and would presumably conflict, if I got as far as installing

> them.)

>

> If I revert 6719de403620dded075dc74f2976669d95bffd7a and

> d1db78b0e284e1a1f370e71183ded0cbdc1475db then the primary target packages

> end up installing stuff in /usr/lib64 as would be expected.

>

> This appears to be because baselib = "lib" rather than "lib64". That in

> turn may be because BASE_LIB_tune-armv8a-crc does not exist.

>

> If I apply this patch:

>

> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc

> index 323d0d7f0f..649deca61b 100644

> --- a/meta/conf/machine/include/arm/arch-armv8a.inc

> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc

> @@ -26,3 +26,4 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"

>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"

>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"

>  PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"

> +BASE_LIB_tune-armv8a-crc = "lib64"

>

> then multilib behaves as it did before. Is this the correct fix?


it is in right direction, while you are at it also add it for other armv8 tunes

BASE_LIB_tune-armv8a                    = "lib64"
BASE_LIB_tune-armv8a-crc                = "lib64"
BASE_LIB_tune-armv8a-crypto             = "lib64"
BASE_LIB_tune-armv8a-crc-crypto         = "lib64"

>

> Thanks.

>

> Mike.

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff mbox series

Patch

diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
deleted file mode 100644
index 5e832fae6d..0000000000
--- a/meta/conf/machine/include/arm/arch-armv8.inc
+++ /dev/null
@@ -1 +0,0 @@ 
-require conf/machine/include/arm/arch-arm64.inc
diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
new file mode 100644
index 0000000000..323d0d7f0f
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -0,0 +1,28 @@ 
+DEFAULTTUNE ?= "armv8a-crc"
+
+TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', ' -march=armv8-a', '', d)}"
+TUNEVALID[simd] = "Enable instructions for ARMv8-a Advanced SIMD and floating-point"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'simd', '+simd', '', d)}"
+TUNEVALID[crc] = "Enable instructions for ARMv8-a Cyclic Redundancy Check (CRC)"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crc', '+crc', '', d)}"
+TUNEVALID[crypto] = "Enable instructions for ARMv8-a cryptographic"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'crypto', '+crypto', '', d)}"
+MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 'armv8a:', '' ,d)}"
+
+require conf/machine/include/arm/arch-arm64.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8a armv8a-crc armv8a-crc-crypto armv8a-crypto"
+ARMPKGARCH_tune-armv8a                    ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc                ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crypto             ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-crypto         ?= "armv8a"
+TUNE_FEATURES_tune-armv8a                  = "aarch64 armv8a simd"
+TUNE_FEATURES_tune-armv8a-crc              = "${TUNE_FEATURES_tune-armv8a} crc"
+TUNE_FEATURES_tune-armv8a-crypto           = "${TUNE_FEATURES_tune-armv8a} crypto"
+TUNE_FEATURES_tune-armv8a-crc-crypto       = "${TUNE_FEATURES_tune-armv8a-crc} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a            = "aarch64 armv8a simd"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc        = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto     = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} crypto"