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 |
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
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
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"><ayaka@soulik.info></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"><ayaka@soulik.info></a> Signed-off-by: Khem Raj <a class="moz-txt-link-rfc2396E" href="mailto:raj.khem@gmail.com"><raj.khem@gmail.com></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
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
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
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 --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"