On 2023-05-04 19:13, Frederic Martinsons wrote:
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
An example to illustrate:
$ cat main.c
#include "my-include.h"
int main(void) {
return 0;
}
$ tree dir1
dir1
└── dir2
└── my-include.h
1 directory, 1 file
$ gcc main.c
main.c:1:10: fatal error: my-include.h: No such file or directory
1 | #include "my-include.h"
| ^~~~~~~~~~~~~~
compilation terminated.
$ gcc -I dir1/dir2 main.c
$ gcc --sysroot=$PWD/dir1 -I dir2 main.c
main.c:1:10: fatal error: my-include.h: No such file or directory
1 | #include "my-include.h"
| ^~~~~~~~~~~~~~
compilation terminated.
$ gcc --sysroot=$PWD/dir1 -I =/dir2 main.c
$ gcc --sysroot=$PWD/dir1 -I \$SYSROOT/dir2 main.c
/Peter
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#180886):
https://lists.openembedded.org/g/openembedded-core/message/180886
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]
-=-=-=-=-=-=-=-=-=-=-=-