Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Romain Naour <romain.naour@openwide.fr>
To: buildroot@busybox.net
Subject: [Buildroot] The C++11 issue
Date: Sat, 21 Mar 2015 17:37:03 +0100	[thread overview]
Message-ID: <550D9E2F.4080708@openwide.fr> (raw)
In-Reply-To: <20150321102858.5e13ec41@free-electrons.com>

Hi Thomas,

Le 21/03/2015 10:28, Thomas Petazzoni a ?crit :
> 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 ?

Some host packages start to require c++11 too, like host-thrift.

http://autobuild.buildroot.net/?reason=host-thrift-0.9.2

(similar issue with target's thrift)
http://autobuild.buildroot.net/results/633/63340efff9adae966ec1d74ebc123d0437b75b63/build-end.log

In the case of host-thrift, the check for C++11 is horribly broken since there
is *sometime* some garbage in ax_cxx_compile_cxx11_required variable.

I can't reproduce the host-thrift issue on my Debian6 VM which use a gcc 4.4
because of that.

The custom m4 macro AX_CXX_COMPILE_STDCXX_11 used in configure.ac would stop the
build if no C++11 support is available:

AX_CXX_COMPILE_STDCXX_11([noext])

But if you look at the configure script generated by autoreconf,
ax_cxx_compile_cxx11_required is initialized with "truednl" !

ax_cxx_compile_cxx11_required=truednl

Then the build system fall back in C++11 optional requirement mode and finishes
the build...

All that to say that we might need also a check for C++11 for the host.

Otherwise, I like Arnout's proposal about BR2_GCC_AT_LEAST_4_X symbols.

Best regards,
Romain

> 
> Thomas
> 

      parent reply	other threads:[~2015-03-21 16:37 UTC|newest]

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

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=550D9E2F.4080708@openwide.fr \
    --to=romain.naour@openwide.fr \
    --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