From: Mario Lang <mlang@blind.guru>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/cmake: bump version to 3.10.0 and add license hash
Date: Sat, 16 Dec 2017 11:52:12 +0100 [thread overview]
Message-ID: <877etnj677.fsf@home.blind.guru> (raw)
In-Reply-To: <20171212123040.35400bc4@windsurf> (Thomas Petazzoni's message of "Tue, 12 Dec 2017 12:30:40 +0100")
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> And I had to revert it, because it was causing gazillions of build
> failures of host-cmake:
>
> http://autobuild.buildroot.net/?reason=host-cmake-3.10.0
>
> Indeed, CMake is now using the emplace_hint method, which is only
> available in C++11, so it probably requires gcc 4.7 or gcc 4.8, and the
> CMake package doesn't account for this dependency.
>
> The gotcha is that it's not going to be easy to solve. Indeed, our
> current logic is:
>
> 1. If there is a suitable CMake available on the system, we use it
>
> 2. If there's no suitable CMake available on the system, we build our
> own.
>
> In situation (1), we are still good, no problem. But in situation (2),
> what do we do if we cannot built CMake at all because the host compiler
> is too old ? The only option would be to prevent the user from enabling
> any package that will need host-cmake. This means all cmake-based
> packages, and all their reverse dependencies.
>
> Really, that's quite a bit of work. Perhaps this should instead be
> taken as a bug/regression to CMake, and see if they are willing to use
> a different approach when emplace_hint is not available ?
To move to C++11 was apparently intentional, and not an oversight.
Quoting the release notes of 3.10:
"
Deprecated and Removed Features?
* Support for building CMake itself with C++98 compilers was
dropped. CMake is now implemented using C++11.
"
6 years after the standard was released, some projects are
starting to move to it. LLVM comes to mind, which you also can't build
without C++11 anymore.
> Seems like emplace_hint() is adding a new element to a container, with
> a hint as to where it should be added. So I believe this is an
> optimization, so perhaps if emplace_hint() is not available, CMake
> could fallback on just inserting the element in the container.
This particular case might be patchable, but the explicit notice quoted
above makes me think it might not be worthwhile to try and write a
backporting patch.
> Mario, are you interested in looking into this ?
Yes, actually, I am. However, I am a bit to rooky to Buildroot to
understand enough about how you handle backwards compatibility in
general. My gut feeling as a C++11 fan would be to just accept the fact
that C++11 is going to be required by projects in the future. However,
I gather Buildroot has official minimal compiler requirements which are
likely dictated by toolchains provided by other vendors?
In the meantime, since I found this notice in 3.10, we might consider
moving cmake at least to 3.9?
--
CYa,
?????
next prev parent reply other threads:[~2017-12-16 10:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-10 23:33 [Buildroot] [PATCH] package/cmake: bump version to 3.10.0 and add license hash Mario Lang
2017-12-12 6:07 ` Thomas Petazzoni
2017-12-12 11:30 ` Thomas Petazzoni
2017-12-16 10:52 ` Mario Lang [this message]
2017-12-16 10:52 ` [Buildroot] FW: " Kees van Unen
2017-12-16 12:34 ` [Buildroot] " Thomas Petazzoni
2017-12-17 17:39 ` Yann E. MORIN
2017-12-18 22:15 ` Peter Korsgaard
2017-12-19 8:39 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877etnj677.fsf@home.blind.guru \
--to=mlang@blind.guru \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox