svn commit: r226475 - head/lib/clang

Nali Toja nalitoja at gmail.com
Tue Oct 18 10:44:57 UTC 2011


Nali Toja <nalitoja at gmail.com> writes:

>> Log:
>>   Update llvm/clang's target triple (confusingly named LLVM_HOSTTRIPLE) to
>>   $arch-unknown-freebsd10.0.
>>
>> Modified:
>>   head/lib/clang/clang.build.mk
>>
>> Modified: head/lib/clang/clang.build.mk
>> ==============================================================================
>> --- head/lib/clang/clang.build.mk	Mon Oct 17 15:54:20 2011	(r226474)
>> +++ head/lib/clang/clang.build.mk	Mon Oct 17 18:30:18 2011	(r226475)
>> @@ -14,8 +14,7 @@ CFLAGS+= -O1
>>  .endif
>>  
>>  TARGET_ARCH?=	${MACHINE_ARCH}
>> -# XXX: 8.0, to keep __FreeBSD_cc_version happy
>> -CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH:C/amd64/x86_64/}-unknown-freebsd9.0\"
>> +CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH:C/amd64/x86_64/}-unknown-freebsd10.0\"
>
> I think this results in __FreeBSD__ macro being defined as `1' and
> subsequently breaking clangworld where its value is used, e.g.

And it builds successfully with the following bandaid.

Index: contrib/llvm/tools/clang/lib/Basic/Targets.cpp
===================================================================
--- contrib/llvm/tools/clang/lib/Basic/Targets.cpp	(revision 226484)
+++ contrib/llvm/tools/clang/lib/Basic/Targets.cpp	(working copy)
@@ -239,7 +239,7 @@ class FreeBSDTargetInfo : public OSTargetInfo<Targ
     // FreeBSD defines; list based off of gcc output
 
     // FIXME: Move version number handling to llvm::Triple.
-    llvm::StringRef Release = Triple.getOSName().substr(strlen("freebsd"), 1);
+    llvm::StringRef Release = Triple.getOSName().substr(strlen("freebsd"), 2);
 
     Builder.defineMacro("__FreeBSD__", Release);
     Builder.defineMacro("__FreeBSD_cc_version", Release + "00001");


More information about the svn-src-head mailing list