The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5d757312ad591aae26b39943f113ebf3819718da
commit 5d757312ad591aae26b39943f113ebf3819718da Author: Ed Maste <[email protected]> AuthorDate: 2026-03-04 19:03:42 +0000 Commit: Ed Maste <[email protected]> CommitDate: 2026-03-05 14:43:46 +0000 build: Retire LLVM_CXXFILT option The LLVM_CXXFILT option was added when we used ELF Tool Chain tools by default. ELF Tool Chain's c++filt failed to demangle some symbols, so we added a special case to install LLVM's version and enabled it by default. The rest of the LLVM tools are now used by default, as of commit 9fa94e1c099d ("Turn on WITH_LLVM_CXXFILT by default"). Simplify the build logic by removing a special case and just include llvm-cxxfilt with the rest of the LLVM utilities. Reviewed by: dim Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55654 --- share/man/man5/src.conf.5 | 6 +----- share/mk/src.opts.mk | 7 ------- tools/build/mk/OptionalObsoleteFiles.inc | 7 ++----- tools/build/options/WITHOUT_LLVM_CXXFILT | 1 - tools/build/options/WITH_LLVM_CXXFILT | 1 - usr.bin/Makefile | 2 -- usr.bin/clang/Makefile | 5 +---- usr.bin/clang/llvm-cxxfilt/Makefile | 2 -- 8 files changed, 4 insertions(+), 27 deletions(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index 01e9db1f1915..71d8af3057d5 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,5 +1,5 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. -.Dd March 3, 2026 +.Dd March 5, 2026 .Dt SRC.CONF 5 .Os .Sh NAME @@ -122,8 +122,6 @@ When set, it enforces these options: .Bl -item -compact .It .Va WITH_LLVM_BINUTILS -.It -.Va WITH_LLVM_CXXFILT .El .It Va WITHOUT_ASSERT_DEBUG Compile programs and libraries without the @@ -995,8 +993,6 @@ is always provided by ELF Tool Chain. Do not build the .Xr llvm-cov 1 tool. -.It Va WITHOUT_LLVM_CXXFILT -Install ELF Tool Chain's cxxfilt as c++filt, instead of LLVM's llvm-cxxfilt. .It Va WITH_LLVM_FULL_DEBUGINFO Generate full debug information for LLVM libraries and tools, which uses more disk space and build resources, but allows for easier debugging. diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 4abe1c699b4e..fa91c537188d 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -125,7 +125,6 @@ __DEFAULT_YES_OPTIONS = \ LLVM_ASSERTIONS \ LLVM_BINUTILS \ LLVM_COV \ - LLVM_CXXFILT \ LOADER_BIOS_TEXTONLY \ LOADER_GELI \ LOADER_KBOOT \ @@ -508,12 +507,6 @@ MK_LLVM_COV:= no MK_LLVM_BINUTILS:= yes .endif -.if ${MK_LLVM_BINUTILS} == "yes" -# MK_LLVM_CXXFILT is a subset of MK_LLVM_BINUTILS and should therefore be -# enabled if MK_LLVM_BINUTILS is set. -MK_LLVM_CXXFILT:= yes -.endif - .if ${MK_LOADER_VERIEXEC} == "no" MK_LOADER_VERIEXEC_PASS_MANIFEST := no .endif diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index c915da8ca501..fd25359c7c0b 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -896,6 +896,7 @@ OLD_LIBS+=usr/lib/libprivatellvm.so.19 .if ${MK_CLANG} == no && ${MK_LLVM_BINUTILS} == no OLD_FILES+=usr/bin/llvm-addr2line OLD_FILES+=usr/bin/llvm-ar +OLD_FILES+=usr/bin/llvm-cxxfilt OLD_FILES+=usr/bin/llvm-nm OLD_FILES+=usr/bin/llvm-objcopy OLD_FILES+=usr/bin/llvm-objdump @@ -908,6 +909,7 @@ OLD_FILES+=usr/bin/llvm-symbolizer OLD_FILES+=usr/bin/objdump OLD_FILES+=usr/share/man/man1/llvm-addr2line.1.gz OLD_FILES+=usr/share/man/man1/llvm-ar.1.gz +OLD_FILES+=usr/share/man/man1/llvm-cxxfilt.1.gz OLD_FILES+=usr/share/man/man1/llvm-nm.1.gz OLD_FILES+=usr/share/man/man1/llvm-objcopy.1.gz OLD_FILES+=usr/share/man/man1/llvm-ranlib.1.gz @@ -1388,11 +1390,6 @@ OLD_FILES+=usr/share/man/man1/opt.1.gz OLD_FILES+=usr/bin/clang-format .endif -.if ${MK_CLANG_EXTRAS} == no && ${MK_LLVM_CXXFILT} == no -OLD_FILES+=usr/bin/llvm-cxxfilt -OLD_FILES+=usr/share/man/man1/llvm-cxxfilt.1.gz -.endif - .if ${MK_CPP} == no OLD_FILES+=usr/bin/cpp OLD_FILES+=usr/share/man/man1/cpp.1.gz diff --git a/tools/build/options/WITHOUT_LLVM_CXXFILT b/tools/build/options/WITHOUT_LLVM_CXXFILT deleted file mode 100644 index e7d263f01f2a..000000000000 --- a/tools/build/options/WITHOUT_LLVM_CXXFILT +++ /dev/null @@ -1 +0,0 @@ -Install ELF Tool Chain's cxxfilt as c++filt, instead of LLVM's llvm-cxxfilt. diff --git a/tools/build/options/WITH_LLVM_CXXFILT b/tools/build/options/WITH_LLVM_CXXFILT deleted file mode 100644 index f6ac38b20af7..000000000000 --- a/tools/build/options/WITH_LLVM_CXXFILT +++ /dev/null @@ -1 +0,0 @@ -Install LLVM's llvm-cxxfilt as c++filt, instead of ELF Tool Chain's cxxfilt. diff --git a/usr.bin/Makefile b/usr.bin/Makefile index 0c9c66748269..125ecb6f05a0 100644 --- a/usr.bin/Makefile +++ b/usr.bin/Makefile @@ -255,9 +255,7 @@ SUBDIR.${MK_TOOLCHAIN}+= size SUBDIR.${MK_TOOLCHAIN}+= c89 SUBDIR.${MK_TOOLCHAIN}+= c99 SUBDIR.${MK_TOOLCHAIN}+= ctags -.if ${MK_LLVM_CXXFILT} == "no" SUBDIR.${MK_TOOLCHAIN}+= cxxfilt -.endif # ELF Tool Chain elfcopy required for EFI objects (PR280771) SUBDIR.${MK_TOOLCHAIN}+= elfcopy SUBDIR.${MK_TOOLCHAIN}+= file2c diff --git a/usr.bin/clang/Makefile b/usr.bin/clang/Makefile index e2debfb8c582..ac92b08a54cb 100644 --- a/usr.bin/clang/Makefile +++ b/usr.bin/clang/Makefile @@ -14,6 +14,7 @@ SUBDIR+= clang-scan-deps # as the default binutils (ar,nm,addr2line, etc.). .if ${MK_CLANG} != "no" || ${MK_LLVM_BINUTILS} != "no" SUBDIR+= llvm-ar +SUBDIR+= llvm-cxxfilt SUBDIR+= llvm-nm SUBDIR+= llvm-objcopy SUBDIR+= llvm-objdump @@ -23,10 +24,6 @@ SUBDIR+= llvm-strings SUBDIR+= llvm-symbolizer .endif -.if ${MK_LLVM_BINUTILS} != "no" || ${MK_LLVM_CXXFILT} != "no" -SUBDIR+= llvm-cxxfilt -.endif - .if ${MK_CLANG_EXTRAS} != "no" SUBDIR+= bugpoint SUBDIR+= llc diff --git a/usr.bin/clang/llvm-cxxfilt/Makefile b/usr.bin/clang/llvm-cxxfilt/Makefile index f9621da8da89..98cc5c09f4c4 100644 --- a/usr.bin/clang/llvm-cxxfilt/Makefile +++ b/usr.bin/clang/llvm-cxxfilt/Makefile @@ -22,9 +22,7 @@ DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} -.if ${MK_LLVM_CXXFILT} != "no" LINKS= ${BINDIR}/llvm-cxxfilt ${BINDIR}/c++filt MLINKS= llvm-cxxfilt.1 c++filt.1 -.endif .include "../llvm.prog.mk"
