[Bug 287447] libllvm, libclang, and liblldb converted into shared libraries - performance degradation
Date: Tue, 23 Dec 2025 21:05:15 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287447
--- Comment #9 from commit-hook@FreeBSD.org ---
A commit in branch main references this bug:
URL:
https://cgit.FreeBSD.org/src/commit/?id=8d5a11cd0137d3ad70f6b06e063ea91a776d510a
commit 8d5a11cd0137d3ad70f6b06e063ea91a776d510a
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2025-06-18 10:06:25 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2025-12-23 21:01:40 +0000
src.conf: Add WITH_LLVM_LINK_STATIC_LIBRARIES build knob
In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into
private shared libraries. This allowed clang, lld, lldb, and other llvm
tools to be linked against these shared libraries, which makes them
smaller and avoids duplication.
However, this also comes at the cost of some performance, since the
dynamic libraries are quite large, and contain lots of long symbols
(mangled C++ identifiers).
Add a WITH_LLVM_LINK_STATIC_LIBRARIES build knob that can be used to go
back to the previous behavior: libllvm, libclang and liblldb are built
as internal static libraries, i.e. only available during buildworld, and
fully linked into the various executables such as clang, lld, etc.
PR: 287447
Reviewed by: emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D50956
lib/clang/libclang/Makefile | 8 ++++----
lib/clang/liblldb/Makefile | 13 ++++++++++++-
lib/clang/libllvm/Makefile | 9 ++++-----
share/man/man5/src.conf.5 | 9 ++++++++-
share/mk/src.opts.mk | 1 +
tools/build/mk/OptionalObsoleteFiles.inc | 11 ++++++++---
tools/build/options/WITH_LLVM_LINK_STATIC_LIBRARIES (new) | 6 ++++++
usr.bin/clang/Makefile.inc | 2 +-
usr.bin/clang/clang.prog.mk | 2 +-
usr.bin/clang/lld/Makefile | 2 +-
usr.bin/clang/lldb-server/Makefile | 5 +++++
usr.bin/clang/lldb/Makefile | 5 +++++
usr.bin/clang/llvm.prog.mk | 5 +++++
13 files changed, 61 insertions(+), 17 deletions(-)
--
You are receiving this mail because:
You are the assignee for the bug.