llvm-project/llvm/lib/MC
Martin Storsjö 8f540dad61 [COFF] Assign unique names to autogenerated .weak.<name>.default symbols
These symbols need to be external (MSVC tools error out if a weak
external points at a symbol that isn't external; this was tried before
but had to be reverted in bc5b7217dc,
and this was originally explicitly fixed in
732eeaf2a9).

If multiple object files have weak symbols with defaults, their
defaults could cause linker errors due to duplicate definitions,
unless the names of the defaults are unique.

GNU binutils handles this by appending the name of another symbol
from the same object file to the name of the default symbol. Try
to implement something similar; before writing the object file,
locate a symbol that should have a unique name and use the name of
that one for making the weak defaults unique.

Differential Revision: https://reviews.llvm.org/D75989
2020-03-13 22:44:55 +02:00
..
MCDisassembler [Disassembler] Delete the VStream parameter of MCDisassembler::getInstruction() 2020-01-11 13:34:52 -08:00
MCParser [MC] Allowing the use of $-prefixed integer as asm identifiers 2020-03-06 16:27:51 +00:00
CMakeLists.txt [MC] Delete MCCodePadder 2019-12-09 19:21:31 -08:00
ConstantPools.cpp [MCStreamer] De-capitalize EmitValue EmitIntValue{,InHex} 2020-02-14 23:08:40 -08:00
ELFObjectWriter.cpp [MC][ELF] Rename MC related "Associated" to "LinkedToSym" 2020-02-06 11:31:04 -08:00
LLVMBuild.txt
MCAsmBackend.cpp [MC] Delete MCCodePadder 2019-12-09 19:21:31 -08:00
MCAsmInfo.cpp [MC] De-capitalize another set of MCStreamer::Emit* functions 2020-02-14 19:26:52 -08:00
MCAsmInfoCOFF.cpp
MCAsmInfoDarwin.cpp
MCAsmInfoELF.cpp [MC] Delete unused MCAsmInfoELF::UsesNonexecutableStackSection after EM_WEBASSEMBLY was removed in D48744 2019-12-15 15:43:30 -08:00
MCAsmInfoWasm.cpp
MCAsmInfoXCOFF.cpp [XCOFF][AIX] Differentiate usage of label symbol and csect symbol 2019-11-08 09:30:10 -05:00
MCAsmMacro.cpp MCAsmMacro: add `#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` to some dump() declarations 2019-08-20 04:14:43 +00:00
MCAsmStreamer.cpp [MC] Default MCContext::UseNamesOnTempLabels to false and only set it to true for MCAsmStreamer 2020-02-25 18:23:10 -08:00
MCAssembler.cpp [X86] Reduce the number of emitted fragments due to branch align 2020-03-12 15:37:35 +08:00
MCCodeEmitter.cpp
MCCodeView.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCContext.cpp [MC][ARM] Don't create multiple .ARM.exidx associated to one .text 2020-02-25 18:18:13 -08:00
MCDwarf.cpp [MCDwarf] Change emitListsTableHeaderStart to use a reference and fold Start/End symbols generation into it 2020-03-03 16:20:40 -08:00
MCELFObjectTargetWriter.cpp
MCELFStreamer.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCExpr.cpp [Hexagon][NFC] Rename VK_Hexagon_PCREL to VK_PCREL 2020-02-19 09:52:58 -06:00
MCFragment.cpp [X86] Reduce the number of emitted fragments due to branch align 2020-03-12 15:37:35 +08:00
MCInst.cpp
MCInstPrinter.cpp [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
MCInstrAnalysis.cpp Revert "Forward declare Optional<T> in STLExtras.h" 2019-11-13 16:36:21 -08:00
MCInstrDesc.cpp
MCLabel.cpp
MCLinkerOptimizationHint.cpp
MCMachOStreamer.cpp [MC] Allow Stackmap sections after DWARF in MachO. 2020-03-09 18:33:32 -07:00
MCMachObjectTargetWriter.cpp
MCNullStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCObjectFileInfo.cpp [AsmPrinter] Omit unique ID for .stack_sizes 2020-02-14 21:25:06 -08:00
MCObjectStreamer.cpp [X86] Reduce the number of emitted fragments due to branch align 2020-03-12 15:37:35 +08:00
MCObjectWriter.cpp
MCRegisterInfo.cpp MCRegisterInfo: Merge getLLVMRegNum and getLLVMRegNumFromEH 2019-09-24 09:31:02 +00:00
MCSchedule.cpp
MCSection.cpp [MC][ARM] Delete MCSection::HasData and move SHF_ARM_PURECODE logic to ARMELFObjectWriter::addTargetSectionFlags 2020-01-05 14:20:34 -08:00
MCSectionCOFF.cpp
MCSectionELF.cpp [MC][ELF] Rename MC related "Associated" to "LinkedToSym" 2020-02-06 11:31:04 -08:00
MCSectionMachO.cpp
MCSectionWasm.cpp
MCSectionXCOFF.cpp [AIX] Emit TOC entries for ASM printing 2019-11-27 17:20:55 -05:00
MCStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCSubtargetInfo.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MCSymbol.cpp
MCSymbolELF.cpp [MC] Delete STT_SECTION special cases from MCSymbolELF::setType and setBinding 2019-12-15 20:39:25 -08:00
MCTargetOptions.cpp [ms] [llvm-ml] Add a draft MASM parser 2020-02-16 12:30:46 -05:00
MCValue.cpp [MC] Ignore VK_WEAKREF in MCValue::getAccessVariant 2019-12-15 16:05:46 -08:00
MCWasmObjectTargetWriter.cpp [WebAssembly] Make __attribute__((used)) not imply export. 2019-08-29 22:40:00 +00:00
MCWasmStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCWin64EH.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
MCWinCOFFStreamer.cpp [MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc 2020-02-15 09:11:48 -08:00
MCWinEH.cpp
MCXCOFFObjectTargetWriter.cpp Boilerplate for producing XCOFF object files from the PowerPC backend. 2019-07-09 19:21:01 +00:00
MCXCOFFStreamer.cpp [XCOFF] Don't emit non-external labels in the symbol table and handle MCSA_LGlobal 2020-02-27 13:37:13 -05:00
MachObjectWriter.cpp [MachO] Pad section data to pointer size bytes 2020-02-11 14:52:21 -08:00
StringTableBuilder.cpp Adds support for writing the .bss section for XCOFF object files. 2019-08-20 22:03:18 +00:00
SubtargetFeature.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
WasmObjectWriter.cpp [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
WinCOFFObjectWriter.cpp [COFF] Assign unique names to autogenerated .weak.<name>.default symbols 2020-03-13 22:44:55 +02:00
XCOFFObjectWriter.cpp [AIX][XCOFF] Fix XCOFFObjectWriter assertion failure with alignment-related gap and improve text section output testing 2020-03-03 10:02:40 -05:00