The same situation that effected ARM effects PPC with regards to placing the
LSDA into the TEXT section. We need to generate non-lazy pointers to it on Mach-O. However, the object the NLP points to may be local to the translation unit. If so, then the NLP needs to have the value of that object specified instead of "0", which the linker interprets as "external". llvm-svn: 98325
This commit is contained in:
33
llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
Normal file
33
llvm/lib/Target/PowerPC/PPCTargetObjectFile.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
//===-- llvm/Target/PPCTargetObjectFile.cpp - PPC Object Info Impl --------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PPCTargetObjectFile.h"
|
||||
#include "PPCSubtarget.h"
|
||||
#include "llvm/MC/MCSectionMachO.h"
|
||||
#include "llvm/Support/Dwarf.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
using namespace llvm;
|
||||
using namespace dwarf;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Mach-O Target
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void PPCMachOTargetObjectFile::Initialize(MCContext &Ctx,
|
||||
const TargetMachine &TM) {
|
||||
TargetLoweringObjectFileMachO::Initialize(Ctx, TM);
|
||||
|
||||
// Exception Handling.
|
||||
LSDASection = getMachOSection("__TEXT", "__gcc_except_tab", 0,
|
||||
SectionKind::getReadOnlyWithRel());
|
||||
}
|
||||
|
||||
unsigned PPCMachOTargetObjectFile::getTTypeEncoding() const {
|
||||
return DW_EH_PE_indirect | DW_EH_PE_pcrel | DW_EH_PE_sdata4;
|
||||
}
|
||||
Reference in New Issue
Block a user