This is related RFC patch just sent to oe-core ML:
https://lists.openembedded.org/g/openembedded-core/message/204110

On Mon, Sep 2, 2024 at 6:27 PM Martin Jansa <[email protected]> wrote:
>
> * fixes:
>   ERROR: lib32-python3-matplotlib-3.7.2-r0 do_package_qa: QA Issue: File 
> /usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so
>  in package lib32-python3-matplotlib contains reference to TMPDIR [buildpaths]
>
> * there is native RSS already but only in -fdebug-prefix-map
>
> * it fails only with multilib where target RSS isn't substring of native RSS
>
> * comparing _tri.cpython-312-*-linux-gnu.so cmdline for regular x86-64 and 
> lib32-python3-matplotlib i586 build shows:
>
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
>  \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
>  \
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
>  \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/python3-matplotlib/3.7.2
>  \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
>  \
> --fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
>  \
> --fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot-native=
>  \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
>  \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
>  \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
>  \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/matplotlib-3.7.2=/usr/src/debug/lib32-python3-matplotlib/3.7.2
>  \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot=
>  \
> +-fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/lib32-recipe-sysroot=
>  \
> +-fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native=
>  \
>
> * the buildpaths are header files from native pybind11 (Pybind11Extension)
>   https://github.com/pybind/pybind11/blob/master/pybind11/setup_helpers.py#L89
>
> $ strings 
> package/usr/lib/python3.12/site-packages/matplotlib/_tri.cpython-312-i386-linux-gnu.so
>  | grep oemllib32
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/common.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/../pytypes.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/../detail/type_caster_base.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> /OE/build/oe-core/tmp-glibc/work/i586-oemllib32-linux/lib32-python3-matplotlib/3.7.2/recipe-sysroot-native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
>
> * I'm not familiar enough with pybind11 to find a way how to configure it to
>   use correct include dir, the issue already exists in regular x86-64 dir, but
>   not caught by buildpaths, because, the:
>   
> -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/python3-matplotlib/3.7.2/recipe-sysroot=
>   is enought to mangle the hardcoded paths (leaving only '-native') like this:
>
> strings 
> ../3.7.2-x86-64/package/usr/lib64/python3.12/site-packages/matplotlib/_tri.cpython-312-x86_64-linux-gnu.so
>  | grep pybind11/include/pybind11
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pytypes.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/detail/type_caster_base.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil.h
> -native/usr/lib/python3.12/site-packages/pybind11/include/pybind11/gil_safe_call_once.h
>
> * there is also:
>   WARNING: lib32-python3-matplotlib-3.7.2-r0 do_check_backend: QA Issue: 
> inherits setuptools3 but has pyproject.toml with setuptools.build_meta, use 
> the correct class [pep517-backend]
>   but just changing the inherit doesn't work in this case, I'll leave that
>   to someone actually using python3-matplotlib
>
> Signed-off-by: Martin Jansa <[email protected]>
> ---
>  .../recipes-devtools/python/python3-matplotlib_3.7.2.bb      | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb 
> b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> index 72c369100a..2886060a9e 100644
> --- a/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> +++ b/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
> @@ -68,3 +68,8 @@ do_compile:prepend() {
>  }
>
>  BBCLASSEXTEND = "native"
> +
> +# otherwise pybind11 paths from STAGING_DIR_NATIVE end in 
> _tri.cpython-312-i386-linux-gnu.so
> +# when STAGING_DIR_NATIVE doesn't start with STAGING_DIR_HOST (e.g. for 
> lib32-python3-matplotlib)
> +# http://errors.yoctoproject.org/Errors/Details/801217/
> +DEBUG_PREFIX_MAP:append = " -fmacro-prefix-map=${STAGING_DIR_NATIVE}="
> --
> 2.46.0
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#112075): 
https://lists.openembedded.org/g/openembedded-devel/message/112075
Mute This Topic: https://lists.openembedded.org/mt/108229723/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to