* 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 (#112074): 
https://lists.openembedded.org/g/openembedded-devel/message/112074
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