summaryrefslogtreecommitdiff
path: root/lldb/test/API/functionalities/load_lazy/main.cpp
AgeCommit message (Collapse)Author
2021-03-19[lldb/PlatformPOSIX] Change LoadImage default to RTLD_LAZY (reapply)Vedant Kumar
In general, it seems like the debugger should allow programs to load & run with libraries as far as possible, instead of defaulting to being super-picky about unavailable symbols. This is critical on macOS/Darwin, as libswiftCore.dylib may 1) export a version symbol using @available markup and then 2) expect that other exported APIs are only dynamically used once the version symbol is checked. We can't open a version of the library built with a bleeding-edge SDK on an older OS without RTLD_LAXY (or pervasive/expensive @available markup added to dyld APIs). This was previously committed as cb8c1ee269da and reverted due to unknown failures on the Linux bots. This version adds additional asserts to check that the shared objects are where we expect them & that calling f1() from libt1 produces the expected value. The Linux failure is tracked by https://bugs.llvm.org/show_bug.cgi?id=49656. See: https://lists.llvm.org/pipermail/lldb-dev/2021-March/016796.html Differential Revision: https://reviews.llvm.org/D98879
2021-03-19Revert "[lldb/PlatformPOSIX] Change LoadImage default to RTLD_LAZY"Vedant Kumar
This reverts commit cb8c1ee269da72eb6e2c18800cd8ab0a74050785. The test is failing on Debian for unknown reasons. https://lab.llvm.org/buildbot/#/builders/68/builds/8990
2021-03-19[lldb/PlatformPOSIX] Change LoadImage default to RTLD_LAZYVedant Kumar
In general, it seems like the debugger should allow programs to load & run with libraries as far as possible, instead of defaulting to being super-picky about unavailable symbols. This is critical on macOS/Darwin, as libswiftCore.dylib may 1) export a version symbol using @available markup and then 2) expect that other exported APIs are only dynamically used once the version symbol is checked. We can't open a version of the library built with a bleeding-edge SDK on an older OS without RTLD_LAXY (or pervasive/expensive @available markup added to dyld APIs). See: https://lists.llvm.org/pipermail/lldb-dev/2021-March/016796.html Differential Revision: https://reviews.llvm.org/D98879