All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] The C++11 issue
Date: Sat, 21 Mar 2015 10:28:58 +0100	[thread overview]
Message-ID: <20150321102858.5e13ec41@free-electrons.com> (raw)

Hello,

A number of packages start to depend on C++11 features, which are not
available in all toolchains: toolchains using old compiler versions
(such as the Blackfin one), but also some older Crosstool-NG generated
toolchains.

This is causing a number of build failures these days, such as:

        bfin |                  jsoncpp-1.6.0 | NOK | http://autobuild.buildroot.net/results/7fac9e4b3aa0746c860fd032a4b7b8663fb46fc8/
        bfin |                  jsoncpp-1.6.0 | NOK | http://autobuild.buildroot.net/results/20b3f33e61286891a7804352c25326ea9faccfbb/
        bfin |                  jsoncpp-1.6.0 | NOK | http://autobuild.buildroot.net/results/e482ba1d06c7fe2736ab3e79796297db8fbea187/
         arm |                  jsoncpp-1.6.0 | NOK | http://autobuild.buildroot.net/results/1bf20d204042810bedad58dd2466bde9ae7b3fd6/

(std::snprintf is a C++11 feature)

So, it looks like we need to add a BR2_TOOLCHAIN_HAS_CXX11 option, with
the usual handling.

However, it is not very clear-cut what is a C++11 supporting toolchain,
and what is not: C++11 was added progressively in gcc, and there are
still a few things missing apparently. According to
https://gcc.gnu.org/projects/cxx0x.html, most of the compiler related
features have been merged by gcc 4.8. But in terms of libstdc++
support, the page
https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x
is a lot less clear, as it only indicates the mainline gcc status, and
not the gcc releases.

So how do we decide whether a particular toolchain has C++11 support ?
Do we simply decide that gcc >= 4.8 have sufficient C++11 support for
now, and we'll adjust things later if needed ?

What do you think ?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

             reply	other threads:[~2015-03-21  9:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-21  9:28 Thomas Petazzoni [this message]
2015-03-21 14:52 ` [Buildroot] The C++11 issue Arnout Vandecappelle
2015-03-22 19:00   ` Bernd Kuhls
2015-03-22 23:22   ` Gustavo Zacarias
2015-03-21 16:37 ` Romain Naour

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=20150321102858.5e13ec41@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.