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-all
mailing list