mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-03 17:32:59 +00:00
Move broken HasCommonSymbols to ELFWriter.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a2b6e4151b
commit
9de3a0701a
@ -55,11 +55,6 @@ public:
|
||||
/// should be printed before the section name
|
||||
bool ShouldOmitSectionDirective(StringRef Name, const MCAsmInfo &MAI) const;
|
||||
|
||||
/// HasCommonSymbols - True if this section holds common symbols, this is
|
||||
/// indicated on the ELF object file by a symbol with SHN_COMMON section
|
||||
/// header index.
|
||||
bool HasCommonSymbols() const;
|
||||
|
||||
StringRef getSectionName() const { return SectionName; }
|
||||
unsigned getType() const { return Type; }
|
||||
unsigned getFlags() const { return Flags; }
|
||||
|
@ -328,6 +328,18 @@ void ELFWriter::AddToSymbolList(ELFSym *GblSym) {
|
||||
}
|
||||
}
|
||||
|
||||
/// HasCommonSymbols - True if this section holds common symbols, this is
|
||||
/// indicated on the ELF object file by a symbol with SHN_COMMON section
|
||||
/// header index.
|
||||
static bool HasCommonSymbols(const MCSectionELF &S) {
|
||||
// FIXME: this is wrong, a common symbol can be in .data for example.
|
||||
if (StringRef(S.getSectionName()).startswith(".gnu.linkonce."))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// EmitGlobal - Choose the right section for global and emit it
|
||||
void ELFWriter::EmitGlobal(const GlobalValue *GV) {
|
||||
|
||||
@ -364,7 +376,7 @@ void ELFWriter::EmitGlobal(const GlobalValue *GV) {
|
||||
unsigned Size = TD->getTypeAllocSize(GVar->getInitializer()->getType());
|
||||
GblSym->Size = Size;
|
||||
|
||||
if (S->HasCommonSymbols()) { // Symbol must go to a common section
|
||||
if (HasCommonSymbols(*S)) { // Symbol must go to a common section
|
||||
GblSym->SectionIdx = ELF::SHN_COMMON;
|
||||
|
||||
// A new linkonce section is created for each global in the
|
||||
|
@ -115,17 +115,6 @@ bool MCSectionELF::isVirtualSection() const {
|
||||
return getType() == ELF::SHT_NOBITS;
|
||||
}
|
||||
|
||||
// HasCommonSymbols - True if this section holds common symbols, this is
|
||||
// indicated on the ELF object file by a symbol with SHN_COMMON section
|
||||
// header index.
|
||||
bool MCSectionELF::HasCommonSymbols() const {
|
||||
|
||||
if (StringRef(SectionName).startswith(".gnu.linkonce."))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned MCSectionELF::DetermineEntrySize(SectionKind Kind) {
|
||||
if (Kind.isMergeable1ByteCString()) return 1;
|
||||
if (Kind.isMergeable2ByteCString()) return 2;
|
||||
|
Loading…
Reference in New Issue
Block a user