Le jeu. 4 mai 2023, 13:42, Peter Bergin <pe...@berginkonsult.se> a écrit :
> > On 2023-05-04 12:03, Frederic Martinsons wrote: > > > > Le jeu. 4 mai 2023, 11:31, Frédéric Martinsons < > frederic.martins...@gmail.com> a écrit : > >> >> >> On Thu, 4 May 2023 at 11:00, Alexander Kanavin <alex.kana...@gmail.com> >> wrote: >> >>> On Thu, 4 May 2023 at 10:41, Peter Bergin <pe...@berginkonsult.se> >>> wrote: >>> >>> > At >>> > >>> https://github.com/pyca/cryptography/blob/f816b457494e010b655cd7fdcd30e3446f86a703/src/rust/build.rs#L46 >>> > the path to python includes is defined by calling 'python3 -c "import >>> > sysconfig; print(sysconfig.get_path('include'))"' (but from inside >>> > rust). With print-debugging this seems to return the bad string >>> > '/usr/include/python3.11' which is then passed to cc::Build >>> > >>> > I executed this in recipe context: >>> > >>> > do_compile:prepend() { >>> > which python3 >>> > python3 -c "import sysconfig; >>> print(sysconfig.get_path('include'))" >>> > } >>> > >>> > and then I got the correct return value: >>> > >>> > | >>> > >>> /work/yocto/poky/build/tmp/work/core2-64-poky-linux/python3-cryptography/40.0.2-r0/recipe-sysroot-native/usr/bin/python3-native/python3 >>> > | >>> > >>> /work/yocto/poky/build/tmp/work/core2-64-poky-linux/python3-cryptography/40.0.2-r0/recipe-sysroot-native/usr/include/python3.11 >>> >>> This is pointing to the native sysroot in a target build, so it is >>> most likely not actually correct. I believe 'inherit >>> python3targetconfig' may help, as it substitutes most places where >>> native python gets queried by components with target-specific values. >>> >>> Alex >>> >> >> Unless I'm mistaken , in the error message we can see that the compiler >> specified the sysroot correctly (recipe-sysroot and recipe-sysroot-native) >> > > recipe-sysroot and NOT recipe-sysroot-native > > '--sysroot' is specified correct but that is not automatically add search > paths to '-I' directive, if I'm not misreading this: > https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html . When you use > --sysroot with gcc you have to add = or $SYSROOT to your -I directive in > order to add it to search path for headers. With that information I guess > '-I =/usr/lib/python3.11' or '-I \$SYSROOT/usr/lib/python3.11' can work but > '-I /usr/lib/python3.11' will point to your host. > > /Peter > I'm confused by the gcc docs, from the same links you gave: --sysroot=dir Use dir as the logical root directory for headers and libraries. For example, if the compiler normally searches for headers in /usr/include and libraries in /usr/lib, it instead searches dir/usr/include and dir/usr/lib. So I don't know what to think (I never see -I used with '=' or $SYSROOT). I'll try to know more about that for my curiosity >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#180885): https://lists.openembedded.org/g/openembedded-core/message/180885 Mute This Topic: https://lists.openembedded.org/mt/98667212/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-