Bruce Hoult via llvm-dev
2016-Apr-27 12:42 UTC
[llvm-dev] [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
cmake is a big dependency, but it doesn't seem to have many dependencies itself. They say it's just a C++ compiler and a make (not necessarily gnu). Probably there are one or two more than that :-) A shell, for a start; git or tar/gzip etc. The current *nix source tarball is 6.4 MB gzipped. Just for fun I grabbed it and tried building on four machines: - 3.4 GHz i7 3770 with Ubuntu 14.04 - 2.2 GHz 2011 i7 MacBook Pro with Yosemite - Odroid XU4 with Ubuntu Mate 15.10 (Exynos5422 4x A15 @2GHz, 4x A7 @1.4 GHz) - Raspberry Pi 3 with Raspbian (4x A53 @1.2 GHz) I used --parallel=4 on the Pi, 8 on the others ./bootstrap - 1m10s linux - 2m05s mbp - 3m18s xu4 - 7m28s pi3 make - 1m07s linux - 1m18s mbp - 5m14s xu4 - 16m31s Pi3 On Wed, Apr 27, 2016 at 10:08 AM, Renato Golin via llvm-dev < llvm-dev at lists.llvm.org> wrote:> We can't assume every Linux is Ubuntu, nor that every platform has > packages for this or that release. > > You are asking for a move to built CMake support, from packages, and > that's a big move. We can't control CMake's progress nor its repository. > > This is bigger than a simple version upgrade, regardless of which version > the new Ubuntu or freebsd ships, or the fact that other systems already > need to build it. > > Cheers, > Renato > On 26 Apr 2016 11:33 p.m., "Chris Bieneman via cfe-dev" < > cfe-dev at lists.llvm.org> wrote: > >> Actually forward to LLVM-dev because I obviously don’t know how email >> works… >> >> -Chris >> >> Begin forwarded message: >> >> *From: *Chris Bieneman via cfe-dev <cfe-dev at lists.llvm.org> >> *Subject: **[cfe-dev] Raising CMake minimum version to 3.4.3* >> *Date: *April 26, 2016 at 3:01:23 PM PDT >> *To: *cfe-dev <cfe-dev at lists.llvm.org>, llvm-dev at lists.apple.com >> *Cc: *Galina Kistanova <gkistanova at gmail.com> >> *Reply-To: *Chris Bieneman <beanz at apple.com> >> >> Hello llvm-dev and cfe-dev, >> >> I want open up the discussion of upgrading our minimum required CMake >> version. >> >> In the past when we’ve discussed this one of the major reasons for not >> moving forward was that the Ubuntu LTS release was on CMake 2.8.12.x. A few >> days ago Ubuntu 16.04, the new LTS, was released, and it contains CMake >> 3.5.1. >> >> I have a couple of motivations for this, the biggest of which is that >> I’ve hit a wall trying to overcome some limitations in the CMake >> ExternalProject module which I can’t get past without being on CMake 3.4 or >> newer. These limitations make using ExternalProject to build the LLVM >> test-suite and runtime libraries (compiler-rt, libcxx, etc) difficult. >> >> The other big motivation that I have for this is the ability to cleanup >> code. We have a lot of CMake code that checks CMAKE_VERSION and enables and >> disables features used on the version. None of the places where we >> currently have CMAKE_VERSION checks should impact build correctness, but >> most people don’t realize that if you’re using Ninja your build will be >> faster on a newer CMake than on an older one. It would be nice if we just >> pushed the bar up and could remove a bunch of those conditionals. >> >> To do this we need bot maintainers to update their CMake installations, >> so we need some consensus that (1) we want to do this and (2) what a >> reasonable timeline for doing it is. >> >> What I’d like to do is raise the minimum version for all LLVM projects to >> CMake 3.4.3 at the end of May. Setting the date at the end of May gives bot >> maintainers and developers lots of time to update, and CMake 3.4.3 is the >> last CMake 3.4 release and it is widely available. For reference here’s a >> list of linux distributions and their CMake versions: >> >> Ubuntu Wily -> 3.2.2 >> Ubuntu Xenial -> 3.5.1 >> Ubuntu Yakkety -> 3.5.1 >> Debian jessie -> 3.0.2 >> Debian stretch -> 3.5.1 >> Debian sid -> 3.5.2 >> FreeBSD 10.2 -> 3.5.0 >> FreeBSD HEAD -> 3.5.2 >> >> Feedback? >> >> Thanks, >> -Chris >> _______________________________________________ >> cfe-dev mailing list >> cfe-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev >> >> >> >> _______________________________________________ >> cfe-dev mailing list >> cfe-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev >> >> > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160427/87e4a4d4/attachment.html>
Renato Golin via llvm-dev
2016-Apr-27 12:47 UTC
[llvm-dev] [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
On 27 April 2016 at 13:42, Bruce Hoult <bruce at hoult.org> wrote:> cmake is a big dependency, but it doesn't seem to have many dependencies > itself. They say it's just a C++ compiler and a make (not necessarily gnu). > Probably there are one or two more than that :-) A shell, for a start; git > or tar/gzip etc.It needs a compatible version of C and C++ libraries. If you build on a modern machine but run on an older Linux, you'll get at least libstdc++ clashes. Also, compiling CMake and Ninja is not the most reliable way of deploying buildbots. What's wrong with using newer CMake features IFF you have that version? Then you can choose where to incur the extra deployment cost or not based on your need of that feature. cheers, --renato
Bruce Hoult via llvm-dev
2016-Apr-27 14:18 UTC
[llvm-dev] [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
Probably no one cares, but add to those, machines at home: - i7 6700k, ubuntu 14.04: bootstrap 0m32s, make 0m35s - Raspberry Pi 2 (4x A7 @900 MHz), Raspbian: bootstrap 9m40s, make 20m41s Interesting that the Pi 3 only gains 25% - 30% over the Pi 2, whereas the newer i7 is double the speed of the 2012 one. On Thu, Apr 28, 2016 at 12:42 AM, Bruce Hoult <bruce at hoult.org> wrote:> cmake is a big dependency, but it doesn't seem to have many dependencies > itself. They say it's just a C++ compiler and a make (not necessarily gnu). > Probably there are one or two more than that :-) A shell, for a start; git > or tar/gzip etc. > > The current *nix source tarball is 6.4 MB gzipped. Just for fun I grabbed > it and tried building on four machines: > > - 3.4 GHz i7 3770 with Ubuntu 14.04 > - 2.2 GHz 2011 i7 MacBook Pro with Yosemite > - Odroid XU4 with Ubuntu Mate 15.10 (Exynos5422 4x A15 @2GHz, 4x A7 @1.4 > GHz) > - Raspberry Pi 3 with Raspbian (4x A53 @1.2 GHz) > > I used --parallel=4 on the Pi, 8 on the others > > ./bootstrap > - 1m10s linux > - 2m05s mbp > - 3m18s xu4 > - 7m28s pi3 > > make > - 1m07s linux > - 1m18s mbp > - 5m14s xu4 > - 16m31s Pi3 > > > On Wed, Apr 27, 2016 at 10:08 AM, Renato Golin via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> We can't assume every Linux is Ubuntu, nor that every platform has >> packages for this or that release. >> >> You are asking for a move to built CMake support, from packages, and >> that's a big move. We can't control CMake's progress nor its repository. >> >> This is bigger than a simple version upgrade, regardless of which version >> the new Ubuntu or freebsd ships, or the fact that other systems already >> need to build it. >> >> Cheers, >> Renato >> On 26 Apr 2016 11:33 p.m., "Chris Bieneman via cfe-dev" < >> cfe-dev at lists.llvm.org> wrote: >> >>> Actually forward to LLVM-dev because I obviously don’t know how email >>> works… >>> >>> -Chris >>> >>> Begin forwarded message: >>> >>> *From: *Chris Bieneman via cfe-dev <cfe-dev at lists.llvm.org> >>> *Subject: **[cfe-dev] Raising CMake minimum version to 3.4.3* >>> *Date: *April 26, 2016 at 3:01:23 PM PDT >>> *To: *cfe-dev <cfe-dev at lists.llvm.org>, llvm-dev at lists.apple.com >>> *Cc: *Galina Kistanova <gkistanova at gmail.com> >>> *Reply-To: *Chris Bieneman <beanz at apple.com> >>> >>> Hello llvm-dev and cfe-dev, >>> >>> I want open up the discussion of upgrading our minimum required CMake >>> version. >>> >>> In the past when we’ve discussed this one of the major reasons for not >>> moving forward was that the Ubuntu LTS release was on CMake 2.8.12.x. A few >>> days ago Ubuntu 16.04, the new LTS, was released, and it contains CMake >>> 3.5.1. >>> >>> I have a couple of motivations for this, the biggest of which is that >>> I’ve hit a wall trying to overcome some limitations in the CMake >>> ExternalProject module which I can’t get past without being on CMake 3.4 or >>> newer. These limitations make using ExternalProject to build the LLVM >>> test-suite and runtime libraries (compiler-rt, libcxx, etc) difficult. >>> >>> The other big motivation that I have for this is the ability to cleanup >>> code. We have a lot of CMake code that checks CMAKE_VERSION and enables and >>> disables features used on the version. None of the places where we >>> currently have CMAKE_VERSION checks should impact build correctness, but >>> most people don’t realize that if you’re using Ninja your build will be >>> faster on a newer CMake than on an older one. It would be nice if we just >>> pushed the bar up and could remove a bunch of those conditionals. >>> >>> To do this we need bot maintainers to update their CMake installations, >>> so we need some consensus that (1) we want to do this and (2) what a >>> reasonable timeline for doing it is. >>> >>> What I’d like to do is raise the minimum version for all LLVM projects >>> to CMake 3.4.3 at the end of May. Setting the date at the end of May gives >>> bot maintainers and developers lots of time to update, and CMake 3.4.3 is >>> the last CMake 3.4 release and it is widely available. For reference here’s >>> a list of linux distributions and their CMake versions: >>> >>> Ubuntu Wily -> 3.2.2 >>> Ubuntu Xenial -> 3.5.1 >>> Ubuntu Yakkety -> 3.5.1 >>> Debian jessie -> 3.0.2 >>> Debian stretch -> 3.5.1 >>> Debian sid -> 3.5.2 >>> FreeBSD 10.2 -> 3.5.0 >>> FreeBSD HEAD -> 3.5.2 >>> >>> Feedback? >>> >>> Thanks, >>> -Chris >>> _______________________________________________ >>> cfe-dev mailing list >>> cfe-dev at lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev >>> >>> >>> >>> _______________________________________________ >>> cfe-dev mailing list >>> cfe-dev at lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev >>> >>> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160428/5488c1ff/attachment.html>
Florent Castelli via llvm-dev
2016-Apr-27 14:28 UTC
[llvm-dev] [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
> On 27 Apr 2016, at 14:47, Renato Golin via cfe-dev <cfe-dev at lists.llvm.org> wrote: > > On 27 April 2016 at 13:42, Bruce Hoult <bruce at hoult.org> wrote: >> cmake is a big dependency, but it doesn't seem to have many dependencies >> itself. They say it's just a C++ compiler and a make (not necessarily gnu). >> Probably there are one or two more than that :-) A shell, for a start; git >> or tar/gzip etc. > > It needs a compatible version of C and C++ libraries. If you build on > a modern machine but run on an older Linux, you'll get at least > libstdc++ clashes.It doesn’t link dynamically with libstdc++ and it requires glibc 2.2.5 apparently, from 2002. They make sure it works on ancient systems when they do a release. If you want to build a bleeding edge compiler on a system from 2002, you may have bigger issues than trying to run CMake.> > Also, compiling CMake and Ninja is not the most reliable way of > deploying buildbots.Ninja is not the problem here though and I would agree that it’s not reliable. Fortunately, CMake can generate projects compatible with quite old versions of Make already.> > What's wrong with using newer CMake features IFF you have that > version? Then you can choose where to incur the extra deployment cost > or not based on your need of that feature.Maintenance burden. Few people will understand why there’s 2 code paths in the build script and will duplicate the wrong one when creating a new module and looking for “inspiration".> > cheers, > --renato > _______________________________________________ > cfe-dev mailing list > cfe-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev/Florent
Possibly Parallel Threads
- [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
- Fwd: [cfe-dev] Raising CMake minimum version to 3.4.3
- [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
- [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3
- [cfe-dev] Fwd: Raising CMake minimum version to 3.4.3