diff mbox series

[meta-oe] thin-provisioning-tools: use STAGING_LIBDIR_NATIVE variable for LIBCLANG_PATH

Message ID 20250303191621.2421906-1-martin.jansa@gmail.com
State Accepted
Headers show
Series [meta-oe] thin-provisioning-tools: use STAGING_LIBDIR_NATIVE variable for LIBCLANG_PATH | expand

Commit Message

Martin Jansa March 3, 2025, 7:16 p.m. UTC
* hardcoding:
  ${WORKDIR}/recipe-sysroot-native${libdir}
  is just wrong when there is a better variable

* This path won't be correct for multilib builds where target ${libdir}
  might be e.g. /usr/lib32 while native libdir is /usr/lib.

* use STAGING_LIBDIR_NATIVE variable which uses correct ${libdir_native}

* fixes:
  error: failed to run custom build command for `devicemapper-sys v0.3.0`

  Caused by:
    process didn't exit successfully: `lib32-thin-provisioning-tools/1.1.0/build/target/release/build/devicemapper-sys-88de590bc55acb43/build-script-build` (exit status: 101)
    --- stderr
    thread 'main' panicked at lib32-thin-provisioning-tools/1.1.0/sources-unpack/cargo_home/bitbake/bindgen-0.69.4/lib.rs:622:31:
    Unable to find libclang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-*.so', 'libclang.so.*', 'libclang-*.so.*'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
---
 .../thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Khem Raj March 3, 2025, 7:27 p.m. UTC | #1
On Mon, Mar 3, 2025 at 11:16 AM Martin Jansa via lists.openembedded.org
<martin.jansa=gmail.com@lists.openembedded.org> wrote:

> * hardcoding:
>   ${WORKDIR}/recipe-sysroot-native${libdir}
>   is just wrong when there is a better variable
>
> * This path won't be correct for multilib builds where target ${libdir}
>   might be e.g. /usr/lib32 while native libdir is /usr/lib.
>
> * use STAGING_LIBDIR_NATIVE variable which uses correct ${libdir_native}
>
> * fixes:
>   error: failed to run custom build command for `devicemapper-sys v0.3.0`
>
>   Caused by:
>     process didn't exit successfully:
> `lib32-thin-provisioning-tools/1.1.0/build/target/release/build/devicemapper-sys-88de590bc55acb43/build-script-build`
> (exit status: 101)
>     --- stderr
>     thread 'main' panicked at
> lib32-thin-provisioning-tools/1.1.0/sources-unpack/cargo_home/bitbake/bindgen-0.69.4/lib.rs:622
> :31:
>     Unable to find libclang: "couldn't find any valid shared libraries
> matching: ['libclang.so', 'libclang-*.so', 'libclang.so.*',
> 'libclang-*.so.*'], set the `LIBCLANG_PATH` environment variable to a path
> where one of these files can be found (invalid: [])"
>
> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> ---
>  .../thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb    | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git
> a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/
> thin-provisioning-tools_1.1.0.bb
> b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/
> thin-provisioning-tools_1.1.0.bb
> index d0241c7016..1981a35934 100644
> ---
> a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/
> thin-provisioning-tools_1.1.0.bb
> +++
> b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/
> thin-provisioning-tools_1.1.0.bb
> @@ -20,7 +20,7 @@ inherit pkgconfig
>
>  DEPENDS += "udev libdevmapper libdevmapper-native clang-native"
>
> -export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
> +export LIBCLANG_PATH = "${STAGING_LIBDIR_NATIVE}"


Ah yes I had a hunch it will fail some usecases that’s for patch


>  export BINDGEN_EXTRA_CLANG_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}
> --target=${TARGET_SYS}"
>
>  require ${BPN}-crates.inc
> --
> 2.48.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#115729):
> https://lists.openembedded.org/g/openembedded-devel/message/115729
> Mute This Topic: https://lists.openembedded.org/mt/111495180/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Martin Jansa March 7, 2025, 6:30 a.m. UTC | #2
On Mon, Mar 3, 2025 at 8:27 PM Khem Raj <raj.khem@gmail.com> wrote:
>
>
>
> On Mon, Mar 3, 2025 at 11:16 AM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote:
>>
>> * hardcoding:
>>   ${WORKDIR}/recipe-sysroot-native${libdir}
>>   is just wrong when there is a better variable
>>
>> * This path won't be correct for multilib builds where target ${libdir}
>>   might be e.g. /usr/lib32 while native libdir is /usr/lib.
>>
>> * use STAGING_LIBDIR_NATIVE variable which uses correct ${libdir_native}
>>
>> * fixes:
>>   error: failed to run custom build command for `devicemapper-sys v0.3.0`
>>
>>   Caused by:
>>     process didn't exit successfully: `lib32-thin-provisioning-tools/1.1.0/build/target/release/build/devicemapper-sys-88de590bc55acb43/build-script-build` (exit status: 101)
>>     --- stderr
>>     thread 'main' panicked at lib32-thin-provisioning-tools/1.1.0/sources-unpack/cargo_home/bitbake/bindgen-0.69.4/lib.rs:622:31:
>>     Unable to find libclang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-*.so', 'libclang.so.*', 'libclang-*.so.*'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"
>>
>> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>> ---
>>  .../thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb    | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>> index d0241c7016..1981a35934 100644
>> --- a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>> +++ b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>> @@ -20,7 +20,7 @@ inherit pkgconfig
>>
>>  DEPENDS += "udev libdevmapper libdevmapper-native clang-native"
>>
>> -export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
>> +export LIBCLANG_PATH = "${STAGING_LIBDIR_NATIVE}"
>
>
> Ah yes I had a hunch it will fail some usecases that’s for patch

Is there a reason why this change wasn't included in your master-next
branch yet?

Robert confirmed it in the other thread.
Robert Yang March 7, 2025, 6:32 a.m. UTC | #3
On 3/7/25 14:30, Martin Jansa wrote:
> On Mon, Mar 3, 2025 at 8:27 PM Khem Raj <raj.khem@gmail.com> wrote:
>>
>>
>>
>> On Mon, Mar 3, 2025 at 11:16 AM Martin Jansa via lists.openembedded.org <martin.jansa=gmail.com@lists.openembedded.org> wrote:
>>>
>>> * hardcoding:
>>>    ${WORKDIR}/recipe-sysroot-native${libdir}
>>>    is just wrong when there is a better variable
>>>
>>> * This path won't be correct for multilib builds where target ${libdir}
>>>    might be e.g. /usr/lib32 while native libdir is /usr/lib.
>>>
>>> * use STAGING_LIBDIR_NATIVE variable which uses correct ${libdir_native}
>>>
>>> * fixes:
>>>    error: failed to run custom build command for `devicemapper-sys v0.3.0`
>>>
>>>    Caused by:
>>>      process didn't exit successfully: `lib32-thin-provisioning-tools/1.1.0/build/target/release/build/devicemapper-sys-88de590bc55acb43/build-script-build` (exit status: 101)
>>>      --- stderr
>>>      thread 'main' panicked at lib32-thin-provisioning-tools/1.1.0/sources-unpack/cargo_home/bitbake/bindgen-0.69.4/lib.rs:622:31:
>>>      Unable to find libclang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-*.so', 'libclang.so.*', 'libclang-*.so.*'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"
>>>
>>> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
>>> ---
>>>   .../thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb    | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>>> index d0241c7016..1981a35934 100644
>>> --- a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>>> +++ b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
>>> @@ -20,7 +20,7 @@ inherit pkgconfig
>>>
>>>   DEPENDS += "udev libdevmapper libdevmapper-native clang-native"
>>>
>>> -export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
>>> +export LIBCLANG_PATH = "${STAGING_LIBDIR_NATIVE}"
>>
>>
>> Ah yes I had a hunch it will fail some usecases that’s for patch
> 
> Is there a reason why this change wasn't included in your master-next
> branch yet?
> 
> Robert confirmed it in the other thread.

Yes, and I can confirm that it can fix the errors you mentioned above.

// Robert
diff mbox series

Patch

diff --git a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
index d0241c7016..1981a35934 100644
--- a/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
+++ b/meta-oe/dynamic-layers/clang-layer/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.1.0.bb
@@ -20,7 +20,7 @@  inherit pkgconfig
 
 DEPENDS += "udev libdevmapper libdevmapper-native clang-native"
 
-export LIBCLANG_PATH = "${WORKDIR}/recipe-sysroot-native${libdir}"
+export LIBCLANG_PATH = "${STAGING_LIBDIR_NATIVE}"
 export BINDGEN_EXTRA_CLANG_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} --target=${TARGET_SYS}"
 
 require ${BPN}-crates.inc