Nali Toja <nalit...@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");
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to