[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.
This commit is contained in:
Austin Hudson 2026-03-30 06:05:37 -07:00 committed by GitHub
parent 16651d240e
commit 1e99c9e4c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 0 additions and 35 deletions

View File

@ -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).
//

View File

@ -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
...