r213010 - Define ENABLE_CLANG_ARCMT in the legacy build system too

Alp Toker alp at nuanti.com
Tue Jul 15 17:33:58 PDT 2014


On 16/07/2014 02:38, Jonathan Roelofs wrote:
>
>
> On 7/15/14, 3:22 PM, Nico Weber wrote:
>> On Tue, Jul 15, 2014 at 3:07 PM, Alp Toker <alp at nuanti.com
>> <mailto:alp at nuanti.com>> wrote:
>>
>>
>>     On 16/07/2014 00:38, Nico Weber wrote:
>>
>>         On Tue, Jul 15, 2014 at 10:08 AM, Alp Toker <alp at nuanti.com
>>         <mailto:alp at nuanti.com> <mailto:alp at nuanti.com 
>> <mailto:alp at nuanti.com>>>
>>         wrote:
>>
>>
>>              On 15/07/2014 05:07, Nico Weber wrote:
>>
>>                  On Mon, Jul 14, 2014 at 4:15 PM, Alp Toker 
>> <alp at nuanti.com
>>         <mailto:alp at nuanti.com>
>>                  <mailto:alp at nuanti.com <mailto:alp at nuanti.com>>
>>         <mailto:alp at nuanti.com <mailto:alp at nuanti.com>
>>
>>                  <mailto:alp at nuanti.com <mailto:alp at nuanti.com>>>> 
>> wrote:
>>
>>                      Author: alp
>>                      Date: Mon Jul 14 18:15:48 2014
>>                      New Revision: 213010
>>
>>                      URL:
>> http://llvm.org/viewvc/llvm-__project?rev=213010&view=rev
>> <http://llvm.org/viewvc/llvm-project?rev=213010&view=rev>
>>                      Log:
>>                      Define ENABLE_CLANG_ARCMT in the legacy build 
>> system too
>>
>>
>>                  As far as I know, make is just as supported as 
>> cmake, no?
>>
>>
>>              Not really. it hasn't seen any of the feature work CMake 
>> has for
>>              at least a year. You only need to look at SVN logs to 
>> see all the
>>              hard work and hours spent on the CMake setup to make it 
>> outclass
>>              the other setup.
>>
>>
>>         Or to see that the CMake build is maintenance for some reason 
>> ;-)
>>
>>
>>              Platform support is limited compared to CMake, likewise
>>              cross-compilation has been left behind thanks to the 
>> remarkable
>>              CMake sub-invocation work. No compilation database 
>> generation,
>>              meaning a poor experience for anyone trying to use 
>> tooling on the
>>              codebase. Broken dependency scanning, you have to 
>> "touch" files or
>>              risk getting miscompiles. And there are many Windows 
>> developers
>>              contributing these days -- their enhancements basically 
>> only ever
>>              get added to CMake while Makefiles are left with minimal 
>> build fixes.
>>
>>              Then there's bit rot. Various clang tests aren't 
>> supported with
>>              the 'makefiles' build -- they're simply not run -- the 
>> set of
>>              installed headers isn't necessarily canonical with 
>> makefiles
>>              either. Whenever I've pinged that makefiles need to 
>> track some
>>              change or other, nobody's been too interested in 
>> following up. So
>>              users really aren't getting the "full LLVM experience" 
>> with it at
>>              this point, the 'makefiles' bots aren't getting full 
>> coverage etc.
>>
>>              As far as I can tell it would take a large effort to get 
>> the
>>              traditional build system on par with CMake at this point 
>> and
>>              nobody's puting in the time to actually do that. While 
>> supported,
>>              the old system definitely meets the definition of 
>> "legacy". Only
>>              commits could have changed that, not any amount of hand 
>> waving or
>>              arguing that it's still the default in "buildit" :-)
>>
>>
>>         Sounds like you prefer the cmake build,
>>
>>
>>     No, I mean it really isn't that well supported.
>>
>>
>> There's a buildbot that uses it, and people fix it if it breaks. (See 
>> e.g. this
>> change.)
>>
>> (Note that I'm not particularly attached to the make build – if the 
>> llvm project
>> decides to drop make and only keep cmake around, I wouldn't argue 
>> against that.
>> But that hasn't happened yet.)
>
> ISTR hearing discussion about there being difficulty getting CMake to 
> use the just-built-clang to build compiler_rt. Until that's resolved, 
> that kind of makes CMake dead in the water for cross builds...

This sounds a little suspect. LLVM/clang is compiled to run on the build 
host (a specific architecture), whereas runtime libraries are built by 
the user/middleware vendor to run on any one of many possible target 
machines (e.g. a mobile phone or dishwasher, requiring its own build 
environment, SDK, headers etc.)

The fact they both have build systems or contain source code is 
incidental -- the latter is really just user data at the point the 
toolchain and no build system integration is possible. Perhaps CMake 
pulled in the wrong folder by mistake due to a bad SVN checkout?




>
> Jon
>>
>>         but there wasn't some thread about this that I missed. So 
>> please just
>>         say "in make" instead of "legacy build system" (it's more 
>> concise, too!)
>>
>>
>>     "in make"? That's a new one :-)
>>
>>
>> Maybe "with make"? "for make"? I don't speak English, but there's 
>> probably some
>> verbal construct to express the sentiment I'm going for :-)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>                      Modified:
>>                          cfe/trunk/tools/libclang/__Makefile
>>
>>                      Modified: cfe/trunk/tools/libclang/__Makefile
>>                      URL:
>> http://llvm.org/viewvc/llvm-__project/cfe/trunk/tools/__libclang/Makefile?rev=213010&__r1=213009&r2=213010&view=diff
>> <http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/Makefile?rev=213010&r1=213009&r2=213010&view=diff>
>>
>> ==============================__==============================__==================
>>                      --- cfe/trunk/tools/libclang/__Makefile (original)
>>                      +++ cfe/trunk/tools/libclang/__Makefile Mon Jul 
>> 14 18:15:48
>>         2014
>>                      @@ -37,6 +37,10 @@ ifeq ($(HOST_OS), $(filter 
>> $(HOST_OS), L
>>                               LLVMLibsOptions +=
>>                  -Wl,-soname,lib$(LIBRARYNAME)$__(SHLIBEXT)
>>                       endif
>>
>>                      +ifeq ($(ENABLE_CLANG_ARCMT),1)
>>                      +  CXX.Flags += -DCLANG_ENABLE_ARCMT
>>                      +endif
>>                      +
>>
>> ##===-------------------------__------------------------------__---------------===##
>>                       # FIXME: This is copied from the 'lto' 
>> makefile.  Should
>>                  we share
>>                      this?
>>
>> ##===-------------------------__------------------------------__---------------===##
>>
>>
>> _________________________________________________
>>                      cfe-commits mailing list
>>         cfe-commits at cs.uiuc.edu <mailto:cfe-commits at cs.uiuc.edu>
>>         <mailto:cfe-commits at cs.uiuc.__edu 
>> <mailto:cfe-commits at cs.uiuc.edu>>
>>                  <mailto:cfe-commits at cs.uiuc.__edu
>>         <mailto:cfe-commits at cs.uiuc.edu> 
>> <mailto:cfe-commits at cs.uiuc.__edu
>>         <mailto:cfe-commits at cs.uiuc.edu>>>
>>
>>         http://lists.cs.uiuc.edu/__mailman/listinfo/cfe-commits
>> <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits>
>>
>>
>>
>>              -- http://www.nuanti.com
>>              the browser experts
>>
>>
>>
>>     --
>>     http://www.nuanti.com
>>     the browser experts
>>
>>
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>

-- 
http://www.nuanti.com
the browser experts




More information about the cfe-commits mailing list