[all-commits] [llvm/llvm-project] 4bd2bf: [lldb/PlatformPOSIX] Change LoadImage default to R...
Vedant Kumar via All-commits
all-commits at lists.llvm.org
Fri Mar 19 16:06:27 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4bd2bfb6ec0980853d7f9d1874e0547b68b7a61e
https://github.com/llvm/llvm-project/commit/4bd2bfb6ec0980853d7f9d1874e0547b68b7a61e
Author: Vedant Kumar <vsk at apple.com>
Date: 2021-03-19 (Fri, 19 Mar 2021)
Changed paths:
M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
A lldb/test/API/.lit_test_times.txt
A lldb/test/API/functionalities/load_lazy/Makefile
A lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py
A lldb/test/API/functionalities/load_lazy/categories
A lldb/test/API/functionalities/load_lazy/main.cpp
A lldb/test/API/functionalities/load_lazy/t1.c
A lldb/test/API/functionalities/load_lazy/t2_0.c
A lldb/test/API/functionalities/load_lazy/t2_1.c
Log Message:
-----------
[lldb/PlatformPOSIX] Change LoadImage default to RTLD_LAZY (reapply)
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
More information about the All-commits
mailing list