On 9/10/20 10:11 AM, Jon Mason wrote: > On Thu, Sep 10, 2020 at 12:57 AM Mark Hatle > <mark.ha...@kernel.crashing.org> wrote: >> >> >> >> On 9/9/20 6:29 PM, Jon Mason wrote: >>> On Wed, Sep 9, 2020 at 6:55 PM Mark Hatle >>> <mark.ha...@kernel.crashing.org> wrote: >>>> >>>> >>>> >>>> On 9/9/20 5:45 PM, Jon Mason wrote: >>>>> Set BASE_LIB for all arm64 systems to be lib64 by default. This can be >>>>> overridden for those that want something else (see tune-cortexa32.inc). >>>>> >>>>> Signed-off-by: Jon Mason <jon.ma...@arm.com> >>>>> --- >>>>> meta/conf/machine/include/arm/arch-arm64.inc | 3 +-- >>>>> meta/conf/machine/include/arm/arch-armv8-2a.inc | 2 -- >>>>> meta/conf/machine/include/arm/arch-armv8a.inc | 4 ---- >>>>> meta/conf/machine/include/tune-cortexa32.inc | 1 + >>>>> meta/conf/machine/include/tune-cortexa35.inc | 2 -- >>>>> meta/conf/machine/include/tune-cortexa53.inc | 2 -- >>>>> meta/conf/machine/include/tune-cortexa55.inc | 1 - >>>>> meta/conf/machine/include/tune-cortexa57-cortexa53.inc | 1 - >>>>> meta/conf/machine/include/tune-cortexa57.inc | 2 -- >>>>> meta/conf/machine/include/tune-cortexa72-cortexa53.inc | 2 -- >>>>> meta/conf/machine/include/tune-cortexa72.inc | 1 - >>>>> meta/conf/machine/include/tune-cortexa73-cortexa53.inc | 2 -- >>>>> 12 files changed, 2 insertions(+), 21 deletions(-) >>>>> >>>>> diff --git a/meta/conf/machine/include/arm/arch-arm64.inc >>>>> b/meta/conf/machine/include/arm/arch-arm64.inc >>>>> index 6d5b22fff081..8c3764186ec4 100644 >>>>> --- a/meta/conf/machine/include/arm/arch-arm64.inc >>>>> +++ b/meta/conf/machine/include/arm/arch-arm64.inc >>>>> @@ -1,4 +1,5 @@ >>>>> DEFAULTTUNE ?= "aarch64" >>>>> +BASE_LIB ?= "lib64" >>>> >>>> Does this work? The default multilib behavior is: >>>> >>>> multilib.conf:baselib = "${@d.getVar('BASE_LIB_tune-' + >>>> (d.getVar('DEFAULTTUNE') >>>> or 'INVALID')) or d.getVar('BASELIB')}" >>>> >>>> bitbake.conf:baselib = "${BASELIB}" >>>> bitbake.conf:BASELIB = "lib" >>>> bitbake.conf:BASELIB_powerpc64 = "lib64" >>>> bitbake.conf:BASELIB_powerpc64le = "lib64" >>>> >>>> is what has been defined in the bitbake.conf file. >>>> >>>> Idea being in the 'normal' (not-multilib) case, 'baselib' (which what is >>>> used) >>>> gets set to 'BASELIB'. Only PowerPC 64 has a hard coded 'lib64'. Every >>>> other >>>> architecture is considered to be variable, unless defined in the tune. >>>> (The two >>>> PowerPC settings really should be in a PPC tune file.) >>>> >>>> So IF the multilib.conf is enabled, it's going to look for >>>> BASE_LIB_tune-.... >>>> and then BASELIB, but it won't look at 'BASE_LIB'. >>> >>> It depends on what "work" is defined as :) >>> I did build, boot, and run testimage on it (with issue). But I'm >>> probably not hitting the multilib issue you are describing. Honestly, >>> I don't understand it and needed to spend more time than I did (based >>> on your comments). I like the removal of lines to simplify it, but I >>> need to do some more reading on it. I'll drop this patch and come >>> back to the underlying problem at some point in the future. >> >> (This is from memory, so it may not be right) >> >> In your local.conf: >> >> MULTILIBS = "multilib:lib32" >> require conf/multilib.conf >> >> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7vethf" >> MACHINE = "qemuarm64" >> >> Then add something like "lib32-glibc" as a dependency to your image. > > This is building, booting, and passing testimage for me. It's > possible I screwed something up (weird that a screwup would make > things work though).
Boot the image and verify that both /lib and /lib32 are there and populated by the libc. If they are then it likely works. --Mark > Thanks, > Jon > >> --Mark >> >>> Thanks, >>> Jon >>> >>>>> require conf/machine/include/arm/arch-armv7ve.inc >>>>> >>>>> @@ -14,8 +15,6 @@ TUNE_FEATURES_tune-aarch64 = "aarch64" >>>>> TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian" >>>>> TUNE_PKGARCH_64_tune-aarch64 = "aarch64" >>>>> TUNE_PKGARCH_64_tune-aarch64_be = "aarch64_be" >>>>> -BASE_LIB_tune-aarch64 = "lib64" >>>>> -BASE_LIB_tune-aarch64_be = "lib64" >>>> >>>> This was originally done like this to enable multilib, as BASE_LIB needs >>>> to be >>>> configured per multilib. (I don't know if it's really necessary any >>>> longer.) >>>> >>>> Note the other 32/64 bit architecture are still implemented like this. >>>> >>>> There was also talk at the time of different lib dirs for little and big >>>> endian, >>>> but I never saw that actually happen. >>>> >>>> We also wanted a way to build optimized libraries, like some >>>> distributions, that >>>> are optimized for specific tunings and place those into non-conflicting >>>> directories. But again, AFAIK nobody actually did it and I' not sure it >>>> actually works. >>>> >>>> And for the record BASE_LIB is documented in the tune README as: >>>> >>>> BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI. This is >>>> used in a multilib configuration to place the libraries in the correct, >>>> non-conflicting locations. >>>> >>>>> PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64" >>>>> PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be" >>>>> diff --git a/meta/conf/machine/include/arm/arch-armv8-2a.inc >>>>> b/meta/conf/machine/include/arm/arch-armv8-2a.inc >>>>> index 1c095256d185..b40ebf176e43 100644 >>>>> --- a/meta/conf/machine/include/arm/arch-armv8-2a.inc >>>>> +++ b/meta/conf/machine/include/arm/arch-armv8-2a.inc >>>>> @@ -15,5 +15,3 @@ TUNE_FEATURES_tune-armv8-2a = "aarch64 >>>>> armv8-2a" >>>>> TUNE_FEATURES_tune-armv8-2a-crypto = >>>>> "${TUNE_FEATURES_tune-armv8-2a} crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-armv8-2a = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8-2a" >>>>> PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a} armv8-2a-crypto" >>>>> -BASE_LIB_tune-armv8-2a = "lib64" >>>>> -BASE_LIB_tune-armv8-2a-crypto = "lib64" >>>>> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc >>>>> b/meta/conf/machine/include/arm/arch-armv8a.inc >>>>> index f810a1e8fc98..5584005f7009 100644 >>>>> --- a/meta/conf/machine/include/arm/arch-armv8a.inc >>>>> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc >>>>> @@ -24,7 +24,3 @@ PACKAGE_EXTRA_ARCHS_tune-armv8a = "aarch64 >>>>> armv8a" >>>>> PACKAGE_EXTRA_ARCHS_tune-armv8a-crc = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc" >>>>> PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} armv8a-crypto armv8a-crc-crypto" >>>>> -BASE_LIB_tune-armv8a = "lib64" >>>>> -BASE_LIB_tune-armv8a-crc = "lib64" >>>>> -BASE_LIB_tune-armv8a-crypto = "lib64" >>>>> -BASE_LIB_tune-armv8a-crc-crypto = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa32.inc >>>>> b/meta/conf/machine/include/tune-cortexa32.inc >>>>> index 0ffb3e068855..78dab8bed6e1 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa32.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa32.inc >>>>> @@ -14,5 +14,6 @@ TUNE_FEATURES_tune-cortexa32 = "armv8a >>>>> cortexa32 crc" >>>>> TUNE_FEATURES_tune-cortexa32-crypto = "${TUNE_FEATURES_tune-cortexa32} >>>>> crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa32 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa32" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa32-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa32 cortexa32-crypto" >>>>> +# Cortex-A32 is 32bit only >>>>> BASE_LIB_tune-cortexa32 = "lib" >>>>> BASE_LIB_tune-cortexa32-crypto = "lib" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa35.inc >>>>> b/meta/conf/machine/include/tune-cortexa35.inc >>>>> index 61696da540cc..80825972b612 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa35.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa35.inc >>>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa35 = "aarch64 >>>>> cortexa35 crc" >>>>> TUNE_FEATURES_tune-cortexa35-crypto = "${TUNE_FEATURES_tune-cortexa35} >>>>> crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa35 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa35" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa35-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto" >>>>> -BASE_LIB_tune-cortexa35 = "lib64" >>>>> -BASE_LIB_tune-cortexa35-crypto = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa53.inc >>>>> b/meta/conf/machine/include/tune-cortexa53.inc >>>>> index 79ce7c4b1c21..385c2d225777 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa53.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa53.inc >>>>> @@ -14,5 +14,3 @@ TUNE_FEATURES_tune-cortexa53-crypto = >>>>> "${TUNE_FEATURES_tune-cortexa53} crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa53 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto" >>>>> >>>>> -BASE_LIB_tune-cortexa53 = "lib64" >>>>> -BASE_LIB_tune-cortexa53-crypto = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa55.inc >>>>> b/meta/conf/machine/include/tune-cortexa55.inc >>>>> index 66a5d0c437ee..099b6d72851a 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa55.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa55.inc >>>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa55" >>>>> ARMPKGARCH_tune-cortexa55 = "cortexa55" >>>>> TUNE_FEATURES_tune-cortexa55 = "aarch64 cortexa55 crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa55 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8-2a-crypto} cortexa55" >>>>> -BASE_LIB_tune-cortexa55 = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc >>>>> b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc >>>>> index 5880bf203231..02691d0deee2 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa57-cortexa53.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa57-cortexa53.inc >>>>> @@ -12,4 +12,3 @@ AVAILTUNES += "cortexa57-cortexa53" >>>>> ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53" >>>>> TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 crc >>>>> cortexa57-cortexa53" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57-cortexa53" >>>>> -BASE_LIB_tune-cortexa57-cortexa53 = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa57.inc >>>>> b/meta/conf/machine/include/tune-cortexa57.inc >>>>> index 3206ce75a6b6..868939ca10c7 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa57.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa57.inc >>>>> @@ -13,5 +13,3 @@ TUNE_FEATURES_tune-cortexa57 = "aarch64 >>>>> cortexa57 crc" >>>>> TUNE_FEATURES_tune-cortexa57-crypto = "${TUNE_FEATURES_tune-cortexa57} >>>>> crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa57 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto" >>>>> -BASE_LIB_tune-cortexa57 = "lib64" >>>>> -BASE_LIB_tune-cortexa57-crypto = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc >>>>> b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc >>>>> index feb1df5c178d..34aaa6cc72a7 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa72-cortexa53.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa72-cortexa53.inc >>>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa72-cortexa53 = >>>>> "aarch64 crc cortexa72-co >>>>> TUNE_FEATURES_tune-cortexa72-cortexa53-crypto = >>>>> "${TUNE_FEATURES_tune-cortexa72-cortexa53} crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa72-cortexa53" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 >>>>> cortexa72-cortexa53-crypto" >>>>> -BASE_LIB_tune-cortexa72-cortexa53 = "lib64" >>>>> -BASE_LIB_tune-cortexa72-cortexa53-crypto = "lib64" >>>>> >>>>> diff --git a/meta/conf/machine/include/tune-cortexa72.inc >>>>> b/meta/conf/machine/include/tune-cortexa72.inc >>>>> index 00f7745a22fd..f0f76cad14db 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa72.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa72.inc >>>>> @@ -10,4 +10,3 @@ AVAILTUNES += "cortexa72" >>>>> ARMPKGARCH_tune-cortexa72 = "cortexa72" >>>>> TUNE_FEATURES_tune-cortexa72 = "aarch64 cortexa72 crc crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa72 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72" >>>>> -BASE_LIB_tune-cortexa72 = "lib64" >>>>> diff --git a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc >>>>> b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc >>>>> index 1c221999f408..6da93ffac0b7 100644 >>>>> --- a/meta/conf/machine/include/tune-cortexa73-cortexa53.inc >>>>> +++ b/meta/conf/machine/include/tune-cortexa73-cortexa53.inc >>>>> @@ -15,6 +15,4 @@ TUNE_FEATURES_tune-cortexa73-cortexa53 = >>>>> "aarch64 crc cortexa73-co >>>>> TUNE_FEATURES_tune-cortexa73-cortexa53-crypto = >>>>> "${TUNE_FEATURES_tune-cortexa73-cortexa53} crypto" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53 = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa73-cortexa53" >>>>> PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto = >>>>> "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 >>>>> cortexa73-cortexa53-crypto" >>>>> -BASE_LIB_tune-cortexa73-cortexa53 = "lib64" >>>>> -BASE_LIB_tune-cortexa73-cortexa53-crypto = "lib64" >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#142414): https://lists.openembedded.org/g/openembedded-core/message/142414 Mute This Topic: https://lists.openembedded.org/mt/76744239/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-