[Bug 287447] libllvm, libclang, and liblldb converted into shared libraries - performance degradation

From: <bugzilla-noreply_at_freebsd.org>
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.