-
Notifications
You must be signed in to change notification settings - Fork 4k
Description
Describe the bug, including details regarding any error messages, version, and platform.
gdb apparently needs to reflect the path of a given library (for which we want to have gdb-support) in the path to that support artefact. Currently this is being done by using
arrow/cpp/src/arrow/CMakeLists.txt
Lines 674 to 675 in 1ba4425
| set(ARROW_GDB_AUTO_LOAD_LIBARROW_GDB_DIR | |
| "${ARROW_GDB_AUTO_LOAD_DIR}/${CMAKE_INSTALL_FULL_LIBDIR}") |
However, this is incompatible with the way that conda-forge works, where the packaging step needs to install the package in order to determine which files need to be packaged at all. The use of CMAKE_INSTALL_FULL_LIBDIR means that we'll be baking the path of that temporary build environment in the feedstock into the final artefact, which is both non-functional, and additionally leads to problems due to path length.
The core issue is that we do not know the path to the final environment in conda until we're actually in it. In order to support the gdb integration nevertheless, the current work-around is to use a patch and an activation script (which will always execute upon entering/activating an environment).
@kou asked me in #34652 to open an issue for this. It would be great if we could have a better way to support gdb also in conda-forge, but at the moment I don't see how that would work.
Component(s)
Packaging