diff mbox series

[meta-python,2/2] python3-pybind11: Restore strip prevention patch

Message ID 20240226114154.1033676-2-niko.mauno@vaisala.com
State Accepted
Headers show
Series [meta-python,1/2] python3-pybind11: Migrate to python_setuptools_build_meta | expand

Commit Message

Niko Mauno Feb. 26, 2024, 11:41 a.m. UTC
From: Niko Mauno <niko.mauno@vaisala.com>

The patch which removed the pybind11_strip() call from provisioned
pybind11*Tools.cmake files was dropped in commit
5c455804aede17e0ea0cbb7ab55f8580f912e664 ("python3-pybind11: Upgrade
to 2.10.3").

However this change delegated the requirement to set CMAKE_BUILD_TYPE
as 'Debug' or 'RelWithDebInfo' (or as unset) to the cmake utilizing
packages which have build time dependency on python3-pybind11, failure
to do which causes following kind of BitBake failure with Yocto:

  ERROR: foobar-1.0.0-r0 do_package: QA Issue: File '/usr/lib/python3.11/site-packages/foobar.so' from foobar was already stripped, this will prevent future debugging! [already-stripped]

Restore the patch so that the stripping is delegated to Yocto once
more, allowing depending cmake packages to work out of the box also
when they use 'Release' or 'MinSizeRel' as CMAKE_BUILD_TYPE by
default.

Signed-off-by: Joonas Salonpää <joonas.salonpaa@vaisala.com>
Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
---
 .../0001-Do-not-strip-binaries.patch          | 52 +++++++++++++++++++
 .../python/python3-pybind11_2.11.1.bb         |  5 +-
 2 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
new file mode 100644
index 000000000..37cb78a30
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybind11/0001-Do-not-strip-binaries.patch
@@ -0,0 +1,52 @@ 
+From debd676cd94f92a30b3be45f1245aa13d8c398c0 Mon Sep 17 00:00:00 2001
+From: Philip Balister <philip@balister.org>
+Date: Wed, 8 Jul 2020 09:41:43 -0400
+Subject: [PATCH] Do not strip binaries.
+
+ * OpenEmbedded strips them after creating debug packages.
+
+Signed-off-by: Philip Balister <philip@balister.org>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ tools/pybind11NewTools.cmake | 7 -------
+ tools/pybind11Tools.cmake    | 6 ------
+ 2 files changed, 13 deletions(-)
+
+diff --git a/tools/pybind11NewTools.cmake b/tools/pybind11NewTools.cmake
+index 7d7424a7..accd90c4 100644
+--- a/tools/pybind11NewTools.cmake
++++ b/tools/pybind11NewTools.cmake
+@@ -233,13 +233,6 @@ function(pybind11_add_module target_name)
+     endif()
+   endif()
+ 
+-  # Use case-insensitive comparison to match the result of $<CONFIG:cfgs>
+-  string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+-  if(NOT MSVC AND NOT "${uppercase_CMAKE_BUILD_TYPE}" MATCHES DEBUG|RELWITHDEBINFO)
+-    # Strip unnecessary sections of the binary on Linux/macOS
+-    pybind11_strip(${target_name})
+-  endif()
+-
+   if(MSVC)
+     target_link_libraries(${target_name} PRIVATE pybind11::windows_extras)
+   endif()
+diff --git a/tools/pybind11Tools.cmake b/tools/pybind11Tools.cmake
+index 66ad00a4..855ede41 100644
+--- a/tools/pybind11Tools.cmake
++++ b/tools/pybind11Tools.cmake
+@@ -212,12 +212,6 @@ function(pybind11_add_module target_name)
+     endif()
+   endif()
+ 
+-  # Use case-insensitive comparison to match the result of $<CONFIG:cfgs>
+-  string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+-  if(NOT MSVC AND NOT "${uppercase_CMAKE_BUILD_TYPE}" MATCHES DEBUG|RELWITHDEBINFO)
+-    pybind11_strip(${target_name})
+-  endif()
+-
+   if(MSVC)
+     target_link_libraries(${target_name} PRIVATE pybind11::windows_extras)
+   endif()
+-- 
+2.39.2
+
diff --git a/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
index 13f63b7c6..78662fe3c 100644
--- a/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
@@ -8,7 +8,10 @@  DEPENDS = "\
 "
 
 SRCREV = "8a099e44b3d5f85b20f05828d919d2332a8de841"
-SRC_URI = "git://github.com/pybind/pybind11.git;branch=stable;protocol=https"
+SRC_URI = "\
+    git://github.com/pybind/pybind11.git;branch=stable;protocol=https \
+    file://0001-Do-not-strip-binaries.patch \
+"
 
 S = "${WORKDIR}/git"