From 314fef6127a18db9f8c39f0081566f49c70a15f0 Mon Sep 17 00:00:00 2001 From: Charles Davis Date: Fri, 5 Mar 2010 22:28:45 +0000 Subject: [PATCH] Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. This is a workaround for (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97845 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 2 +- test/CodeGen/X86/global-sections.ll | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 47164f733f1..3b3be5d9b1a 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -652,7 +652,7 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, // FIXME: Alignment check should be handled by section classifier. if (Kind.isMergeable1ByteCString() || - Kind.isMergeable2ByteCString()) { + (Kind.isMergeable2ByteCString() && !GV->hasExternalLinkage())) { if (TM.getTargetData()->getPreferredAlignment( cast(GV)) < 32) { if (Kind.isMergeable1ByteCString()) diff --git a/test/CodeGen/X86/global-sections.ll b/test/CodeGen/X86/global-sections.ll index 1a7b5777ae8..d79c56bc463 100644 --- a/test/CodeGen/X86/global-sections.ll +++ b/test/CodeGen/X86/global-sections.ll @@ -100,7 +100,7 @@ @G8 = constant [4 x i16] [ i16 1, i16 2, i16 3, i16 0 ] -; DARWIN: .section __TEXT,__ustring +; DARWIN: .section __TEXT,__const ; DARWIN: .globl _G8 ; DARWIN: _G8: @@ -110,7 +110,6 @@ @G9 = constant [4 x i32] [ i32 1, i32 2, i32 3, i32 0 ] -; DARWIN: .section __TEXT,__const ; DARWIN: .globl _G9 ; DARWIN: _G9: