I just sent a patch. Can you try it?

Alex

On Mon, 14 Nov 2022 at 13:17, Alexander Kanavin via
lists.openembedded.org <alex.kanavin=gmail....@lists.openembedded.org>
wrote:
>
> Okay, I figured out what is happening here. There are two issues:
>
> 1. llvm-config is placed into the target sysroot (by mesa recipe),
> without adjusting rpath to point to the native sysroot. This may work
> if native and target are both x86, but will fail if they are not, or
> if the native and target use different libdir paths (e.g. lib and
> lib64). It needs to be able to find libraries from the native sysroot.
>
> 2. llvm-config hardcodes the lib location inside of itself to
> lib+LLVM_LIBDIR_SUFFIX. This one is harder to solve, as llvm-config
> should be built once, and must be reusable between target builds, even
> if those builds have different lib suffixes. What we can do is adjust
> llvm-config wrapper (one in crossscripts) to have more special-cases.
> Maybe this will even make installing llvm-config native binary into
> target bindir unnecessary.
>
> I'll try to come up with a patchset.
>
> Alex
>
> On Mon, 14 Nov 2022 at 01:40, Vincent Davis Jr <vi...@underview.tech> wrote:
> >
> > To answer second question. When you don't include
> >
> > EXTRA_OECMAKE:append:class-native = "\
> >      -DLLVM_LIBDIR_SUFFIX=64 \
> >      "
> >
> > meson configure fails with
> > ....
> > ....
> > ....
> > | llvm-config found: YES 
> > (/../../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/bin/crossscripts/llvm-config15.0.1)
> >  15.0.1
> > | Run-time dependency LLVM (modules: amdgpu, asmparser, bitreader, 
> > bitwriter, core, engine, executionengine, instcombine, ipo, mcdisassembler, 
> > mcjit, native, scalaropts, transformutils, coroutines) found: NO (tried 
> > cmake and config-tool)
> > | Building fallback subproject with default_library=shared
> > |
> > | ../mesa-22.2.2/meson.build:1783:2: ERROR: Neither a subproject directory 
> > nor a llvm.wrap file was found.
> > |
> > | A full log can be found at 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/build/meson-logs/meson-log.txt
> > ....
> > ....
> > ....
> >
> > Now if you
> >
> > $ cat < 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/build/meson-logs/meson-log.txt
> >
> > You see
> >
> > llvm-config found: YES 
> > (/../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/bin/crossscripts/llvm-config15.0.1)
> >  15.0.1
> > llvm-config --shared-mode returned an error
> > Run-time dependency LLVM (modules: amdgpu, asmparser, bitreader, bitwriter, 
> > core, engine, executionengine, instcombine, ipo, mcdisassembler, mcjit, 
> > native, scalaropts, transformutils, coroutines) found: NO (tried cmake and 
> > config-tool)
> >
> > Now run llvm-config --shared-mode directly you see
> >
> > $ llvm-config --shared-mode
> > llvm-config: error: component libraries and shared library
> > ....
> > ....
> > ....
> > ....
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMMCParser.a
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMTextAPI.a
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMObject.a
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMDebugInfoDWARF.a
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMDebugInfoMSF.a
> > llvm-config: error: missing: 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib/libLLVMDebugInfoPDB.a
> > ....
> > ....
> > ....
> > ....
> >
> >
> > ../mesa/2_22.2.2-r0/mesa-22.2.2# llvm-config --libdir
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr/lib
> >
> > ../mesa/2_22.2.2-r0/mesa-22.2.2# ls 
> > /../../.../../../../../../../tmp/work/amd64-northstar-linux/mesa/2_22.2.2-r0/recipe-sysroot/usr
> > bin  include  lib64  share
> >
> > That folder doesn't exists for me.
> >
> > Also another false statement on my end its llvm-config that hard sets 
> > directory where to load libs.
> > mesa never calls llvm-config --libdir.
> >
> >
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#173241): 
https://lists.openembedded.org/g/openembedded-core/message/173241
Mute This Topic: https://lists.openembedded.org/mt/94995332/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to