Remove SHARED from pybind11_add_module#1305
Conversation
|
Seems like a reasonable change to me.
I'm not sure. Let's find out! CI (repos file build: |
|
I guess that means .. it works?! :) |
|
If I understand the CI correctly, then something went wrong in a package on Windows? Do you think that's related to this change? |
Unclear. It may be, because we don't see that same failure in the nightly builds: https://ci.ros2.org/view/nightly/job/nightly_win_rel/3083/ |
|
Damnation. |
|
I would be happy to make this conditional (keep the current one on Windows). |
|
@Mergifyio rebase |
When the module is compiled with `MODULE` (the default), the proper linker flags are added on macOS (specifically `-undefined dynamic_lookup`). Otherwise, `rclpy` segfaults when linked on conda. Is the `SHARED` really necessary? The `pybind11` documentation says: > Specifying `SHARED` will create a more traditional dynamic library which can also be linked from elsewhere. Is anyone linking against this library as a "traditional dynamic library"? Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com>
✅ Branch has been successfully rebased |
732be7e to
182a21b
Compare
|
Pulls: #1305 |
|
Great, now Windows CI seems to be happy, together with all other builds. |
|
Thanks! |
|
do we need to backport this to jazzy ? |
That would permit to fix the macos crashes on conda-forge on vanilla build from sources. On robostack we have a patch for this on both jazzy and humble so we do not strictly need to backport this, but it is beneficial for someone build stock ROS 2 without patches. |
|
I also propagate this changes on other |
|
https://github.com/Mergifyio backport jazzy humble |
✅ Backports have been createdDetails
|
When the module is compiled with `MODULE` (the default), the proper linker flags are added on macOS (specifically `-undefined dynamic_lookup`). Otherwise, `rclpy` segfaults when linked on conda. Is the `SHARED` really necessary? The `pybind11` documentation says: > Specifying `SHARED` will create a more traditional dynamic library which can also be linked from elsewhere. Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com> (cherry picked from commit 7fb093b)
When the module is compiled with `MODULE` (the default), the proper linker flags are added on macOS (specifically `-undefined dynamic_lookup`). Otherwise, `rclpy` segfaults when linked on conda. Is the `SHARED` really necessary? The `pybind11` documentation says: > Specifying `SHARED` will create a more traditional dynamic library which can also be linked from elsewhere. Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com> (cherry picked from commit 7fb093b)
When the module is compiled with `MODULE` (the default), the proper linker flags are added on macOS (specifically `-undefined dynamic_lookup`). Otherwise, `rclpy` segfaults when linked on conda. Is the `SHARED` really necessary? The `pybind11` documentation says: > Specifying `SHARED` will create a more traditional dynamic library which can also be linked from elsewhere. Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com> (cherry picked from commit 7fb093b) Co-authored-by: Wolf Vollprecht <w.vollprecht@gmail.com>
When the module is compiled with `MODULE` (the default), the proper linker flags are added on macOS (specifically `-undefined dynamic_lookup`). Otherwise, `rclpy` segfaults when linked on conda. Is the `SHARED` really necessary? The `pybind11` documentation says: > Specifying `SHARED` will create a more traditional dynamic library which can also be linked from elsewhere. Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com> (cherry picked from commit 7fb093b) Co-authored-by: Wolf Vollprecht <w.vollprecht@gmail.com>
When the module is compiled with
MODULE(the default), the proper linker flags are added on macOS (specifically-undefined dynamic_lookup). Otherwise,rclpysegfaults when linked on conda.Is the
SHAREDreally necessary? Thepybind11documentation says:Is anyone linking against this library as a "traditional dynamic library"?