[lldb][driver] Fix ELF interposition of HostInfoBase symbols causing segfault (#204710)
Commit 67e571d (#179306) added lldbHost and lldbUtility to
`LLDB_DRIVER_LINK_LIBS` A side-effect is that HostInfoBase.cpp, which
contains the file-static `g_fields` pointer, is now compiled into both
the lldb binary and liblldb.so, giving each its own independent
`g_fields`.
On ELF platforms this creates an interposition hazard. When
`LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS` is set, AddLLDB.cmake switches
all LLDB libraries to `CXX_VISIBILITY_PRESET=default` so that the
version script can re-export private symbols needed by dynamically
loaded plugins. The Python plugin calls `HostInfo::GetShlibDir()`
directly, so extract-dynamic-script-interpreter-exports.py adds
`HostInfoBase::GetShlibDir` to liblldb.so's exports (global: in the
version script). `HostInfoBase::Initialize()` is not called by the
plugin and stays local:.
At runtime the dynamic linker resolves liblldb.so's PLT entry for
[22 lines not shown]
[Transforms] Remove redundant --check-prefix flags (#206211)
--check-prefix=CHECK is completely redundant, so remove it.
Change was generated by Gemini, I manually reviewed the entire diff.
virtual_oss.8: Document `/dev/bluetooth/` prefix magic
Without this one could be led to believe they should have an actual
`/dev/bluetooth/xxx` device in devfs from just reading the examples.
Event: Halifax Hackathon 202606
Reviewed by: christos
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D57818
(cherry picked from commit 7ecd9afd3b28b9e1a112b5925a8f5902e121b128)
virtual_oss.8: Use `.Pa` macro to refer to devices
Suggested by: christos
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
(cherry picked from commit 31461c8bc9c16004feae9cc17b89fd5213a09ae0)
Revert "[lit] Migrate lit to ProcessPoolExecutor (#202681)" (#206138)
This reverts the commit 1e2d1bbc12f6.
ProcessPoolExecutor.shutdown(wait=True) hangs on macOS 14 with Python 3.9: join_executor_internals() calls call_queue.join_thread() before p.join(), but macOS requires the inverse order. The feeder thread cannot drain until worker processes are joined, so join_thread() blocks forever. This is fixed upstream in CPython >= 3.12 but affects all earlier versions on macOS. Reverting to unblock the aarch64-darwin buildbot while a proper fix is worked out.
The original changes and context can be found in https://github.com/llvm/llvm-project/pull/202681
[llubi] Poison object contents in `llvm.lifetime.end` (#206036)
Make `@llvm.lifetime.end` poison the object content. This removes the
need of special-casing for dead objects in `ExecutorBase::load()`, etc.
See also [#204932
(comment)](https://github.com/llvm/llvm-project/pull/204932#discussion_r3465364425).
[WebAssembly] Fix nondeterminism by using MapVector for pointer-keyed maps [NFC] (#205184)
Several DenseMaps in the WebAssembly backend keyed by pointers were
being
iterated over, potentially leading to nondeterministic codegen
(differing
try/delegate nesting, virtual register allocation, or PHI node
insertion)
due to nondeterministsic pointer values.
This patch replaces these DenseMaps with MapVectors to guarantee
deterministic iteration order:
- UnwindDestToTryRanges in WebAssemblyCFGStackify.cpp
- EHPadToUnwindDest in WebAssemblyCFGStackify.cpp
- EHPadToRethrows in WebAssemblyLateEHPrepare.cpp
- UnwindDestToNewPreds in WebAssemblyLowerEmscriptenEHSjLj.cpp
Fixes: #204883
Co-authored-by: Ammar Askar <aaskar at google.com>
Assisted-by: Antigravity