| #
2f49e40a |
| 28-Sep-2026 |
Xiaoqiang Zhao <zhaoxiaoqiang007@gmail.com> |
llvm: add LoongArch target support, not enabled by default
Note there is ongoing work to add LoongArch support to the base system, but having target support in llvm is an essential component.
This
llvm: add LoongArch target support, not enabled by default
Note there is ongoing work to add LoongArch support to the base system, but having target support in llvm is an essential component.
This must be explicitly enabled using WITH_LLVM_TARGET_LOONGARCH.
Reviewed by: dim MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D59899
show more ...
|
| #
b5d1e0c5 |
| 24-Sep-2026 |
Dimitry Andric <dim@FreeBSD.org> |
llvm: remove Mips target support
The Mips architecture has been removed from all supported branches now.
MFC after: 1 week
|
| #
ae0a3632 |
| 04-May-2026 |
Ed Maste <emaste@FreeBSD.org> |
build: Retire LLVM_COV src.conf knob
I introduced it in commit 1b49115a40ad ("Promote llvm-cov to a standalone option"). llvm-cov was previously enabled as part of the CLANG_EXTRAS option. I made
build: Retire LLVM_COV src.conf knob
I introduced it in commit 1b49115a40ad ("Promote llvm-cov to a standalone option"). llvm-cov was previously enabled as part of the CLANG_EXTRAS option. I made it a standalone, default-enabled option for parity with the tools provided by the GCC-based toolchain.
We no longer provide an in-tree GCC toolchain. Now, just build llvm-cov along with Clang to simplify build infrastructure.
Reviewed by: dim Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58155
show more ...
|
| #
3525c619 |
| 26-May-2026 |
Alex Richardson <arichardson@FreeBSD.org> |
Fix building with LLVM_BINUTILS_BOOSTRAP but without CLANG_BOOTSTRAP
Without this change I get various undefined symbol errors when trying to link llvm-nm and llvm-objcopy during the cross-tools sta
Fix building with LLVM_BINUTILS_BOOSTRAP but without CLANG_BOOTSTRAP
Without this change I get various undefined symbol errors when trying to link llvm-nm and llvm-objcopy during the cross-tools stage.
Test Plan: builds now Reviewed by: dim, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56873
show more ...
|
| #
770cf0a5 |
| 09-Dec-2025 |
Dimitry Andric <dim@FreeBSD.org> |
Fixups after llvm-project main llvmorg-21-init-19288-gface93e724f4 merge
Fix various configuration fails, update generated headers, Makefiles, etc.
PR: 292067 MFC after: 1 month
|
| #
ee734751 |
| 09-Feb-2026 |
John Baldwin <jhb@FreeBSD.org> |
llvm: Link private LLVM libraries against compiler_rt for aarch64
This is required for GCC which uses libcalls for outlined atomics.
Reviewed by: dim Differential Revision: https://reviews.freebsd.
llvm: Link private LLVM libraries against compiler_rt for aarch64
This is required for GCC which uses libcalls for outlined atomics.
Reviewed by: dim Differential Revision: https://reviews.freebsd.org/D55157
show more ...
|
| #
8d5a11cd |
| 18-Jun-2025 |
Dimitry Andric <dim@FreeBSD.org> |
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 l
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
show more ...
|
| #
3b112620 |
| 22-Dec-2025 |
Dimitry Andric <dim@FreeBSD.org> |
Remove debug crutch I accidentally left in
Fixes: cf1eaaf41cef MFC after: 1 week
|
| #
cf1eaaf4 |
| 21-Dec-2025 |
Dimitry Andric <dim@FreeBSD.org> |
Reduce number of external symbols in libllvm, libclang and liblldb
In commit 2e47f35be5dc libllvm, libclang and liblldb were converted into private shared libraries. This allowed clang, lld, lldb, a
Reduce number of external symbols in libllvm, libclang and liblldb
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, upstream builds the shared libraries using several visibility options, which reduces the number of external symbols, and makes the libraries a bit smaller.
On my test machine: * libprivatellvm.so goes from 75643 to 34706 symbols (~54% reduction) * libprivateclang.so goes from 53250 to 33531 symbols (~37% reduction) * libprivatelldb.so goes from 27242 to 18798 symbols (~31% reduction)
Note: to get the full benefit, a clean build is required. Incremental builds should still work, but I didn't want to force a full rebuild on everybody.
MFC after: 1 week
show more ...
|
| #
9978553d |
| 28-Nov-2025 |
Dimitry Andric <dim@FreeBSD.org> |
Remove TableGen objects from libllvm, fixing bad option registrations
In 986e05bc2a18 I revamped the build for all the llvm subprojects. Among others I added objects under contrib/llvm-project/llvm/
Remove TableGen objects from libllvm, fixing bad option registrations
In 986e05bc2a18 I revamped the build for all the llvm subprojects. Among others I added objects under contrib/llvm-project/llvm/lib/TableGen, but I missed that upstream explicitly removes these when building the shared llvm library:
https://github.com/llvm/llvm-project/blob/llvmorg-19.1.7/llvm/tools/llvm-shlib/CMakeLists.txt#L23
In 2e47f35be5dc I converted libllvm to a shared library. From that point onwards, some of the global command line option objects registered in llvm/lib/TableGen/Main.cpp conflict with similar objects in tools like llvm-cov, llvm-as, etc.
This results in an error when running these tools: "CommandLine Error: Option 'o' registered more than once!", followed by a fatal exit.
Fix this by removing the TableGen objects from libllvm. Note that we no longer install any of the tblgen binaries, these are only used during buildworld, and then in a statically linked form.
PR: 291233 MFC after: 3 days
show more ...
|
| #
2e47f35b |
| 25-Apr-2025 |
Dimitry Andric <dim@FreeBSD.org> |
Convert libllvm, libclang and liblldb into private shared libraries
This allows clang, lld, lldb, and other llvm tools to be linked against these shared libraries, which makes them smaller and avoid
Convert libllvm, libclang and liblldb into private shared libraries
This allows clang, lld, lldb, and other llvm tools to be linked against these shared libraries, which makes them smaller and avoids duplication.
Since these are not quite the same as the shared libraries shipped by the upstream llvm build system, and we do not want to expose the ABI to external programs such as ports, make them private libraries.
Note that during the cross-tools stage they are still built as static libraries, so the cross compiler and linker are static binaries, as they have always been.
This also requires a depend-cleanup.sh kludge which will be added in a follow-up commit, to ensure binaries are rebuilt against the shared libraries in case of incremental builds.
MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49967
show more ...
|
| #
160a2ba8 |
| 19-Apr-2025 |
Dimitry Andric <dim@FreeBSD.org> |
libllvm: remove duplicated SRCS_MIN line
This is not harmful when making a static library apparently, but will result in duplicate symbol errors when making a dynamic library.
MFC after: 3 days
|
| #
36b606ae |
| 30-Jul-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga
Merge llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/19.x llvmorg-19.1.0-rc1-0-ga4902a36d5c2.
PR: 280562 MFC after: 1 month
show more ...
|
| #
0fca6ea1 |
| 28-Jul-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-19-init-18630-gf2ccf80136a0, t
Merge llvm-project main llvmorg-19-init-18630-gf2ccf80136a0
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-19-init-18630-gf2ccf80136a0, the last commit before the upstream release/19.x branch was created.
PR: 280562 MFC after: 1 month
show more ...
|
| #
e9ac4169 |
| 15-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
Remove residual blank line at start of Makefile
This is a residual of the $FreeBSD$ removal.
MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
|
| #
442d351b |
| 11-Apr-2024 |
Dimitry Andric <dim@FreeBSD.org> |
libllvm: add missed tlbgen headers and sources for BPF target
Noticed by: vishwin PR: 276104 MFC after: 1 month
|
| #
b3edf446 |
| 07-Feb-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc6c86965d967
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc
Merge llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc6c86965d967
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project release/18.x llvmorg-18.1.0-rc2-0-gc6c86965d967.
PR: 276104 MFC after: 1 month
show more ...
|
| #
7a6dacac |
| 24-Jan-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-18359-g93248729cfae
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-18359-g93248729cfae, t
Merge llvm-project main llvmorg-18-init-18359-g93248729cfae
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-18359-g93248729cfae, the last commit before the upstream release/18.x branch was created.
PR: 276104 MFC after: 1 month
show more ...
|
| #
297eecfb |
| 11-Jan-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-16864-g3b3ee1f53424
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16864-g3b3ee1f53424.
Merge llvm-project main llvmorg-18-init-16864-g3b3ee1f53424
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16864-g3b3ee1f53424.
PR: 276104 MFC after: 1 month
show more ...
|
| #
1db9f3b2 |
| 09-Jan-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-16595-g7c00a5be5cde
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16595-g7c00a5be5cde.
Merge llvm-project main llvmorg-18-init-16595-g7c00a5be5cde
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16595-g7c00a5be5cde.
PR: 276104 MFC after: 1 month
show more ...
|
| #
647cbc5d |
| 03-Jan-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4.
Merge llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16003-gfc5f51cf5af4.
PR: 276104 MFC after: 1 month
show more ...
|
| #
cb14a3fe |
| 25-Dec-2023 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15692-g007ed0dccd6a.
Merge llvm-project main llvmorg-18-init-15692-g007ed0dccd6a
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15692-g007ed0dccd6a.
PR: 276104 MFC after: 1 month
show more ...
|
| #
5f757f3f |
| 18-Dec-2023 |
Dimitry Andric <dim@FreeBSD.org> |
Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15088-gd14ee76181fb.
Merge llvm-project main llvmorg-18-init-15088-gd14ee76181fb
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-15088-gd14ee76181fb.
PR: 276104 MFC after: 1 month
show more ...
|
| #
73ff7384 |
| 11-Feb-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Optionally create full debuginfo for llvm-related executables
Commit de6feefdb7cfd limited the amount of debuginfo generated for clang and other llvm-related executables. This was done to save disk
Optionally create full debuginfo for llvm-related executables
Commit de6feefdb7cfd limited the amount of debuginfo generated for clang and other llvm-related executables. This was done to save disk space and memory during building, but it makes debugging any of these executables much harder.
Add a new src.conf(5) setting, WITH_LLVM_FULL_DEBUGINFO, to generate full debuginfo instead. This is off by default, but could for example be enabled for release builds or snapshots, so llvm executables are easier to debug.
Reviewed by: emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D43839
show more ...
|
| #
5c38ea60 |
| 27-Jan-2024 |
Dimitry Andric <dim@FreeBSD.org> |
Add libllvm and liblldb source files to enable WITH_ASAN build
This is another part of fixing the WITH_ASAN build. Some additional source files had to be added to libllvm and liblldb, since the ASan
Add libllvm and liblldb source files to enable WITH_ASAN build
This is another part of fixing the WITH_ASAN build. Some additional source files had to be added to libllvm and liblldb, since the ASan instrumentation causes symbols in those files to be referenced.
Reported by: markj PR: 276597 MFC after: 3 days
show more ...
|