[lld] 1e99c9e - [lld][COFF] Restore `lto-embed-bitcode` and `-fembed-bitcode` Bitcode Embedding Features (#188398)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 30 06:05:42 PDT 2026
Author: Austin Hudson
Date: 2026-03-30T16:05:37+03:00
New Revision: 1e99c9e4c7e82c8417e4bdb0d1cb3b86e6640c6c
URL: https://github.com/llvm/llvm-project/commit/1e99c9e4c7e82c8417e4bdb0d1cb3b86e6640c6c
DIFF: https://github.com/llvm/llvm-project/commit/1e99c9e4c7e82c8417e4bdb0d1cb3b86e6640c6c.diff
LOG: [lld][COFF] Restore `lto-embed-bitcode` and `-fembed-bitcode` Bitcode Embedding Features (#188398)
Removes the patches introduced by #150897 which broke LTO embed
documented features for creating whole-program-bitcode representations
of executables, used in production analysis/rewriting toolsets. This was
a documented feature available up until 21.1.8 broken by 22.x release.
This previously allowed the users to have a whole-program-bitcode
section `.llvmbc` embedded inside of the final executable.
Added:
Modified:
lld/COFF/InputFiles.cpp
Removed:
lld/test/COFF/embed-bitcode.test
################################################################################
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index 492b2ad80166d..4320a39644616 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -404,11 +404,6 @@ SectionChunk *ObjFile::readSection(uint32_t sectionNumber,
return nullptr;
}
- // Those sections are generated by -fembed-bitcode and do not need to be kept
- // in executable files.
- if (name == ".llvmbc" || name == ".llvmcmd")
- return nullptr;
-
// Object files may have DWARF debug info or MS CodeView debug info
// (or both).
//
diff --git a/lld/test/COFF/embed-bitcode.test b/lld/test/COFF/embed-bitcode.test
deleted file mode 100644
index 10f88c5c0117d..0000000000000
--- a/lld/test/COFF/embed-bitcode.test
+++ /dev/null
@@ -1,30 +0,0 @@
-# RUN: yaml2obj %s -o %t.obj
-# RUN: lld-link /entry:main /subsystem:console /out:%t.exe %t.obj
-# RUN: llvm-readobj -S %t.exe | FileCheck %s
-
-# CHECK-NOT: Name: .llvmbc
-# CHECK-NOT: Name: .llvmcmd
-
---- !COFF
-header:
- Machine: IMAGE_FILE_MACHINE_AMD64
-
-sections:
- - Name: .text
- Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
- SectionData: "C3"
- - Name: .llvmbc
- Characteristics: [ IMAGE_SCN_MEM_DISCARDABLE ]
- SectionData: "4243C0DE"
- - Name: .llvmcmd
- Characteristics: [ IMAGE_SCN_MEM_DISCARDABLE ]
- SectionData: "2D63633100"
-
-symbols:
- - Name: main
- Value: 0
- SectionNumber: 1
- SimpleType: IMAGE_SYM_TYPE_NULL
- ComplexType: IMAGE_SYM_DTYPE_FUNCTION
- StorageClass: IMAGE_SYM_CLASS_EXTERNAL
-...
More information about the llvm-commits
mailing list