[Buildroot] [pull request v2] Pull request for branch for-2011.02/toolchain-improvements
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Sun Dec 12 14:16:56 UTC 2010
Hello,
Here is a new version of the toolchain improvement patch set. Compared
to previous version v1, this version v2 includes the following
changes:
* In external toolchain support, make the C++ support and thread
support options visible even in the case of custom external
toolchains using glibc. It is indeed possible to build glibc
toolchains without either C++ or thread support. Therefore, the
BR2_TOOLCHAIN_EXTERNAL_GLIBC symbol no longer selects C++ and
thread support. The existing external toolchain profiles have been
updated, since they all support C++ and threads.
* Improvements in the option labels and descriptions, following
Peter's comments.
* The build fix for uClibc snapshot has been removed, since it has
been merged upstream.
* Renamed the *_C_PLUS_PLUS options to *_CXX, after Yann's comment,
and used this new option in crosstool-ng.mk instead of
BR2_INSTALL_LIBSTDCPP.
* Fixed the "is not settted" string in crosstool-ng.mk, which was a
leftover from a debugging session.
* Rebased on top of the master branch, which involved resolving a
conflict against the ccache change.
You'll find below the initial announcement of v1, which included a
general description of the patchset.
Here is a set of patches that mainly improves the toolchain
configuration and support, with two majors directions :
* Turn BR2_LARGEFILE, BR2_INET_RPC, BR2_INET_RPC and similar options
into hidden options, and let the toolchain backends present them as
they wish. For example for RPC, xthe Buildroot backend says "Do you
want RPC ?" while the external toolchain backend doesn't show the
option when glibc is used, or present an option "Does your
toolchain has RPC ?" when uclibc is used.
So really those options should now be called
BR2_TOOLCHAIN_HAS_LARGEFILE, BR2_TOOLCHAIN_HAS_INET_RPC, etc, but
we kept the old names in this patch series because changing them
impacts all packages. This will be done later.
A first commit handles largefile, rpc, ipv6, locale and program
invocation options, and some later commits handle the C++ option
and thread options.
* Extend external toolchain with "profiles", i.e well-known external
toolchains. For those toolchains, Buildroot can automatically
download and install them and will automatically select the
appropriate configuration options (C library used, RPC, IPv6,
locale, etc.). So an user can know tell Buildroot to use a
CodeSourcery toolchain, and Buildroot will do all the job. Such
toolchains are extracted in $(O)/external-toolchain, but my intent
is to move it to $(O)/toolchain once Gustavoz's toolchain cleanup
work is done.
This work keeps the ability of doing some more manual things with
external toolchains:
- For an external toolchain profile, you can tell Buildroot *not*
to download it, and in that case, you must provide Buildroot
with the location of the external toolchain.
- You keep the ability to specify a custom profile, where you
will have to tell Buildroot everything: location of the
toolchain, toolchain prefix, C library used, etc.
In my opinion, those two directions really make the external
toolchains easier and simpler to use. One topic left is the gdb
options, but I decided not to change it, in order to not conflict too
much with Gustavoz's work.
The rest of the changes are more minor modifications, related to these
toolchain improvements.
Regards,
Thomas
The following changes since commit cc37a07f289f56a81195933810af705d77e95ee4:
Peter Korsgaard (1):
zlib: really fix install for static only builds
are available in the git repository at:
git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.02/toolchain-improvements
Thomas Petazzoni (14):
toolchain: Improve C library option selection
toolchain: remove ending semi-colon in helpers
toolchain: add support for external toolchain profiles and download
toolchain: remove toolchain-specific stripping
toolchain: rework C++ options
toolchain: move Stack Protection Support option
ltp-testsuite: bump version and use autotargets
toolchain: rework thread options
toolchain: check that the thread option selection is correct
gcc: disable libgomp when thread support is disabled
toolchain: BR2_NEEDS_GETTEXT must be y when uClibc is used
toolchain: expose thread options in the Crosstool-NG backend
toolchain: more verbose in crosstool-ng backend
package: pass TARGET_MAKE_ENV at install/clean/uninstall steps
Makefile | 3 +-
package/Makefile.autotools.in | 10 +-
package/Makefile.in | 12 +-
package/dmalloc/dmalloc.mk | 6 +-
package/ltp-testsuite/Config.in | 15 +-
...tp-testsuite-20101031-disable-controllers.patch | 25 ++
.../ltp-testsuite-disable-ipv6-tests.patch | 123 ----------
.../ltp-testsuite-enable-openposix-for-nptl.patch | 33 ---
.../ltp-testsuite-generate-needs-bash.patch | 8 -
.../ltp-testsuite-sched-getaffinity.patch | 11 -
.../ltp-testsuite-uclibc-syscalls.patch | 11 -
package/ltp-testsuite/ltp-testsuite.mk | 68 +-----
package/lzma/Config.in | 4 +-
package/multimedia/ffmpeg/ffmpeg.mk | 6 +-
package/openvpn/openvpn.mk | 6 +-
package/rpm/Config.in | 4 +-
toolchain/Config.in | 5 +-
toolchain/Makefile.in | 6 -
toolchain/gcc/gcc-uclibc-4.x.mk | 8 +-
toolchain/helpers.mk | 18 +-
toolchain/toolchain-buildroot/Config.in.2 | 102 ++++++++
toolchain/toolchain-common.in | 121 ++--------
toolchain/toolchain-crosstool-ng/Config.in | 95 +++++++-
.../toolchain-crosstool-ng/crosstool-ng.config | 8 +-
toolchain/toolchain-crosstool-ng/crosstool-ng.mk | 27 ++-
toolchain/toolchain-external/Config.in | 250 +++++++++++++++++++-
toolchain/toolchain-external/Config.in.2 | 17 --
toolchain/toolchain-external/ext-tool.mk | 212 ++++++++++++-----
toolchain/uClibc/uclibc.mk | 2 +-
29 files changed, 709 insertions(+), 507 deletions(-)
create mode 100644 package/ltp-testsuite/ltp-testsuite-20101031-disable-controllers.patch
delete mode 100644 package/ltp-testsuite/ltp-testsuite-disable-ipv6-tests.patch
delete mode 100644 package/ltp-testsuite/ltp-testsuite-enable-openposix-for-nptl.patch
delete mode 100644 package/ltp-testsuite/ltp-testsuite-generate-needs-bash.patch
delete mode 100644 package/ltp-testsuite/ltp-testsuite-sched-getaffinity.patch
delete mode 100644 package/ltp-testsuite/ltp-testsuite-uclibc-syscalls.patch
delete mode 100644 toolchain/toolchain-external/Config.in.2
Thanks,
--
Thomas Petazzoni
More information about the buildroot
mailing list