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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to