<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>+1 to Medhi's point here.</p>
<p>Using a standalone cmake is easy; using a customer toolchain is
not.</p>
<p>Philip<br>
</p>
<div class="moz-cite-prefix">On 7/16/20 6:38 PM, Mehdi AMINI via
llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANF-O=Z3DhXJs_AM6xfewXOdACQBcGtimdSa2LwVg5ULx9-vrw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div>While on the surface they seem like very similar
dependencies, I see quite a difference in terms of size and
complexity in order to download and bootstrap gcc vs CMake
though. I could envision bootstrapping CMake as part of my
buildbot, but I likely wouldn't do it as easily with gcc for
instance.</div>
<div><br>
</div>
<div>Also the requirement on the compiler version may apply
transitively to users of LLVM (through header inclusion) while
the CMake version is very local to LLVM.</div>
<div><br>
</div>
<div>-- </div>
<div>Mehdi</div>
<div><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Jul 16, 2020 at 6:25
PM Keane, Erich via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org"
moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div lang="EN-US">
<div class="gmail-m_-1709964181636218775WordSection1">
<p class="MsoNormal">It is curious to me that we had so
much push back about moving host-compiler versions,
yet so little on the cmake versions. In my opinion,
we need to have a unified ‘dependency age’ policy.
Cmake 3.13.4 was released about 18 months ago, so
unless we’re willing to move our GCC version to 8.3
JUST as easily, this seems like a horrific double
standard.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><b>From:</b> llvm-dev <<a
href="mailto:llvm-dev-bounces@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev-bounces@lists.llvm.org</a>>
<b>On Behalf Of
</b>James Y Knight via llvm-dev<br>
<b>Sent:</b> Thursday, July 16, 2020 6:21 PM<br>
<b>To:</b> Jessica Clarke <<a
href="mailto:jrtc27@jrtc27.com" target="_blank"
moz-do-not-send="true">jrtc27@jrtc27.com</a>><br>
<b>Cc:</b> <a href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<b>Subject:</b> Re: [llvm-dev] Upgrading LLVM's
minimum required CMake version</p>
<p class="MsoNormal"> </p>
<div>
<p class="MsoNormal">Please, no more waiting on CMake
versions in distro LTS releases. We have been <i>way</i> too
conservative already, waiting this long.</p>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">Downloading and building a
local copy of cmake is trivial. You don't even
need to install it. Anyone who is developing and
building LLVM can definitely manage it. Not only
that, kitware even has an official apt repository
-- you can install a deb if installing that seems
easier for you (<a href="https://apt.kitware.com/"
target="_blank" moz-do-not-send="true">https://apt.kitware.com/</a>).</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
<p class="MsoNormal"> </p>
<div>
<div>
<p class="MsoNormal">On Thu, Jul 16, 2020 at 8:05 PM
Jessica Clarke via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:</p>
</div>
<blockquote style="border-style:none none none
solid;border-left-width:1pt;border-left-color:rgb(204,204,204);padding:0in
0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">On 30 Jun 2020, at 16:04, Louis
Dionne via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
>> On Apr 8, 2020, at 13:06, Louis Dionne
<<a href="mailto:ldionne@apple.com"
target="_blank" moz-do-not-send="true">ldionne@apple.com</a>>
wrote:<br>
>>> On Apr 2, 2020, at 10:19, Louis
Dionne via llvm-dev <<a
href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>>
wrote:<br>
>>> <br>
>>> Okay, so we've had some discussion on
this thread, and although some people (including
me) would like a more aggressive policy, I believe
the following will not get any objection (based on
the thread). On April 23rd 2020, Ubuntu 20.04 LTS
will ship with CMake 3.16.x. This will make the
lower bound for LTS distributions be 3.13.4, and
so I suggest we upgrade to that. Here's a proposed
process:<br>
>>> <br>
>>> 1. Immediately add a CMake warning in
<root>/llvm/CMakeLists.txt saying that CMake
3.13.4 will be the new minimum version starting
with LLVM 12.0.0, and mentioning the versions used
in various LTSes.<br>
>>> 2. Immediately send a courtesy
heads-up email to all build-bot owners telling
them about the upcoming change.<br>
>>> 3. Right after we branch off the
release branch for LLVM 11.0.0 (the next one),
make the minimum CMake version required be 3.13.4.<br>
>>> 4. Iterate on (3) until all bots are
migrated.<br>
>>> 5. Send a message to the list saying
the bump is complete. At that time, projects are
free to start using features from 3.13.4.<br>
>>> <br>
>>> Unless someone else absolutely wants
to bite the bullet, I volunteer to do the above
steps.<br>
>> <br>
>> Ok, so the thread has kept going, but
AFAICT all the discussion is about a policy for
"automatic" upgrades. So I've went ahead and did
the first two steps of the above algorithm:<br>
>> <br>
>> (1) Review at <a
href="https://reviews.llvm.org/D77740"
target="_blank" moz-do-not-send="true">https://reviews.llvm.org/D77740</a><br>
>> (2) Email sent to the owners of all build
slaves listed on <a
href="http://lab.llvm.org:8011/buildslaves"
target="_blank" moz-do-not-send="true">
http://lab.llvm.org:8011/buildslaves</a><br>
>> <br>
>> Just to reiterate, this means that as
soon as we branch LLVM 11.0.0 (the NEXT release),
CMake 3.13.4 will be the minimum required version.<br>
> <br>
> Hi,<br>
> <br>
> Just a heads up that about two weeks from
now, we should be branching for the LLVM 11.0.0
release. Right after we branch, I will implement
steps (3) and (4) of the algorithm described
above, which is to make the minimum CMake version
required be 3.13.4. I will do this by checking-in
this patch: <a
href="https://reviews.llvm.org/D78646"
target="_blank" moz-do-not-send="true">
https://reviews.llvm.org/D78646</a>.<br>
> <br>
> That patch will cause errors whenever the
CMake version is less than 3.13.4 -- I will then
revert and re-apply this patch until all build
bots have upgraded to a sufficient CMake. The
patch was crafted to be minimal and
revert-friendly. Note that build bot owners have
already been contacted in March and pinged several
times again for those who had not yet upgraded. At
this time, I think only 1-2 bots have not
upgraded.<br>
> <br>
> Once everyone has upgraded, I will then apply
this patch: <a
href="https://reviews.llvm.org/D78648"
target="_blank" moz-do-not-send="true">
https://reviews.llvm.org/D78648</a>. That patch
marks the minimum CMake version required as being
3.13.4 throughout the monorepo in a slightly more
invasive but definitive way. Once that's all done,
I'll report to the list that the version bump is
complete and we can all start using modern CMake
features.<br>
> <br>
> Cheers,<br>
> Louis<br>
<br>
I missed this entire discussion but would like to
chime in. All of our department's machines run on
Ubuntu 18.04 as standard. I suspect the same is
true across a large number of organisations, as
Ubuntu is a very popular distribution, and the
18.04 LTS is still widely supported by most
projects. Whilst Ubuntu 20.04 has been released
for a couple of months, it's going to be a while
until everyone has updated. In fact, it isn't yet
*officially supported* to upgrade from 18.04 to
20.04, as you have to wait for the first point
release for that, due in August. So as far as
Canonical are concerned, if you installed 18.04
LTS, you should still be on that, and 20.04 isn't
ready for those people quite yet. That's a lot of
people affected who may not be following llvm-dev
but will suddenly find themselves in need of a
custom CMake.<br>
<br>
I would urge people to reconsider this move. I can
see the attraction of moving to the latest CMake,
but we've managed just fine so far, do we really
need to move to the latest and greatest right now?
Ditching support for 18.04 in a year's time would
seem reasonable, but expecting everyone to have
moved over when it's not yet officially supported
after just 3 months is not, and forcing everyone
on those distributions to build their own copy of
CMake just for LLVM is annoying (sure, I'm
perfectly capable of doing it, but it's still a
nuisance that aggravates me). I'd suggest waiting
at least until 20.04.1 has been released, so
waiting until the next release cycle would allow
that and give around 6 months for people to
update, if not until the release cycle after that
(though that may be a harder pill for some members
to swallow). But we could at least bump to 3.10.2
in the meantime.<br>
<br>
Jess<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org"
target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<a
href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></p>
</blockquote>
</div>
</div>
</div>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank"
moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
<a
href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
</blockquote>
</body>
</html>