aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/Support/ToolRunner.cpp1
-rw-r--r--lib/Target/PowerPC/PPCAsmPrinter.cpp7
-rw-r--r--tools/bugpoint/ToolRunner.cpp1
3 files changed, 4 insertions, 5 deletions
diff --git a/lib/Support/ToolRunner.cpp b/lib/Support/ToolRunner.cpp
index 1584db4..fcbb3c1 100644
--- a/lib/Support/ToolRunner.cpp
+++ b/lib/Support/ToolRunner.cpp
@@ -411,7 +411,6 @@ int GCC::MakeSharedObject(const std::string &InputFile, FileType fileType,
#elif (defined(__POWERPC__) || defined(__ppc__)) && defined(__APPLE__)
"-single_module", // link all source files into a single module
"-dynamiclib", // `-dynamiclib' for MacOS X/PowerPC
- "-fno-common", // allow global vars w/o initializers to live
"-undefined", // in data segment, rather than generating
"dynamic_lookup", // blocks. dynamic_lookup requires that you set
// MACOSX_DEPLOYMENT_TARGET=10.3 in your env.
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
index fd86f1b..62c2021 100644
--- a/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -367,8 +367,8 @@ void PowerPCAsmPrinter::printOp(const MachineOperand &MO,
}
// External or weakly linked global variables need non-lazily-resolved stubs
- if ((GV->isExternal() || GV->hasWeakLinkage()) &&
- getTM().AddressTaken.count(GV)) {
+ if ((GV->isExternal() || GV->hasWeakLinkage() || GV->hasLinkOnceLinkage())
+ && getTM().AddressTaken.count(GV)) {
GVStubs.insert(Name);
O << "L" << Name << "$non_lazy_ptr";
return;
@@ -472,7 +472,8 @@ bool DarwinAsmPrinter::doFinalization(Module &M) {
unsigned Align = TD.getTypeAlignmentShift(C->getType());
if (C->isNullValue() && /* FIXME: Verify correct */
- (I->hasInternalLinkage() || I->hasWeakLinkage())) {
+ (I->hasInternalLinkage() || I->hasWeakLinkage() ||
+ I->hasLinkOnceLinkage())) {
SwitchSection(O, CurSection, ".data");
if (I->hasInternalLinkage())
O << ".lcomm " << name << "," << TD.getTypeSize(C->getType())
diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp
index 1584db4..fcbb3c1 100644
--- a/tools/bugpoint/ToolRunner.cpp
+++ b/tools/bugpoint/ToolRunner.cpp
@@ -411,7 +411,6 @@ int GCC::MakeSharedObject(const std::string &InputFile, FileType fileType,
#elif (defined(__POWERPC__) || defined(__ppc__)) && defined(__APPLE__)
"-single_module", // link all source files into a single module
"-dynamiclib", // `-dynamiclib' for MacOS X/PowerPC
- "-fno-common", // allow global vars w/o initializers to live
"-undefined", // in data segment, rather than generating
"dynamic_lookup", // blocks. dynamic_lookup requires that you set
// MACOSX_DEPLOYMENT_TARGET=10.3 in your env.