On Tue, Oct 18, 2011 at 8:08 PM, Garrett Cooper <yaneg...@gmail.com> wrote: > On Tue, Oct 18, 2011 at 10:37 AM, Dimitry Andric <d...@freebsd.org> wrote: >> Author: dim >> Date: Tue Oct 18 17:37:18 2011 >> New Revision: 226518 >> URL: http://svn.freebsd.org/changeset/base/226518 >> >> Log: >> Fix the way clang retrieves the major FreeBSD release number from the >> target triple, so that the __FreeBSD__ and __FreeBSD_cc_version builtin >> macros return the expected results. >> >> Spotted by: nalitoja at gmail.com >> >> Modified: >> head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp >> >> Modified: head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp >> ============================================================================== >> --- head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp Tue Oct 18 16:37:28 >> 2011 (r226517) >> +++ head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp Tue Oct 18 17:37:18 >> 2011 (r226518) >> @@ -238,11 +238,12 @@ protected: >> MacroBuilder &Builder) const { >> // 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); >> + unsigned Release = Triple.getOSMajorVersion(); >> + if (Release == 0U) >> + Release = 8U; >> >> - Builder.defineMacro("__FreeBSD__", Release); >> - Builder.defineMacro("__FreeBSD_cc_version", Release + "00001"); >> + Builder.defineMacro("__FreeBSD__", Twine(Release)); >> + Builder.defineMacro("__FreeBSD_cc_version", Twine(Release * 100000U + >> 1U)); >> Builder.defineMacro("__KPRINTF_ATTRIBUTE__"); >> DefineStd(Builder, "unix", Opts); >> Builder.defineMacro("__ELF__"); > > It looks like this commit broke tinderbox for multiple archs.
Rather than just complaining, I figured I should provide a fix (note the llvm namespace scoping operators for the Twine method)... -Garrett $ svn diff contrib/llvm/tools/clang/lib/Basic/Targets.cpp Index: contrib/llvm/tools/clang/lib/Basic/Targets.cpp =================================================================== --- contrib/llvm/tools/clang/lib/Basic/Targets.cpp (revision 226524) +++ contrib/llvm/tools/clang/lib/Basic/Targets.cpp (working copy) @@ -242,8 +242,9 @@ if (Release == 0U) Release = 8U; - Builder.defineMacro("__FreeBSD__", Twine(Release)); - Builder.defineMacro("__FreeBSD_cc_version", Twine(Release * 100000U + 1U)); + Builder.defineMacro("__FreeBSD__", llvm::Twine(Release)); + Builder.defineMacro("__FreeBSD_cc_version", + llvm::Twine(Release * 100000U + 1U)); Builder.defineMacro("__KPRINTF_ATTRIBUTE__"); DefineStd(Builder, "unix", Opts); Builder.defineMacro("__ELF__"); _______________________________________________ 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"