Allow hbd to be bugpointable on darwin by fixing common and linkonce codegen
authorNate Begeman <natebegeman@mac.com>
Tue, 9 Nov 2004 04:01:18 +0000 (04:01 +0000)
committerNate Begeman <natebegeman@mac.com>
Tue, 9 Nov 2004 04:01:18 +0000 (04:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17637 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/ToolRunner.cpp
lib/Target/PowerPC/PPCAsmPrinter.cpp
tools/bugpoint/ToolRunner.cpp

index 1584db4ed32b9e0f711158ab122cc96b85888b65..fcbb3c15b5c3ab33b921b88f23f172d74085c92b 100644 (file)
@@ -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.
index fd86f1b59cd9985ae6ace0491cadccb422d04b69..62c2021913449ca21309a13553f7e90399b4072f 100644 (file)
@@ -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())
index 1584db4ed32b9e0f711158ab122cc96b85888b65..fcbb3c15b5c3ab33b921b88f23f172d74085c92b 100644 (file)
@@ -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.