[Buildroot] [PATCH 0/9] Add gcc version dependency mechanism

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Tue Aug 4 18:00:32 UTC 2015


Hello,

We are getting more and more packages that use C11 or C++11 support,
or otherwise have some dependency on features available only since
certain gcc versions.

While doing dependencies on the features themselves (like C++11
support, or C11 support) would be better, it is actually not very
practical: C++11 support has only been gradually introduced in gcc. So
while a certain version of gcc may have sufficient C++11 support for a
given package, it may not be the case for another package using more
advanced C++11 features, supported only in a later gcc version. Since
we don't want to add gazillions of gcc feature options, let's support
this by using gcc versions instead.

The patches are fairly straightforward and follow to the letter the
version dependency mechanism used for kernel headers.

The first four patches introduce the gcc version dependency mechanism
itself, the fifth patch solves the libsigrok build failures currently
affecting the autobuilders, and the last four patches refactor
existing packages to use the gcc version dependency mechanism.

This set of patches is also available at:

  http://git.free-electrons.com/users/thomas-petazzoni/buildroot/log/?h=gcc-version

Thanks!

Thomas

Thomas Petazzoni (9):
  toolchain: add common gcc version hidden config options
  gcc: select the appropriate BR2_TOOLCHAIN_GCC_AT_LEAST_* option
  toolchain-external: add support for gcc version dependency
  docs/manual: document gcc version dependencies
  libsigrok: depends on gcc >= 4.7
  upmpdcli: update to use the gcc version dependency mechanism
  zmqpp: update to use the gcc version dependency mechanism
  libupnpp: update to use the gcc version dependency mechanism
  mpd: update to use the gcc version dependency mechanism

 docs/manual/adding-packages-directory.txt          |  6 ++
 package/gcc/Config.in.host                         |  7 +++
 package/libsigrok/Config.in                        | 11 ++--
 package/libupnpp/Config.in                         | 11 +---
 package/mpd/Config.in                              |  9 +--
 package/pulseview/Config.in                        |  9 +--
 package/sigrok-cli/Config.in                       |  6 +-
 package/upmpdcli/Config.in                         | 15 +----
 package/zmqpp/Config.in                            | 11 ++--
 toolchain/helpers.mk                               | 22 +++++++
 toolchain/toolchain-common.in                      | 44 ++++++++++++++
 toolchain/toolchain-external/Config.in             | 70 ++++++++++++++++++++++
 toolchain/toolchain-external/toolchain-external.mk |  2 +
 13 files changed, 175 insertions(+), 48 deletions(-)

-- 
2.5.0



More information about the buildroot mailing list