Fixup our uses of various linkages to match how llvm now works.  I think they are all
correct, but an extra set of ObjC eyes would be good.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66342 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index 11836ad..e48b6c0 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -3885,7 +3885,9 @@
     return Builder.CreateLoad(PTGV, false, "tmp");
   PTGV = new llvm::GlobalVariable(
                                 Init->getType(), false,
-                                llvm::GlobalValue::WeakLinkage,
+                                // FIXME: review, was WeakLinkage,
+                                // also review all other WeakLinkage changes
+                                llvm::GlobalValue::WeakAnyLinkage,
                                 Init,
                                 ProtocolName,
                                 &CGM.getModule());
@@ -4308,12 +4310,12 @@
   
   if (Entry) {
     // Already created, fix the linkage and update the initializer.
-    Entry->setLinkage(llvm::GlobalValue::WeakLinkage);
+    Entry->setLinkage(llvm::GlobalValue::WeakAnyLinkage);
     Entry->setInitializer(Init);
   } else {
     Entry = 
     new llvm::GlobalVariable(ObjCTypes.ProtocolnfABITy, false,
-                             llvm::GlobalValue::WeakLinkage,
+                             llvm::GlobalValue::WeakAnyLinkage,
                              Init, 
                              std::string("\01l_OBJC_PROTOCOL_$_")+ProtocolName,
                              &CGM.getModule());
@@ -4327,7 +4329,7 @@
   // __DATA, __objc_protolist
   llvm::GlobalVariable *PTGV = new llvm::GlobalVariable(
                                       ObjCTypes.ProtocolnfABIPtrTy, false,
-                                      llvm::GlobalValue::WeakLinkage,
+                                      llvm::GlobalValue::WeakAnyLinkage,
                                       Entry, 
                                       std::string("\01l_OBJC_LABEL_PROTOCOL_$_")
                                                   +ProtocolName,
@@ -4547,7 +4549,7 @@
     Values[1] = GetMethodVarName(Sel);
     llvm::Constant *Init = llvm::ConstantStruct::get(Values);
     GV =  new llvm::GlobalVariable(Init->getType(), false,
-                                   llvm::GlobalValue::WeakLinkage,
+                                   llvm::GlobalValue::WeakAnyLinkage,
                                    Init,
                                    Name,
                                    &CGM.getModule());
@@ -5108,7 +5110,7 @@
 
   Entry = 
     new llvm::GlobalVariable(ObjCTypes.EHTypeTy, false,
-                             llvm::GlobalValue::WeakLinkage,
+                             llvm::GlobalValue::WeakAnyLinkage,
                              Init, 
                              (std::string("OBJC_EHTYPE_$_") + 
                               ID->getIdentifier()->getName()),