Repository navigation
Commit 04a453a
* fix: add emscripten guards to shared_library.c's dlopen path
Two related gaps in rcutils_load_shared_library() / rcutils_get_platform_library_name(),
found while getting rcl_logging_implementation's dlopen-by-name backend
selection working on emscripten-wasm32:
- rcutils_get_platform_library_name() had no emscripten branch, so it always
fell through with written == 0 ("failed to format library name"),
regardless of which RCL_LOGGING_IMPLEMENTATION backend was requested.
wasm32 side modules use the same "lib<name>.so" convention as Linux.
- The post-dlopen path-resolution code took the _GNU_SOURCE branch (which
emscripten's headers define) and called dlinfo(..., RTLD_DI_LINKMAP, ...).
Emscripten's dlopen()/dlinfo() are a JS-backed shim, not glibc's, and
don't support reading back a real struct link_map -- so a successful
dlopen() got treated as a failure once dlinfo() returned -1. The #else
branch (reuse the path dlopen() was given) already covers this platform
correctly.
Verified end-to-end on a ROS 2 rolling + rmw_zenoh_pico + real-pthreads
emscripten-wasm32 build: a wasm32 rclpy talker's logging initialization
(rcl_logging_configure -> rcl_logging_implementation -> this dlopen path)
now succeeds instead of aborting with "failed to load any logging
implementations".
(cherry picked from commit a2d8f50)
Signed-off-by: Alejandro Hernandez Cordero <ahcorde@gmail.com>
Co-authored-by: Tobias Fischer <info@tobiasfischer.info>
Co-authored-by: Alejandro Hernandez Cordero <ahcorde@gmail.com>
1 parent 47a44cb commit 04a453a
1 file changed
Lines changed: 14 additions & 2 deletions
File tree
- src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
131 | 138 | | |
132 | 139 | | |
133 | 140 | | |
| |||
294 | 301 | | |
295 | 302 | | |
296 | 303 | | |
297 | | - | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
298 | 310 | | |
299 | 311 | | |
300 | 312 | | |
| |||
0 commit comments