From owner-freebsd-current@FreeBSD.ORG Sun Oct 30 22:23:32 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EA411065672 for ; Sun, 30 Oct 2011 22:23:32 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id DFCDD8FC0A for ; Sun, 30 Oct 2011 22:23:31 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:4dd5:7fa:5daa:979e] (unknown [IPv6:2001:7b8:3a7:0:4dd5:7fa:5daa:979e]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 620D75C37; Sun, 30 Oct 2011 23:23:30 +0100 (CET) Message-ID: <4EADCE5E.8080703@FreeBSD.org> Date: Sun, 30 Oct 2011 23:23:26 +0100 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20111019 Thunderbird/8.0 MIME-Version: 1.0 To: David Marec References: <4EAC033E.6010201@davenulle.org> <20111030072842.GA23153@freebsd.org> <20111030075224.GA25155@freebsd.org> <4EAD8189.40607@davenulle.org> In-Reply-To: <4EAD8189.40607@davenulle.org> Content-Type: multipart/mixed; boundary="------------010501090604020301060102" Cc: freebsd-current@freebsd.org Subject: Re: [9.0-RC1 FreeBSD] [amd64] buildworld fails on building lib/libss with CLANG X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Oct 2011 22:23:32 -0000 This is a multi-part message in MIME format. --------------010501090604020301060102 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable On 2011-10-30 17:55, David Marec wrote: > Le 30.10.2011 08:52, Roman Divacky a =E9crit : > > >> On Sun, Oct 30, 2011 at 08:28:42AM +0100, Roman Divacky wrote: >>> This is a bug in clang, llvm supports "amdfam10" but the clang counte= rpart >>> wasnt updated. Thank you for the report! >> >> fwiw, I fixed it in clang r143305, so in the next import this will wor= k just >> fine :) > > Thank you for getting involved. I pulled Roman's fixes into head in r226951. This will be merged to stable/9 later, but if you want to try it out in the meantime, please use the attached diff. --------------010501090604020301060102 Content-Type: text/x-diff; name="clang-amdfam10-1.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="clang-amdfam10-1.diff" Index: contrib/llvm/tools/clang/lib/Basic/Targets.cpp =================================================================== --- contrib/llvm/tools/clang/lib/Basic/Targets.cpp (revision 226948) +++ contrib/llvm/tools/clang/lib/Basic/Targets.cpp (working copy) @@ -1282,6 +1282,7 @@ class X86TargetInfo : public TargetInfo { CK_K8SSE3, CK_Opteron, CK_OpteronSSE3, + CK_AMDFAM10, /// This specification is deprecated and will be removed in the future. /// Users should prefer \see CK_K8. @@ -1381,6 +1382,7 @@ class X86TargetInfo : public TargetInfo { .Case("k8-sse3", CK_K8SSE3) .Case("opteron", CK_Opteron) .Case("opteron-sse3", CK_OpteronSSE3) + .Case("amdfam10", CK_AMDFAM10) .Case("x86-64", CK_x86_64) .Case("geode", CK_Geode) .Default(CK_Generic); @@ -1441,6 +1443,7 @@ class X86TargetInfo : public TargetInfo { case CK_K8SSE3: case CK_Opteron: case CK_OpteronSSE3: + case CK_AMDFAM10: case CK_x86_64: return true; } @@ -1459,12 +1462,10 @@ void X86TargetInfo::getDefaultFeatures(llvm::Strin Features["ssse3"] = false; Features["sse41"] = false; Features["sse42"] = false; + Features["sse4a"] = false; Features["aes"] = false; Features["avx"] = false; - // LLVM does not currently recognize this. - // Features["sse4a"] = false; - // FIXME: This *really* should not be here. // X86_64 always has SSE2. @@ -1561,6 +1562,11 @@ void X86TargetInfo::getDefaultFeatures(llvm::Strin setFeatureEnabled(Features, "sse3", true); setFeatureEnabled(Features, "3dnowa", true); break; + case CK_AMDFAM10: + setFeatureEnabled(Features, "sse3", true); + setFeatureEnabled(Features, "sse4a", true); + setFeatureEnabled(Features, "3dnowa", true); + break; case CK_C3_2: setFeatureEnabled(Features, "mmx", true); setFeatureEnabled(Features, "sse", true); @@ -1604,6 +1610,8 @@ bool X86TargetInfo::setFeatureEnabled(llvm::String else if (Name == "avx") Features["avx"] = Features["sse"] = Features["sse2"] = Features["sse3"] = Features["ssse3"] = Features["sse41"] = Features["sse42"] = true; + else if (Name == "sse4a") + Features["sse4a"] = true; } else { if (Name == "mmx") Features["mmx"] = Features["3dnow"] = Features["3dnowa"] = false; @@ -1630,6 +1638,8 @@ bool X86TargetInfo::setFeatureEnabled(llvm::String Features["aes"] = false; else if (Name == "avx") Features["avx"] = false; + else if (Name == "sse4a") + Features["sse4a"] = false; } return true; @@ -1826,6 +1836,11 @@ void X86TargetInfo::getTargetDefines(const LangOpt Builder.defineMacro("__k8__"); Builder.defineMacro("__tune_k8__"); break; + case CK_AMDFAM10: + Builder.defineMacro("__amdfam10"); + Builder.defineMacro("__amdfam10__"); + Builder.defineMacro("__tune_amdfam10__"); + break; case CK_Geode: Builder.defineMacro("__geode"); Builder.defineMacro("__geode__"); --------------010501090604020301060102--