All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support
@ 2013-06-30 19:28 Thomas Petazzoni
  2013-06-30 19:28 ` [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
                   ` (22 more replies)
  0 siblings, 23 replies; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

Hello,

This is the third version of the patch set that converts the internal
toolchain backend to packages. The most notable feature of this new
version is that it adds support to build a toolchain with the eglibc C
library (though we should consider this experimental for the moment).

This patch set is no longer at the RFC stage, I've done quite a bit of
testing and it seems to be ready for more widespread testing. I would
really appreciate if others could take it and test it in their context
and report success/issues.

The code is also available from:

   git://git.free-electrons.com/users/thomas-petazzoni/buildroot.git toolchain-infra

Changes from RFCv2:

 * Rebased on top of master, merged the strip/debug uClibc changes
   done by Gustavo.

 * Added support for installing the uClibc test suite (broken on ARM,
   but it was already broken), and the 'make uclibc-menuconfig'
   target.

 * Added support to build the eglibc C library as part of the
   Buildroot internal toolchain backend. This required some long-due
   refactoring of the C library options.

 * Many, many fixes found when doing more testing.

Changes from RFCv1:

 * Factorize all the common logic of the gcc packages into
   package/gcc/gcc.mk, and move the gcc packages as
   package/gcc/gcc-initial, package/gcc/gcc-intermediate and
   package/gcc/gcc-final. The individual .mk files for each gcc
   variant becomes a *lot* smaller. Suggested by Thomas De
   Schampheleire.

 * Exclude a few more things when extracting the gcc source code
   tarball.

Summary of the patches:

 * Patches 1 to 6 are cleanup / preparation patches. They can be
   applied right now (which would help reduce the size of this patch
   set).

 * Patch 7 converts elf2flt to the package infrastructure.

 * Patch 8 converts the kernel headers to the package infrastructure.

 * Patch 9 introduces package/gcc/gcc.mk (common definitions for the
   three gcc packages) and the package/gcc/Config.in.host file.

 * Patch 10, 11 and 12 introduce the gcc-initial, gcc-intermediate and
   gcc-final packages. At this point, they are not used by Buildroot.

 * Patch 13 switches the toolchain build logic to use the gcc-initial,
   gcc-intermediate and gcc packages, and removed the toolchain/gcc
   code.

 * Patch 14 makes a small optimization to the size of the sources
   extracted for gcc.

 * Patch 15 converts uClibc to the package infrastructure.

 * Patch 16 to 18 make some followup cleanups.

 * Patch 19 add BR2_TOOLCHAIN_USES_{UCLIBC,GLIBC} options that are
   independent of the toolchain backend, and simplifies the entire
   Buildroot code base to use them.

 * Patch 20 moves the uClibc configuration options from the toolchain/
   directory to the uClibc package itslef.

 * Patch 21 introduces the eglibc package.

 * Patch 22 enables the eglibc support in the internal Buildroot
   toolchain backend.

 * Patch 23 updates the manual accordingly.

Some comments:

 * This patch set completely removes the support for building the
   toolchain on the target (i.e the new gcc package and uClibc package
   do not support building/installing the target variant). A cleanup
   patch at the end of the series removes BR2_HAVE_DEVFILES.

 * The gcc-initial, gcc-intermediate and gcc packages each extract
   their own copy of the gcc sources. With the previous code,
   out-of-tree builds were used to share the tree, but moving to the
   package infrastructure makes this more difficult. Since the build
   is still done in a sub-directory called 'build' inside each source
   directory (because gcc does not support in-tree build), I've tried
   to symlink the source directories, and create separate build
   sub-directories (build-initial, build-intermediate, build-final),
   but the problem comes with the stamp files, that would have the
   same name and location for the gcc-initial, gcc-intermediate and
   gcc packages.

   In order to mitigate this additional amount of work and disk space
   consumption, I've added a little optimization to the gcc sources
   extraction, by not extracting the libjava, libgo and gcc/testsuites
   directories. This reduces approximately by half the size of the gcc
   sources.

 * The uClibc code to mungle the .config has been heavily
   reworked. Some of the logic has been moved to the Config.in file,
   when it allows to more easily calculate the configuration values.

Best regards,

Thomas

Thomas Petazzoni (23):
  uClibc: KERNEL_SOURCE no longer exists
  busybox: don't use kernel headers directly
  package: allow to override the make install target for host packages
  toolchain/gcc: remove dead code related to host binary stripping
  toolchain: remove references to LIBFLOAT_TARGET
  toolchain/gcc: get rid of stale variable reference
  elf2flt: convert to the package infrastructure
  kernel-headers: migrate to the package infrastructure
  gcc: common definitions
  gcc-initial: new package
  gcc-intermediate: new package
  gcc-final: new package
  toolchain: switch to using gcc through package infrastructure
  gcc-initial, gcc-intermediate, gcc-final: optimize extraction
  uclibc: convert to the package infrastructure
  Remove TOOLCHAIN_DIR
  Use more sensible names for the external/ctng targets
  Remove BR2_HAVE_DEVFILES
  Introduce BR2_TOOLCHAIN_USES_{UCLIBC,GLIBC}
  uclibc: move configuration options into the package
  eglibc: new package
  eglibc: enable support in the Buildroot toolchain backend
  docs/manual: update to mention eglibc support in Buildroot toolchain
    backend

 Config.in                                          |   8 -
 Config.in.legacy                                   |   7 +
 Makefile                                           |  24 +-
 docs/manual/configure.txt                          |  52 +-
 package/Config.in                                  |   1 -
 package/Makefile.in                                |   2 +-
 package/boost/boost.mk                             |   2 +-
 package/busybox/busybox.mk                         |   3 +-
 package/dbus/dbus.mk                               |   2 -
 package/eglibc/eglibc.mk                           |  94 +++
 .../Config.in => package/elf2flt/Config.in.host    |   2 +-
 package/elf2flt/elf2flt.mk                         |  28 +
 .../elf2flt => package/elf2flt/src}/LICENSE.TXT    |   0
 .../elf2flt => package/elf2flt/src}/Makefile.in    |   0
 .../elf2flt/elf2flt => package/elf2flt/src}/README |   0
 .../elf2flt => package/elf2flt/src}/config.guess   |   0
 .../elf2flt => package/elf2flt/src}/config.sub     |   0
 .../elf2flt => package/elf2flt/src}/configure      |   0
 .../elf2flt => package/elf2flt/src}/configure.in   |   0
 .../elf2flt => package/elf2flt/src}/cygwin-elf.h   |   0
 .../elf2flt => package/elf2flt/src}/e1-elf2flt.ld  |   0
 .../elf2flt => package/elf2flt/src}/elf2flt.c      |   0
 .../elf2flt => package/elf2flt/src}/elf2flt.ld     |   0
 .../elf2flt/elf2flt => package/elf2flt/src}/flat.h |   0
 .../elf2flt => package/elf2flt/src}/flthdr.c       |   0
 .../elf2flt => package/elf2flt/src}/install-sh     |   0
 .../elf2flt => package/elf2flt/src}/ld-elf2flt.in  |   0
 .../elf2flt => package/elf2flt/src}/maketarball.sh |   0
 .../elf2flt => package/elf2flt/src}/stubs.c        |   0
 package/elfutils/Config.in                         |   9 +-
 package/elfutils/elfutils.mk                       |   2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in   |   8 +-
 .../1001-gcc-4.2.x-inhibit-libc.patch              |   0
 ...-fix-removal-of-redundant-cast-operations.patch |   0
 ...conditional-insn-which-clobbers-cc_status.patch |   0
 ...use-movh-to-move-immediates-into-register.patch |   0
 .../gcc/4.3.6/100-uclibc-conf.patch                |  20 -
 .../gcc/4.3.6/104-gnuhurd-uclibc-conf.patch        |   0
 .../gcc/4.3.6/301-missing-execinfo_h.patch         |   0
 .../gcc/4.3.6/302-c99-snprintf.patch               |   0
 .../gcc/4.3.6/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.3.6/810-arm-softfloat-libgcc.patch       |   0
 .../4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch |   0
 .../gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch    |   0
 .../gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch  |   0
 .../4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch    |   0
 ...gcc-4.3.0-cris-pragma-pack-warning-remove.patch |   0
 .../gcc/4.3.6/gcc-43-pr39429.patch                 |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.4.7-arc/fix_branch_out_of_range.patch    |   0
 .../gcc/4.4.7/100-uclibc-conf.patch                |  20 -
 .../gcc/4.4.7/301-missing-execinfo_h.patch         |   0
 .../gcc/4.4.7/302-c99-snprintf.patch               |   0
 .../gcc/4.4.7/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.4.7/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.4.7/950-sparc-leon.patch                 |   0
 .../gcc/4.4.7/gcc-44-pr39429.patch                 |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.5.4/100-uclibc-conf.patch                |  20 -
 .../gcc/4.5.4/301-missing-execinfo_h.patch         |   0
 .../gcc/4.5.4/302-c99-snprintf.patch               |   0
 .../gcc/4.5.4/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.5.4/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.5.4/820-arm-unbreak-armv4t.patch         |   0
 .../gcc/4.5.4/830-arm-pr43440.patch                |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.6.4/100-uclibc-conf.patch                |  20 -
 .../gcc/4.6.4/301-missing-execinfo_h.patch         |   0
 .../gcc/4.6.4/302-c99-snprintf.patch               |   0
 .../gcc/4.6.4/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.6.4/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.6.4/820-arm-unbreak-armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.7.3}/100-uclibc-conf.patch               |  20 -
 .../gcc/4.7.3/301-missing-execinfo_h.patch         |   0
 .../gcc/4.7.3/302-c99-snprintf.patch               |   0
 .../gcc/4.7.3/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.7.3/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.7.3/830-arm_unbreak_armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.8.1/100-uclibc-conf.patch                |  22 -
 .../gcc/4.8.1/301-missing-execinfo_h.patch         |   0
 .../gcc/4.8.1/302-c99-snprintf.patch               |   0
 .../gcc/4.8.1/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.8.1/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.8.1/830-arm_unbreak_armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/Config.in => package/gcc/Config.in.host    |  12 +-
 package/gcc/gcc-final/gcc-final.mk                 | 138 +++++
 package/gcc/gcc-initial/gcc-initial.mk             |  39 ++
 package/gcc/gcc-intermediate/gcc-intermediate.mk   |  45 ++
 package/gcc/gcc.mk                                 | 176 ++++++
 package/gpsd/Config.in                             |   4 +-
 package/gsl/gsl.mk                                 |   2 +-
 package/iozone/iozone.mk                           |   2 +-
 package/libdnet/libdnet.mk                         |   2 -
 package/libglib2/libglib2.mk                       |   2 -
 package/libv4l/Config.in                           |   8 +-
 ...tall-fix-__packed-in-exported-kernel-head.patch |   0
 .../linux-headers/3.3.8/linux-fix-umode_t.patch    |   0
 .../linux-headers/Config.in.host                   |   5 +-
 package/linux-headers/linux-headers.mk             |  31 +
 package/ltp-testsuite/Config.in                    |   2 +-
 package/lua/lua.mk                                 |  13 -
 package/mongrel2/Config.in                         |   4 +-
 package/multimedia/gst-plugin-x170/Config.in       |   4 +-
 package/multimedia/mpg123/mpg123.mk                |   3 +-
 package/multimedia/on2-8170-libs/Config.in         |   4 +-
 package/nbd/nbd.mk                                 |   2 +-
 package/ncurses/ncurses.mk                         |  20 -
 package/network-manager/network-manager.mk         |   2 +-
 package/nss-mdns/Config.in                         |   2 +-
 package/opencv/opencv.mk                           |   2 -
 package/openssl/openssl.mk                         |  12 -
 package/orc/orc.mk                                 |   3 -
 package/php/php.mk                                 |   2 +-
 package/pkg-autotools.mk                           |   3 +-
 package/pkg-generic.mk                             |   2 -
 package/python/python.mk                           |  16 +-
 package/python3/python3.mk                         |  16 +-
 package/sdl_sound/sdl_sound.mk                     |   2 +-
 package/squid/squid.mk                             |   2 +-
 package/taglib/taglib.mk                           |   2 -
 package/tzdata/Config.in                           |   2 +-
 ...__libc_epoll_pwait-compile-failure-on-x86.patch |   0
 ...x-e500-__fe_nomask_env-use-of-__set_errno.patch |   0
 .../0.9.32.1/uclibc-linuxthreads-errno-fix.patch   |   0
 .../uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch   |   0
 .../uclibc/0.9.32.1/uclibc-unshare.patch           |   0
 .../uclibc-OpenWRT-140-avr32_atomic_fix.patch      |   0
 .../uclibc-bits-time.h-sync-with-glibc-2.16.patch  |   0
 .../0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch  |   0
 .../uclibc/0.9.33.2/uclibc-dup3.patch              |   0
 package/uclibc/Config.in                           | 247 ++++++++
 .../uClibc => package/uclibc}/uClibc-0.9.32.config |   0
 .../uClibc => package/uclibc}/uClibc-0.9.33.config |   0
 .../uclibc}/uClibc-snapshot.config                 |   0
 package/uclibc/uclibc.mk                           | 484 +++++++++++++++
 package/usbutils/usbutils.mk                       |   2 -
 package/xenomai/xenomai.mk                         |   2 -
 toolchain/Config.in                                |  15 +
 toolchain/elf2flt/elf2flt.mk                       |  46 --
 toolchain/gcc/4.7.3/100-uclibc-conf.patch          |  33 --
 toolchain/gcc/Config.in.2                          |  34 --
 toolchain/gcc/gcc-uclibc-4.x.mk                    | 646 ---------------------
 toolchain/kernel-headers/kernel-headers.mk         |  87 ---
 toolchain/toolchain-buildroot.mk                   |  13 +-
 toolchain/toolchain-buildroot/Config.in            |  46 +-
 toolchain/toolchain-buildroot/Config.in.2          |  79 +--
 toolchain/toolchain-common.in                      |   8 +-
 toolchain/toolchain-crosstool-ng.mk                |   3 -
 toolchain/toolchain-crosstool-ng/Config.in         |  11 +-
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk   |  18 +-
 toolchain/toolchain-external.mk                    |   4 -
 toolchain/toolchain-external/Config.in             |   9 +-
 toolchain/toolchain-external/ext-tool.mk           |   5 +-
 toolchain/uClibc/Config.in                         |  97 ----
 toolchain/uClibc/uclibc.mk                         | 622 --------------------
 158 files changed, 1454 insertions(+), 2009 deletions(-)
 create mode 100644 package/eglibc/eglibc.mk
 rename toolchain/elf2flt/Config.in => package/elf2flt/Config.in.host (91%)
 create mode 100644 package/elf2flt/elf2flt.mk
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/LICENSE.TXT (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/Makefile.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/README (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/config.guess (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/config.sub (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/configure (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/configure.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/cygwin-elf.h (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/e1-elf2flt.ld (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/elf2flt.c (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/elf2flt.ld (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/flat.h (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/flthdr.c (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/install-sh (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/ld-elf2flt.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/maketarball.sh (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/stubs.c (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch (100%)
 copy {toolchain => package}/gcc/4.3.6/100-uclibc-conf.patch (53%)
 rename {toolchain => package}/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/gcc-43-pr39429.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.4.7-arc/fix_branch_out_of_range.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/100-uclibc-conf.patch (53%)
 rename {toolchain => package}/gcc/4.4.7/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/950-sparc-leon.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/gcc-44-pr39429.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.5.4/100-uclibc-conf.patch (53%)
 rename {toolchain => package}/gcc/4.5.4/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/820-arm-unbreak-armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/830-arm-pr43440.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.6.4/100-uclibc-conf.patch (53%)
 rename {toolchain => package}/gcc/4.6.4/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/820-arm-unbreak-armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain/gcc/4.3.6 => package/gcc/4.7.3}/100-uclibc-conf.patch (53%)
 rename {toolchain => package}/gcc/4.7.3/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/830-arm_unbreak_armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.8.1/100-uclibc-conf.patch (51%)
 rename {toolchain => package}/gcc/4.8.1/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/830-arm_unbreak_armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional (100%)
 rename toolchain/gcc/Config.in => package/gcc/Config.in.host (94%)
 create mode 100644 package/gcc/gcc-final/gcc-final.mk
 create mode 100644 package/gcc/gcc-initial/gcc-initial.mk
 create mode 100644 package/gcc/gcc-intermediate/gcc-intermediate.mk
 create mode 100644 package/gcc/gcc.mk
 rename toolchain/kernel-headers/linux-3.0.84-headers_install-fix-__packed-in-exported-kernel-head.patch => package/linux-headers/3.0.84/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch (100%)
 rename toolchain/kernel-headers/linux-3.3.8-fix-umode_t.patch => package/linux-headers/3.3.8/linux-fix-umode_t.patch (100%)
 rename toolchain/kernel-headers/Config.in => package/linux-headers/Config.in.host (94%)
 create mode 100644 package/linux-headers/linux-headers.mk
 rename toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch => package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch => package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch => package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch => package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-unshare.patch => package/uclibc/0.9.32.1/uclibc-unshare.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-OpenWRT-140-avr32_atomic_fix.patch => package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch => package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch => package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-dup3.patch => package/uclibc/0.9.33.2/uclibc-dup3.patch (100%)
 create mode 100644 package/uclibc/Config.in
 rename {toolchain/uClibc => package/uclibc}/uClibc-0.9.32.config (100%)
 rename {toolchain/uClibc => package/uclibc}/uClibc-0.9.33.config (100%)
 rename {toolchain/uClibc => package/uclibc}/uClibc-snapshot.config (100%)
 create mode 100644 package/uclibc/uclibc.mk
 delete mode 100644 toolchain/elf2flt/elf2flt.mk
 delete mode 100644 toolchain/gcc/4.7.3/100-uclibc-conf.patch
 delete mode 100644 toolchain/gcc/Config.in.2
 delete mode 100644 toolchain/gcc/gcc-uclibc-4.x.mk
 delete mode 100644 toolchain/kernel-headers/kernel-headers.mk
 delete mode 100644 toolchain/uClibc/Config.in
 delete mode 100644 toolchain/uClibc/uclibc.mk

-- 
1.8.1.2

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  6:59   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly Thomas Petazzoni
                   ` (21 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

The KERNEL_SOURCE configuration option no longer exists in uClibc, so
there's no point in setting it.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/uClibc/uclibc.mk | 1 -
 1 file changed, 1 deletion(-)

diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index 2036dab..0e01d94 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -98,7 +98,6 @@ $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
 	$(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
 		-e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
 		-e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \
-		-e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \
 		-e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \
 		-e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \
 		-e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
  2013-06-30 19:28 ` [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  7:00   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages Thomas Petazzoni
                   ` (20 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

The kernel headers are part of the staging directory, so there is no
reason to point the Busybox CFLAGS directly to them.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/busybox/busybox.mk | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index cfefdbb..acc9008 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -16,8 +16,7 @@ BUSYBOX_LICENSE = GPLv2
 BUSYBOX_LICENSE_FILES = LICENSE
 
 BUSYBOX_CFLAGS = \
-	$(TARGET_CFLAGS) \
-	-I$(LINUX_HEADERS_DIR)/include
+	$(TARGET_CFLAGS)
 
 BUSYBOX_LDFLAGS = \
 	$(TARGET_LDFLAGS)
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
  2013-06-30 19:28 ` [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
  2013-06-30 19:28 ` [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  7:00   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
                   ` (19 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

In order to convert gcc to the package infrastructure, we need a way
of overriding the name of the make target used for the installation of
host packages, just like we have for target packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/pkg-autotools.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/package/pkg-autotools.mk b/package/pkg-autotools.mk
index d8d7e6d..09deef2 100644
--- a/package/pkg-autotools.mk
+++ b/package/pkg-autotools.mk
@@ -76,6 +76,7 @@ $(2)_MAKE_ENV			?=
 $(2)_MAKE_OPT			?=
 $(2)_AUTORECONF			?= NO
 $(2)_AUTORECONF_OPT		?=
+$(2)_INSTALL_OPT                ?= install
 $(2)_INSTALL_STAGING_OPT	?= DESTDIR=$$(STAGING_DIR) install
 $(2)_INSTALL_TARGET_OPT		?= DESTDIR=$$(TARGET_DIR)  install
 $(2)_CLEAN_OPT			?= clean
@@ -232,7 +233,7 @@ endif
 #
 ifndef $(2)_INSTALL_CMDS
 define $(2)_INSTALL_CMDS
-	$$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) -C $$($$(PKG)_SRCDIR) install
+	$$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_OPT) -C $$($$(PKG)_SRCDIR)
 endef
 endif
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  7:00   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
                   ` (18 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

The GCC_STRIP_HOST_BINARIES variable was always defined to 'nope',
which means that the host binaries were never stripped. Get rid of the
corresponding code, which is not in use.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/gcc/gcc-uclibc-4.x.mk | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 92361e5..79a0125 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -43,7 +43,6 @@ GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2
 GCC_PATCH_DIR:=toolchain/gcc/$(GCC_VERSION)
 GCC_DIR:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)
 GCC_CAT:=$(BZCAT)
-GCC_STRIP_HOST_BINARIES:=nope
 GCC_SRC_DIR:=$(GCC_DIR)
 
 # Branding works on >= 4.3
@@ -472,10 +471,6 @@ $(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
 		rmdir "$(STAGING_DIR)/lib64"; \
 		rm "$(STAGING_DIR)/usr/$(GNU_TARGET_NAME)/lib64";\
 	fi
-	# Strip the host binaries
-ifeq ($(GCC_STRIP_HOST_BINARIES),true)
-	strip --strip-all -R .note -R .comment $(filter-out %-gccbug %-embedspu,$(wildcard $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-*))
-endif
 	# Make sure we have 'cc'.
 	if [ ! -e $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc ]; then \
 		ln -snf $(GNU_TARGET_NAME)-gcc \
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  7:00   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
                   ` (17 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

The libfloat package was removed in
accbd71154b8815678baa12f21f853ed8478f400, and therefore since this
commit, the LIBFLOAT_TARGET variable is always empty. We get rid of
the stale references to this variable.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/gcc/gcc-uclibc-4.x.mk | 2 +-
 toolchain/uClibc/uclibc.mk      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 79a0125..0dc8200 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -518,7 +518,7 @@ endif
 
 cross_compiler:=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc
 cross_compiler gcc: gcc_intermediate \
-	$(LIBFLOAT_TARGET) uclibc $(GCC_BUILD_DIR3)/.installed \
+	uclibc $(GCC_BUILD_DIR3)/.installed \
 	$(STAMP_DIR)/gcc_libs_target_installed \
 	$(GCC_TARGETS)
 
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index 0e01d94..f042c63 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -449,7 +449,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
 	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/
 	touch $@
 
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate) $(LIBFLOAT_TARGET)
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate)
 	$(Q)$(call MESSAGE,"Building uClibc")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (4 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03  7:01   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure Thomas Petazzoni
                   ` (16 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/gcc/gcc-uclibc-4.x.mk | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 0dc8200..b1484eb 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -519,8 +519,7 @@ endif
 cross_compiler:=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc
 cross_compiler gcc: gcc_intermediate \
 	uclibc $(GCC_BUILD_DIR3)/.installed \
-	$(STAMP_DIR)/gcc_libs_target_installed \
-	$(GCC_TARGETS)
+	$(STAMP_DIR)/gcc_libs_target_installed
 
 gcc-source: $(DL_DIR)/$(GCC_SOURCE)
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (5 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03 20:12   ` Peter Korsgaard
  2013-06-30 19:28 ` [Buildroot] [PATCH 08/23] kernel-headers: migrate " Thomas Petazzoni
                   ` (15 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Config.in.legacy                                   |  7 ++++
 .../Config.in => package/elf2flt/Config.in.host    |  2 +-
 package/elf2flt/elf2flt.mk                         | 28 +++++++++++++
 .../elf2flt => package/elf2flt/src}/LICENSE.TXT    |  0
 .../elf2flt => package/elf2flt/src}/Makefile.in    |  0
 .../elf2flt/elf2flt => package/elf2flt/src}/README |  0
 .../elf2flt => package/elf2flt/src}/config.guess   |  0
 .../elf2flt => package/elf2flt/src}/config.sub     |  0
 .../elf2flt => package/elf2flt/src}/configure      |  0
 .../elf2flt => package/elf2flt/src}/configure.in   |  0
 .../elf2flt => package/elf2flt/src}/cygwin-elf.h   |  0
 .../elf2flt => package/elf2flt/src}/e1-elf2flt.ld  |  0
 .../elf2flt => package/elf2flt/src}/elf2flt.c      |  0
 .../elf2flt => package/elf2flt/src}/elf2flt.ld     |  0
 .../elf2flt/elf2flt => package/elf2flt/src}/flat.h |  0
 .../elf2flt => package/elf2flt/src}/flthdr.c       |  0
 .../elf2flt => package/elf2flt/src}/install-sh     |  0
 .../elf2flt => package/elf2flt/src}/ld-elf2flt.in  |  0
 .../elf2flt => package/elf2flt/src}/maketarball.sh |  0
 .../elf2flt => package/elf2flt/src}/stubs.c        |  0
 toolchain/elf2flt/elf2flt.mk                       | 46 ----------------------
 toolchain/toolchain-buildroot.mk                   |  1 -
 toolchain/toolchain-buildroot/Config.in.2          |  2 +-
 toolchain/toolchain-crosstool-ng.mk                |  1 -
 toolchain/toolchain-external.mk                    |  1 -
 25 files changed, 37 insertions(+), 51 deletions(-)
 rename toolchain/elf2flt/Config.in => package/elf2flt/Config.in.host (91%)
 create mode 100644 package/elf2flt/elf2flt.mk
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/LICENSE.TXT (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/Makefile.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/README (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/config.guess (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/config.sub (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/configure (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/configure.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/cygwin-elf.h (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/e1-elf2flt.ld (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/elf2flt.c (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/elf2flt.ld (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/flat.h (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/flthdr.c (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/install-sh (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/ld-elf2flt.in (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/maketarball.sh (100%)
 rename {toolchain/elf2flt/elf2flt => package/elf2flt/src}/stubs.c (100%)
 delete mode 100644 toolchain/elf2flt/elf2flt.mk

diff --git a/Config.in.legacy b/Config.in.legacy
index cd23492..af1ee7b 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -86,6 +86,13 @@ config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8712
 #
 # Legacy options since 2013.02
 #
+config BR2_ELF2FLT
+	bool "the elf2flt option has been renamed"
+	select BR2_LEGACY
+	help
+	  The BR2_ELF2FLT option has been renamed to
+	  BR2_PACKAGE_HOST_ELF2FLT due to the conversion of elf2flt to
+	  the package infrastructure.
 
 config BR2_sa110
 	bool "sa110 ARM target switched to strongarm"
diff --git a/toolchain/elf2flt/Config.in b/package/elf2flt/Config.in.host
similarity index 91%
rename from toolchain/elf2flt/Config.in
rename to package/elf2flt/Config.in.host
index b4e450a..31a6c7f 100644
--- a/toolchain/elf2flt/Config.in
+++ b/package/elf2flt/Config.in.host
@@ -1,4 +1,4 @@
-config BR2_ELF2FLT
+config BR2_PACKAGE_HOST_ELF2FLT
 	bool "Enable elf2flt support?"
 	depends on BR2_arm || BR2_sh || BR2_sparc
 	help
diff --git a/package/elf2flt/elf2flt.mk b/package/elf2flt/elf2flt.mk
new file mode 100644
index 0000000..5afa5ca
--- /dev/null
+++ b/package/elf2flt/elf2flt.mk
@@ -0,0 +1,28 @@
+#############################################################
+#
+# elf2flt
+#
+#############################################################
+
+ELF2FLT_SOURCE =
+HOST_ELF2FLT_SOURCE =
+ELF2FLT_VERSION = cvs
+ELF2FLT_LICENSE = GPLv2+
+ELF2FLT_LICENSE_FILES = LICENSE.TXT
+
+HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib
+
+# It is not exactly a host variant, but more a cross variant, which is
+# why we pass a special --target option.
+HOST_ELF2FLT_CONF_OPT = \
+	--with-bfd-include-dir=$(HOST_BINUTILS_DIR)/bfd/ \
+	--with-binutils-include-dir=$(HOST_BINUTILS_DIR)/include/ \
+	--with-libbfd=$(HOST_BINUTILS_DIR)/bfd/libbfd.a \
+	--with-libiberty=$(HOST_BINUTILS_DIR)/libiberty/libiberty.a \
+	--target=$(GNU_TARGET_NAME)
+
+define HOST_ELF2FLT_EXTRACT_CMDS
+	cp -r package/elf2flt/src/* $(@D)
+endef
+
+$(eval $(host-autotools-package))
diff --git a/toolchain/elf2flt/elf2flt/LICENSE.TXT b/package/elf2flt/src/LICENSE.TXT
similarity index 100%
rename from toolchain/elf2flt/elf2flt/LICENSE.TXT
rename to package/elf2flt/src/LICENSE.TXT
diff --git a/toolchain/elf2flt/elf2flt/Makefile.in b/package/elf2flt/src/Makefile.in
similarity index 100%
rename from toolchain/elf2flt/elf2flt/Makefile.in
rename to package/elf2flt/src/Makefile.in
diff --git a/toolchain/elf2flt/elf2flt/README b/package/elf2flt/src/README
similarity index 100%
rename from toolchain/elf2flt/elf2flt/README
rename to package/elf2flt/src/README
diff --git a/toolchain/elf2flt/elf2flt/config.guess b/package/elf2flt/src/config.guess
similarity index 100%
rename from toolchain/elf2flt/elf2flt/config.guess
rename to package/elf2flt/src/config.guess
diff --git a/toolchain/elf2flt/elf2flt/config.sub b/package/elf2flt/src/config.sub
similarity index 100%
rename from toolchain/elf2flt/elf2flt/config.sub
rename to package/elf2flt/src/config.sub
diff --git a/toolchain/elf2flt/elf2flt/configure b/package/elf2flt/src/configure
similarity index 100%
rename from toolchain/elf2flt/elf2flt/configure
rename to package/elf2flt/src/configure
diff --git a/toolchain/elf2flt/elf2flt/configure.in b/package/elf2flt/src/configure.in
similarity index 100%
rename from toolchain/elf2flt/elf2flt/configure.in
rename to package/elf2flt/src/configure.in
diff --git a/toolchain/elf2flt/elf2flt/cygwin-elf.h b/package/elf2flt/src/cygwin-elf.h
similarity index 100%
rename from toolchain/elf2flt/elf2flt/cygwin-elf.h
rename to package/elf2flt/src/cygwin-elf.h
diff --git a/toolchain/elf2flt/elf2flt/e1-elf2flt.ld b/package/elf2flt/src/e1-elf2flt.ld
similarity index 100%
rename from toolchain/elf2flt/elf2flt/e1-elf2flt.ld
rename to package/elf2flt/src/e1-elf2flt.ld
diff --git a/toolchain/elf2flt/elf2flt/elf2flt.c b/package/elf2flt/src/elf2flt.c
similarity index 100%
rename from toolchain/elf2flt/elf2flt/elf2flt.c
rename to package/elf2flt/src/elf2flt.c
diff --git a/toolchain/elf2flt/elf2flt/elf2flt.ld b/package/elf2flt/src/elf2flt.ld
similarity index 100%
rename from toolchain/elf2flt/elf2flt/elf2flt.ld
rename to package/elf2flt/src/elf2flt.ld
diff --git a/toolchain/elf2flt/elf2flt/flat.h b/package/elf2flt/src/flat.h
similarity index 100%
rename from toolchain/elf2flt/elf2flt/flat.h
rename to package/elf2flt/src/flat.h
diff --git a/toolchain/elf2flt/elf2flt/flthdr.c b/package/elf2flt/src/flthdr.c
similarity index 100%
rename from toolchain/elf2flt/elf2flt/flthdr.c
rename to package/elf2flt/src/flthdr.c
diff --git a/toolchain/elf2flt/elf2flt/install-sh b/package/elf2flt/src/install-sh
similarity index 100%
rename from toolchain/elf2flt/elf2flt/install-sh
rename to package/elf2flt/src/install-sh
diff --git a/toolchain/elf2flt/elf2flt/ld-elf2flt.in b/package/elf2flt/src/ld-elf2flt.in
similarity index 100%
rename from toolchain/elf2flt/elf2flt/ld-elf2flt.in
rename to package/elf2flt/src/ld-elf2flt.in
diff --git a/toolchain/elf2flt/elf2flt/maketarball.sh b/package/elf2flt/src/maketarball.sh
similarity index 100%
rename from toolchain/elf2flt/elf2flt/maketarball.sh
rename to package/elf2flt/src/maketarball.sh
diff --git a/toolchain/elf2flt/elf2flt/stubs.c b/package/elf2flt/src/stubs.c
similarity index 100%
rename from toolchain/elf2flt/elf2flt/stubs.c
rename to package/elf2flt/src/stubs.c
diff --git a/toolchain/elf2flt/elf2flt.mk b/toolchain/elf2flt/elf2flt.mk
deleted file mode 100644
index 1462227..0000000
--- a/toolchain/elf2flt/elf2flt.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-################################################################################
-#
-# elf2flt
-#
-################################################################################
-
-# we keep a local checkout of uClinux CVS
-ELF2FLT_SOURCE:=$(ELF2FLT_DIR)/elf2flt
-ELF2FLT_DIR:=$(TOOLCHAIN_DIR)/elf2flt
-ELF2FLT_BINARY:=elf2flt
-
-$(ELF2FLT_DIR)/.unpacked:
-	cp -r toolchain/elf2flt/elf2flt "$(TOOLCHAIN_DIR)/elf2flt"
-	touch $@
-
-$(ELF2FLT_DIR)/.patched: $(ELF2FLT_DIR)/.unpacked
-	$(call CONFIG_UPDATE,$(@D))
-	touch $@
-
-$(ELF2FLT_DIR)/.configured: $(ELF2FLT_DIR)/.patched
-	(cd $(ELF2FLT_DIR); rm -rf config.cache; \
-		LDFLAGS="$(HOST_LDFLAGS) -lz" \
-		$(ELF2FLT_DIR)/configure $(QUIET) \
-		--with-bfd-include-dir=$(HOST_BINUTILS_DIR)/bfd/ \
-		--with-binutils-include-dir=$(HOST_BINUTILS_DIR)/include/ \
-		--target=$(GNU_TARGET_NAME) \
-		--with-libbfd=$(HOST_BINUTILS_DIR)/bfd/libbfd.a \
-		--with-libiberty=$(HOST_BINUTILS_DIR)/libiberty/libiberty.a \
-		--prefix=$(HOST_DIR)/usr)
-	touch $@
-
-$(ELF2FLT_DIR)/$(ELF2FLT_BINARY): $(ELF2FLT_DIR)/.configured
-	$(MAKE) -C $(ELF2FLT_DIR) all
-	$(MAKE) -C $(ELF2FLT_DIR) install
-
-elf2flt: uclibc_target uclibc-configured binutils gcc host-zlib $(ELF2FLT_DIR)/$(ELF2FLT_BINARY)
-
-elf2flt-clean:
-	rm -rf $(ELF2FLT_SOURCE)
-
-elf2flt-dirclean:
-	rm -rf $(ELF2FLT_SOURCE)
-
-ifeq ($(BR2_ELF2FLT),y)
-TARGETS+=elf2flt
-endif
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index 5493177..5b89d56 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,6 +1,5 @@
 # Include files required for the internal toolchain backend
 
-include toolchain/elf2flt/elf2flt.mk
 include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/kernel-headers/kernel-headers.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-buildroot/Config.in.2 b/toolchain/toolchain-buildroot/Config.in.2
index f58a4f7..422602e 100644
--- a/toolchain/toolchain-buildroot/Config.in.2
+++ b/toolchain/toolchain-buildroot/Config.in.2
@@ -98,7 +98,7 @@ config BR2_PTHREAD_DEBUG
 	help
 	  Build the thread library with debugging enabled.
 
-source "toolchain/elf2flt/Config.in"
+source "package/elf2flt/Config.in.host"
 
 config BR2_VFP_FLOAT
 	bool "Use ARM Vector Floating Point unit"
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index d1e7552..4f9c29c 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -2,7 +2,6 @@
 
 # Explicit ordering:
 include toolchain/helpers.mk
-include toolchain/elf2flt/elf2flt.mk
 include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index 9999aa2..2aa0141 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -1,7 +1,6 @@
 # Required includes for the external toolchain backend
 
 include toolchain/helpers.mk
-include toolchain/elf2flt/elf2flt.mk
 include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/kernel-headers/kernel-headers.mk
 include toolchain/toolchain-external/ext-tool.mk
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 08/23] kernel-headers: migrate to the package infrastructure
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (6 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03 20:46   ` Peter Korsgaard
  2013-07-03 21:24   ` Thomas Petazzoni
  2013-06-30 19:28 ` [Buildroot] [PATCH 09/23] gcc: common definitions Thomas Petazzoni
                   ` (14 subsequent siblings)
  22 siblings, 2 replies; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 ...tall-fix-__packed-in-exported-kernel-head.patch |  0
 .../linux-headers/3.3.8/linux-fix-umode_t.patch    |  0
 .../linux-headers/Config.in.host                   |  5 +-
 package/linux-headers/linux-headers.mk             | 31 ++++++++
 toolchain/kernel-headers/kernel-headers.mk         | 87 ----------------------
 toolchain/toolchain-buildroot.mk                   |  1 -
 toolchain/toolchain-buildroot/Config.in            |  2 +-
 toolchain/toolchain-external.mk                    |  1 -
 toolchain/uClibc/uclibc.mk                         | 13 +---
 9 files changed, 38 insertions(+), 102 deletions(-)
 rename toolchain/kernel-headers/linux-3.0.84-headers_install-fix-__packed-in-exported-kernel-head.patch => package/linux-headers/3.0.84/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch (100%)
 rename toolchain/kernel-headers/linux-3.3.8-fix-umode_t.patch => package/linux-headers/3.3.8/linux-fix-umode_t.patch (100%)
 rename toolchain/kernel-headers/Config.in => package/linux-headers/Config.in.host (94%)
 create mode 100644 package/linux-headers/linux-headers.mk
 delete mode 100644 toolchain/kernel-headers/kernel-headers.mk

diff --git a/toolchain/kernel-headers/linux-3.0.84-headers_install-fix-__packed-in-exported-kernel-head.patch b/package/linux-headers/3.0.84/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch
similarity index 100%
rename from toolchain/kernel-headers/linux-3.0.84-headers_install-fix-__packed-in-exported-kernel-head.patch
rename to package/linux-headers/3.0.84/linux-headers-headers_install-fix-__packed-in-exported-kernel-head.patch
diff --git a/toolchain/kernel-headers/linux-3.3.8-fix-umode_t.patch b/package/linux-headers/3.3.8/linux-fix-umode_t.patch
similarity index 100%
rename from toolchain/kernel-headers/linux-3.3.8-fix-umode_t.patch
rename to package/linux-headers/3.3.8/linux-fix-umode_t.patch
diff --git a/toolchain/kernel-headers/Config.in b/package/linux-headers/Config.in.host
similarity index 94%
rename from toolchain/kernel-headers/Config.in
rename to package/linux-headers/Config.in.host
index ce812af..2d14ffb 100644
--- a/toolchain/kernel-headers/Config.in
+++ b/package/linux-headers/Config.in.host
@@ -1,6 +1,5 @@
-# Choose the kernel headers to use for kernel-headers target. This is
-# ignored if you are building your own kernel or using the system kernel.
-#
+config BR2_PACKAGE_HOST_LINUX_HEADERS
+	bool
 
 comment "Kernel Header Options"
 
diff --git a/package/linux-headers/linux-headers.mk b/package/linux-headers/linux-headers.mk
new file mode 100644
index 0000000..a2c861b
--- /dev/null
+++ b/package/linux-headers/linux-headers.mk
@@ -0,0 +1,31 @@
+#############################################################
+#
+# linux-headers
+#
+#############################################################
+
+# This package is used to provide Linux kernel headers for the
+# internal toolchain backend.
+
+LINUX_HEADERS_VERSION = $(call qstrip,$(BR2_DEFAULT_KERNEL_HEADERS))
+ifeq ($(findstring x2.6.,x$(LINUX_HEADERS_VERSION)),x2.6.)
+LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/
+else
+LINUX_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/v3.x/
+endif
+LINUX_HEADERS_SOURCE = linux-$(LINUX_HEADERS_VERSION).tar.bz2
+
+LINUX_HEADERS_INSTALL_STAGING = YES
+
+define LINUX_HEADERS_INSTALL_STAGING_CMDS
+	(cd $(@D); \
+		$(TARGET_MAKE_ENV) $(MAKE) \
+			ARCH=$(KERNEL_ARCH) \
+			HOSTCC="$(HOSTCC)" \
+			HOSTCFLAGS="$(HOSTCFLAGS)" \
+			HOSTCXX="$(HOSTCXX)" \
+			INSTALL_HDR_PATH=$(STAGING_DIR)/usr \
+			headers_install)
+endef
+
+$(eval $(generic-package))
diff --git a/toolchain/kernel-headers/kernel-headers.mk b/toolchain/kernel-headers/kernel-headers.mk
deleted file mode 100644
index a04395b..0000000
--- a/toolchain/kernel-headers/kernel-headers.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-################################################################################
-#
-# Setup the kernel headers. I include a generic package of
-# kernel headers here, so you shouldn't need to include your
-# own. Be aware these kernel headers _will_ get blown away
-# by a 'make clean' so don't put anything sacred in here...
-#
-################################################################################
-
-DEFAULT_KERNEL_HEADERS:=$(call qstrip,$(BR2_DEFAULT_KERNEL_HEADERS))
-
-LINUX_HEADERS_SITE:=127.0.0.1
-LINUX_HEADERS_SOURCE:=unspecified-kernel-headers
-LINUX_HEADERS_UNPACK_DIR:=$(TOOLCHAIN_DIR)/linux-libc-headers-null
-
-# parse linux version string
-LNXVER:=$(subst ., , $(strip $(DEFAULT_KERNEL_HEADERS)))
-VERSION:=$(word 1, $(LNXVER))
-PATCHLEVEL:=$(word 2, $(LNXVER))
-SUBLEVEL:=$(word 3, $(LNXVER))
-EXTRAVERSION:=$(word 4, $(LNXVER))
-LOCALVERSION:=
-
-# should contain prepended dot
-SUBLEVEL:=$(if $(SUBLEVEL),.$(SUBLEVEL),)
-EXTRAVERSION:=$(if $(EXTRAVERSION),.$(EXTRAVERSION),)
-
-LINUX_HEADERS_VERSION:=$(VERSION).$(PATCHLEVEL)$(SUBLEVEL)$(EXTRAVERSION)
-ifeq ($(findstring x2.6.,x$(DEFAULT_KERNEL_HEADERS)),x2.6.)
-LINUX_HEADERS_SITE:=$(BR2_KERNEL_MIRROR:/=)/linux/kernel/v2.6/
-else
-LINUX_HEADERS_SITE:=$(BR2_KERNEL_MIRROR:/=)/linux/kernel/v3.x/
-endif
-LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.xz
-LINUX_HEADERS_CAT:=$(XZCAT)
-LINUX_HEADERS_UNPACK_DIR:=$(TOOLCHAIN_DIR)/linux-$(LINUX_HEADERS_VERSION)
-LINUX_HEADERS_DIR:=$(TOOLCHAIN_DIR)/linux
-
-LINUX_HEADERS_DEPENDS:=
-
-$(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
-	$(Q)$(call MESSAGE,"Extracting kernel headers")
-	rm -rf $(LINUX_HEADERS_DIR)
-	$(INSTALL) -d $(@D)
-	$(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | \
-	tar $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
-	touch $@
-
-$(LINUX_HEADERS_UNPACK_DIR)/.patched: $(LINUX_HEADERS_UNPACK_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
-	$(Q)$(call MESSAGE,"Patching kernel headers")
-	support/scripts/apply-patches.sh $(LINUX_HEADERS_UNPACK_DIR) toolchain/kernel-headers \
-		linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
-ifneq ($(KERNEL_HEADERS_PATCH_DIR),)
-	support/scripts/apply-patches.sh $(LINUX_HEADERS_UNPACK_DIR) $(KERNEL_HEADERS_PATCH_DIR) \
-		linux-$(LINUX_HEADERS_VERSION)-\*.patch{,.gz,.bz2}
-endif
-	touch $@
-
-$(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched
-	$(Q)$(call MESSAGE,"Installing kernel headers")
-	(cd $(LINUX_HEADERS_UNPACK_DIR); \
-	 $(MAKE) ARCH=$(KERNEL_ARCH) \
-		HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
-		HOSTCXX="$(HOSTCXX)" \
-		INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR) headers_install; \
-	)
-	touch $@
-
-$(DL_DIR)/$(LINUX_HEADERS_SOURCE):
-ifeq ($(BR2_KERNEL_HEADERS_SNAP),y)
-	$(error No local $@ found, cannot continue. Are you sure you wanted to enable BR2_KERNEL_HEADERS_SNAP?)
-endif
-	$(Q)$(call MESSAGE,"Downloading kernel headers")
-	$(call DOWNLOAD,$(LINUX_HEADERS_SITE:/=)/$(LINUX_HEADERS_SOURCE))
-
-kernel-headers: $(LINUX_HEADERS_DIR)/.configured
-
-kernel-headers-source: $(DL_DIR)/$(LINUX_HEADERS_SOURCE)
-
-kernel-headers-clean: clean
-	rm -rf $(LINUX_HEADERS_DIR)
-
-kernel-headers-dirclean:
-	rm -rf $(LINUX_HEADERS_DIR)
-	rm -rf $(LINUX_HEADERS_UNPACK_DIR)
-
-.PHONY: kernel-headers
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index 5b89d56..a8dd58b 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,5 +1,4 @@
 # Include files required for the internal toolchain backend
 
 include toolchain/gcc/gcc-uclibc-4.x.mk
-include toolchain/kernel-headers/kernel-headers.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 3894890..3d70fa1 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -1,7 +1,7 @@
 # Config entries for internal toolchain backend
 
 if BR2_TOOLCHAIN_BUILDROOT
-source "toolchain/kernel-headers/Config.in"
+source "package/linux-headers/Config.in.host"
 source "toolchain/uClibc/Config.in"
 source "package/binutils/Config.in.host"
 source "toolchain/gcc/Config.in"
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index 2aa0141..40fc633 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -2,6 +2,5 @@
 
 include toolchain/helpers.mk
 include toolchain/gcc/gcc-uclibc-4.x.mk
-include toolchain/kernel-headers/kernel-headers.mk
 include toolchain/toolchain-external/ext-tool.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index f042c63..e06fafc 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -98,7 +98,7 @@ $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
 	$(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
 		-e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
 		-e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \
-		-e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \
+		-e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(STAGING_DIR)/usr/include\",g' \
 		-e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \
 		-e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \
 		-e 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \
@@ -426,7 +426,7 @@ ifeq ($(BR2_arc),y)
 REALLY_NOSTDLIB=-really-nostdlib
 endif
 
-$(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.config
+$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.config
 	$(Q)$(call MESSAGE,"Installing uClibc headers")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
@@ -441,7 +441,7 @@ $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.confi
 	# Install the kernel headers to the first stage gcc include dir
 	# if necessary
 	if [ ! -f $(TOOLCHAIN_DIR)/uClibc_dev/usr/include/linux/version.h ]; then \
-		cp -pLR $(LINUX_HEADERS_DIR)/include/* \
+		cp -pLR $(STAGING_DIR)/usr/include/* \
 			$(TOOLCHAIN_DIR)/uClibc_dev/usr/include/; \
 	fi
 	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/libc.so
@@ -485,11 +485,6 @@ $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
 		install_runtime install_dev
-	# Install the kernel headers to the staging dir if necessary
-	if [ ! -f $(STAGING_DIR)/usr/include/linux/version.h ]; then \
-		cp -pLR $(LINUX_HEADERS_DIR)/include/* \
-			$(STAGING_DIR)/usr/include/; \
-	fi
 	# Build the host utils. Need to add an install target...
 	$(MAKE1) -C $(UCLIBC_DIR)/utils \
 		PREFIX=$(HOST_DIR) \
@@ -548,7 +543,7 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
-uclibc-configured: gcc_initial kernel-headers $(UCLIBC_DIR)/.configured
+uclibc-configured: gcc_initial linux-headers $(UCLIBC_DIR)/.configured
 
 uclibc-configured-source: uclibc-source
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 09/23] gcc: common definitions
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (7 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 08/23] kernel-headers: migrate " Thomas Petazzoni
@ 2013-06-30 19:28 ` Thomas Petazzoni
  2013-07-03 21:02   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 10/23] gcc-initial: new package Thomas Petazzoni
                   ` (13 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/Config.in.host | 128 ++++++++++++++++++++++++++++++++++++
 package/gcc/gcc.mk         | 159 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 287 insertions(+)
 create mode 100644 package/gcc/Config.in.host
 create mode 100644 package/gcc/gcc.mk

diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
new file mode 100644
index 0000000..7ecf2fb
--- /dev/null
+++ b/package/gcc/Config.in.host
@@ -0,0 +1,128 @@
+comment "GCC Options"
+
+config BR2_GCC_NEEDS_MPC
+	bool
+
+choice
+	prompt "GCC compiler Version"
+	default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
+	default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr3
+	default BR2_GCC_VERSION_4_4_7_ARC if BR2_arc
+	default BR2_GCC_VERSION_4_7_X
+	help
+	  Select the version of gcc you wish to use.
+
+	config BR2_GCC_VERSION_4_4_7_ARC
+		depends on BR2_arc
+		bool "gcc 4.4.7-arc"
+
+	config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
+		depends on BR2_avr32
+		bool "gcc 4.2.2-avr32-2.1.5"
+
+	config BR2_GCC_VERSION_4_3_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
+		bool "gcc 4.3.x"
+
+	config BR2_GCC_VERSION_4_4_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
+		bool "gcc 4.4.x"
+
+	config BR2_GCC_VERSION_4_5_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4
+		select BR2_GCC_NEEDS_MPC
+		bool "gcc 4.5.x"
+
+	config BR2_GCC_VERSION_4_6_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
+		select BR2_GCC_NEEDS_MPC
+		bool "gcc 4.6.x"
+
+	config BR2_GCC_VERSION_4_7_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
+		select BR2_GCC_NEEDS_MPC
+		bool "gcc 4.7.x"
+
+	config BR2_GCC_VERSION_4_8_X
+		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
+		select BR2_GCC_NEEDS_MPC
+		bool "gcc 4.8.x"
+
+	config BR2_GCC_VERSION_SNAP
+		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
+		select BR2_GCC_NEEDS_MPC
+		bool "gcc snapshot"
+endchoice
+
+config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
+	bool
+	default y if !BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
+
+config BR2_GCC_SNAP_DATE
+	string "GCC snapshot date"
+	default "4.8-20120429"
+	depends on BR2_GCC_VERSION_SNAP
+	help
+	  Enter snapshot date to use for gcc.
+	  Format is: A.B-YYYYMMDD
+
+	  A is GCC major version, for example 4.
+	  B is GCC minor version, for example 7.
+	  YYYYMMDD is snapshot date, for example 20110430.
+
+	  This way we'd get version 4.7-20110430
+
+config BR2_GCC_VERSION
+	string
+	default "4.2.2-avr32-2.1.5" if BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
+	default "4.3.6"     if BR2_GCC_VERSION_4_3_X
+	default "4.4.7"     if BR2_GCC_VERSION_4_4_X
+	default "4.4.7-arc" if BR2_GCC_VERSION_4_4_7_ARC
+	default "4.5.4"     if BR2_GCC_VERSION_4_5_X
+	default "4.6.4"     if BR2_GCC_VERSION_4_6_X
+	default "4.7.3"     if BR2_GCC_VERSION_4_7_X
+	default "4.8.1"     if BR2_GCC_VERSION_4_8_X
+	default $BR2_GCC_SNAP_DATE if BR2_GCC_VERSION_SNAP
+
+config BR2_EXTRA_GCC_CONFIG_OPTIONS
+	string "Additional gcc options"
+	default ""
+	help
+	  Any additional gcc configure options you may want to include....
+
+config BR2_INSTALL_OBJC
+	bool "Build/install Objective-C compiler and runtime?"
+	depends on !BR2_avr32
+	help
+	  Build/install Objective-C compiler and runtime?
+
+config BR2_INSTALL_FORTRAN
+	bool "Build/install Fortran compiler and runtime?"
+	depends on !BR2_avr32
+	select BR2_PACKAGE_LIBMPFR
+	help
+	  Build/install Fortran compiler and runtime?
+	  Note that it is highly recommended NOT to use gfortran
+	  from gcc older than 4.2.0
+
+config BR2_GCC_SHARED_LIBGCC
+	bool "Build/install a shared libgcc?"
+	depends on !BR2_PREFER_STATIC_LIB
+	default y
+	depends on !BR2_sparc
+	help
+	  Build/install a shared libgcc library
+
+config BR2_GCC_ENABLE_TLS
+	bool "Enable compiler tls support"
+	default y
+	depends on BR2_PTHREADS_NATIVE
+	help
+	  Enable the compiler to generate code for accessing
+	  thread local storage variables
+
+config BR2_GCC_ENABLE_OPENMP
+	bool "Enable compiler OpenMP support"
+	depends on !BR2_PTHREADS_NONE && !BR2_avr32 && !BR2_arc
+	help
+	  Enable OpenMP support for the compiler
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
new file mode 100644
index 0000000..b5cd091
--- /dev/null
+++ b/package/gcc/gcc.mk
@@ -0,0 +1,159 @@
+
+# Common variables for the gcc-initial, gcc-intermediate and gcc-final
+# packages.
+
+#
+# Version, site and source
+#
+
+GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
+
+ifeq ($(BR2_GCC_VERSION_SNAP),y)
+GCC_SNAP_DATE = $(call qstrip,$(BR2_GCC_SNAP_DATE))
+endif
+
+ifneq ($(GCC_SNAP_DATE),)
+GCC_SITE = ftp://gcc.gnu.org/pub/gcc/snapshots/$(GCC_SNAP_DATE)/
+else ifeq ($(findstring avr32,$(GCC_VERSION)),avr32)
+GCC_SITE = ftp://www.at91.com/pub/buildroot/
+else
+GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
+endif
+
+GCC_SOURCE = gcc-$(GCC_VERSION).tar.bz2
+
+#
+# Xtensa special hook
+#
+
+define HOST_GCC_XTENSA_OVERLAY_EXTRACT
+        tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
+                $(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
+endef
+
+#
+# Apply patches
+#
+
+define HOST_GCC_APPLY_PATCHES
+	support/scripts/apply-patches.sh $(@D) package/gcc/$(GCC_VERSION) \*.patch
+endef
+
+#
+# Create 'build' directory and configure symlink
+#
+
+define HOST_GCC_CONFIGURE_SYMLINK
+	mkdir -p $(@D)/build
+	ln -s ../configure $(@D)/build/configure
+endef
+
+#
+# Common configuration options
+#
+
+HOST_GCC_COMMON_DEPENDENCIES = \
+	host-binutils \
+	host-gmp \
+	host-mpfr
+
+HOST_GCC_COMMON_CONF_OPT = \
+	--target=$(GNU_TARGET_NAME) \
+	--with-sysroot=$(STAGING_DIR) \
+	--disable-__cxa_atexit \
+	--with-gnu-ld \
+	--disable-libssp \
+	--disable-multilib \
+	--with-gmp=$(HOST_DIR)/usr \
+	--with-mpfr=$(HOST_DIR)/usr \
+
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
+# Workaround until it's fixed in 4.5.4 or later
+ifeq ($(ARCH),powerpc)
+ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
+HOST_GCC_COMMON_CONF_OPT += --disable-target-optspace
+endif
+else
+HOST_GCC_COMMON_CONF_OPT += --enable-target-optspace
+endif
+
+# gcc 4.6.x quadmath requires wchar
+ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+HOST_GCC_COMMON_CONF_OPT += --disable-libquadmath
+endif
+
+ifeq ($(BR2_GCC_ENABLE_TLS),y)
+HOST_GCC_COMMON_CONF_OPT += --enable-tls
+else
+HOST_GCC_COMMON_CONF_OPT += --disable-tls
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+HOST_GCC_COMMON_CONF_OPT += \
+	--disable-threads \
+	--disable-libitm \
+	--disable-libatomic
+else
+HOST_GCC_COMMON_CONF_OPT += --enable-threads
+endif
+
+ifeq ($(BR2_GCC_NEEDS_MPC),y)
+HOST_GCC_COMMON_DEPENDENCIES += host-mpc
+HOST_GCC_COMMON_CONF_OPT += --with-mpc=$(HOST_DIR)/usr
+endif
+
+ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
+HOST_GCC_COMMON_DEPENDENCIES += host-flex host-bison
+endif
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+# only mips*-*-*, arm*-*-* and sparc*-*-* accept --with-float
+# powerpc seems to be needing it as well
+ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_sparc),y)
+HOST_GCC_COMMON_CONF_OPT += --with-float=soft
+endif
+endif
+
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_COMMON_CONF_OPT += --disable-decimal-float
+endif
+
+# Determine arch/tune/abi/cpu options
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
+HOST_GCC_COMMON_CONF_OPT += --with-arch=$(BR2_GCC_TARGET_ARCH)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
+HOST_GCC_COMMON_CONF_OPT += --with-tune=$(BR2_GCC_TARGET_TUNE)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
+HOST_GCC_COMMON_CONF_OPT += --with-abi=$(BR2_GCC_TARGET_ABI)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
+HOST_GCC_COMMON_CONF_OPT += --with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+else
+HOST_GCC_COMMON_CONF_OPT += --with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU))
+endif
+endif
+
+# Branding works on >= 4.3
+ifneq ($(findstring x4.2.,x$(GCC_VERSION)),x4.2.)
+HOST_GCC_COMMON_CONF_OPT += \
+	--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
+	--with-bugurl="http://bugs.buildroot.net/"
+endif
+
+# AVR32 GCC special configuration
+ifeq ($(BR2_avr32),y)
+HOST_GCC_COMMON_CONF_OPT += --disable-libmudflap
+endif
+
+# Disable mudflap and enable proper double/long double for SPE ABI
+ifeq ($(BR2_powerpc_SPE),y)
+HOST_GCC_COMMON_CONF_OPT += \
+	--disable-libmudflap \
+	--enable-e500_double \
+	--with-long-double-128
+endif
+
+include package/gcc/*/*.mk
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 10/23] gcc-initial: new package
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (8 preceding siblings ...)
  2013-06-30 19:28 ` [Buildroot] [PATCH 09/23] gcc: common definitions Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:38   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 11/23] gcc-intermediate: " Thomas Petazzoni
                   ` (12 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/gcc-initial/gcc-initial.mk | 37 ++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 package/gcc/gcc-initial/gcc-initial.mk

diff --git a/package/gcc/gcc-initial/gcc-initial.mk b/package/gcc/gcc-initial/gcc-initial.mk
new file mode 100644
index 0000000..e07783e
--- /dev/null
+++ b/package/gcc/gcc-initial/gcc-initial.mk
@@ -0,0 +1,37 @@
+################################################################################
+#
+# gcc-initial
+#
+################################################################################
+
+GCC_INITIAL_VERSION = $(GCC_VERSION)
+GCC_INITIAL_SITE    = $(GCC_SITE)
+GCC_INITIAL_SOURCE  = $(GCC_SOURCE)
+
+HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES)
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_INITIAL_POST_EXTRACT_CMDS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
+endif
+
+HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES
+
+# gcc doesn't support in-tree build, so we create a 'build'
+# subdirectory in the gcc sources, and build from there.
+HOST_GCC_INITIAL_SUBDIR = build
+
+HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
+
+HOST_GCC_INITIAL_CONF_OPT = \
+	$(HOST_GCC_COMMON_CONF_OPT) \
+	--enable-languages=c \
+	--disable-shared \
+	--without-headers \
+	--with-newlib \
+	--disable-largefile \
+	--disable-nls
+
+HOST_GCC_INITIAL_MAKE_OPT = all-gcc
+HOST_GCC_INITIAL_INSTALL_OPT = install-gcc
+
+$(eval $(host-autotools-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 11/23] gcc-intermediate: new package
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (9 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 10/23] gcc-initial: new package Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:38   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 12/23] gcc-final: " Thomas Petazzoni
                   ` (11 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/gcc-intermediate/gcc-intermediate.mk | 43 ++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 package/gcc/gcc-intermediate/gcc-intermediate.mk

diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
new file mode 100644
index 0000000..0c062a7
--- /dev/null
+++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
@@ -0,0 +1,43 @@
+################################################################################
+#
+# gcc-intermediate
+#
+################################################################################
+
+GCC_INTERMEDIATE_VERSION = $(GCC_VERSION)
+GCC_INTERMEDIATE_SITE    = $(GCC_SITE)
+GCC_INTERMEDIATE_SOURCE  = $(GCC_SOURCE)
+
+HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
+	$(HOST_GCC_COMMON_DEPENDENCIES) \
+	uclibc-configured
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_INTERMEDIATE_POST_EXTRACT_CMDS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
+endif
+
+HOST_GCC_INTERMEDIATE_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES
+
+# gcc doesn't support in-tree build, so we create a 'build'
+# subdirectory in the gcc sources, and build from there.
+HOST_GCC_INTERMEDIATE_SUBDIR = build
+
+HOST_GCC_INTERMEDIATE_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
+
+HOST_GCC_INTERMEDIATE_CONF_OPT = \
+	$(HOST_GCC_COMMON_CONF_OPT) \
+	--enable-languages=c \
+	--disable-largefile \
+	--disable-nls
+
+HOST_GCC_INTERMEDIATE_MAKE_OPT = all-gcc
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_INTERMEDIATE_MAKE_OPT += all-target-libgcc
+endif
+
+HOST_GCC_INTERMEDIATE_INSTALL_OPT = install-gcc
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_INTERMEDIATE_INSTALL_OPT += install-target-libgcc
+endif
+
+$(eval $(host-autotools-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 12/23] gcc-final: new package
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (10 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 11/23] gcc-intermediate: " Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:38   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
                   ` (10 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/gcc-final/gcc-final.mk | 136 +++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100644 package/gcc/gcc-final/gcc-final.mk

diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk
new file mode 100644
index 0000000..a3312bf
--- /dev/null
+++ b/package/gcc/gcc-final/gcc-final.mk
@@ -0,0 +1,136 @@
+################################################################################
+#
+# gcc-final
+#
+################################################################################
+
+GCC_FINAL_VERSION = $(GCC_VERSION)
+GCC_FINAL_SITE    = $(GCC_SITE)
+GCC_FINAL_SOURCE  = $(GCC_SOURCE)
+
+HOST_GCC_FINAL_DEPENDENCIES = \
+	$(HOST_GCC_COMMON_DEPENDENCIES) \
+	uclibc
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_FINAL_POST_EXTRACT_CMDS += HOST_GCC_FINAL_XTENSA_OVERLAY_EXTRACT
+endif
+
+HOST_GCC_FINAL_POST_PATCH_HOOKS += HOST_GCC_APPLY_PATCHES
+
+# gcc doesn't support in-tree build, so we create a 'build'
+# subdirectory in the gcc sources, and build from there.
+HOST_GCC_FINAL_SUBDIR = build
+
+define HOST_GCC_FINAL_CONFIGURE_SYMLINK
+	mkdir -p $(@D)/build
+	ln -s ../configure $(@D)/build/configure
+endef
+
+HOST_GCC_FINAL_PRE_CONFIGURE_HOOKS += HOST_GCC_FINAL_CONFIGURE_SYMLINK
+
+# Languages supported by the cross-compiler
+GCC_FINAL_CROSS_LANGUAGES-y = c
+GCC_FINAL_CROSS_LANGUAGES-$(BR2_INSTALL_LIBSTDCPP) += c++
+GCC_FINAL_CROSS_LANGUAGES-$(BR2_GCC_CROSS_FORTRAN) += fortran
+GCC_FINAL_CROSS_LANGUAGES-$(BR2_GCC_CROSS_OBJC)    += objc
+GCC_FINAL_CROSS_LANGUAGES = $(subst $(space),$(comma),$(GCC_FINAL_CROSS_LANGUAGES-y))
+
+HOST_GCC_FINAL_CONF_OPT = \
+	$(HOST_GCC_COMMON_CONF_OPT) \
+	--enable-languages=$(GCC_FINAL_CROSS_LANGUAGES) \
+	--with-build-time-tools=$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin
+
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_FINAL_CONF_OPT += --enable-libgomp
+else
+HOST_GCC_FINAL_CONF_OPT += --disable-libgomp
+endif
+
+ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
+HOST_GCC_FINAL_CONF_OPT += --enable-shared
+else
+HOST_GCC_FINAL_CONF_OPT += --disable-shared
+endif
+
+# End with user-provided options, so that they can override previously
+# defined options.
+HOST_GCC_FINAL_CONF_OPT += \
+	$(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
+
+# Handle lib64
+define HOST_GCC_FINAL_HANDLE_LIB64
+	if [ -d "$(STAGING_DIR)/lib64" ]; then \
+		if [ ! -e "$(STAGING_DIR)/lib" ]; then \
+			mkdir -p "$(STAGING_DIR)/lib"; \
+		fi; \
+		mv "$(STAGING_DIR)/lib64/"* "$(STAGING_DIR)/lib/"; \
+		rmdir "$(STAGING_DIR)/lib64"; \
+		rm "$(STAGING_DIR)/usr/$(GNU_TARGET_NAME)/lib64";\
+	fi
+endef
+
+HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_HANDLE_LIB64
+
+# Make sure we have 'cc'
+define HOST_GCC_FINAL_CREATE_CC_SYMLINKS
+	if [ ! -e $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc ]; then \
+		ln -snf $(GNU_TARGET_NAME)-gcc \
+			$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc; \
+	fi
+	if [ ! -e $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin/cc ]; then \
+		ln -snf gcc $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin/cc; \
+	fi
+endef
+
+HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_CREATE_CC_SYMLINKS
+
+# Create <arch>-linux-<tool> symlinks
+define HOST_GCC_FINAL_CREATE_SIMPLE_SYMLINKS
+	(cd $(HOST_DIR)/usr/bin; for i in $(GNU_TARGET_NAME)-*; do \
+		ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \
+	done)
+endef
+
+HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_CREATE_SIMPLE_SYMLINKS
+
+# Cannot use the HOST_GCC_FINAL_USR_LIBS mechanism below, because we want
+# libgcc_s to be installed in /lib and not /usr/lib. We add +x on
+# libgcc_s to ensure it will be stripped.
+ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
+define HOST_GCC_FINAL_INSTALL_LIBGCC
+	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \
+		$(STAGING_DIR)/lib/
+	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \
+		$(TARGET_DIR)/lib/
+	-chmod +x $(TARGET_DIR)/lib/libgcc_s.so.1
+endef
+
+HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_LIBGCC
+endif
+
+# Handle the installation of libraries in /usr/lib
+HOST_GCC_FINAL_USR_LIBS =
+
+ifeq ($(BR2_GCC_SHARED_LIBGCC)$(BR2_INSTALL_LIBSTDCPP),yy)
+HOST_GCC_FINAL_USR_LIBS += libstdc++
+endif
+
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_FINAL_USR_LIBS += libgomp
+endif
+
+ifneq ($(HOST_GCC_FINAL_USR_LIBS),)
+define HOST_GCC_FINAL_INSTALL_USR_LIBS
+	for i in $(HOST_GCC_FINAL_USR_LIBS) ; do \
+		cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/$${i}.so* \
+			$(STAGING_DIR)/usr/lib/ ; \
+		cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/$${i}.so* \
+			$(TARGET_DIR)/usr/lib/ ; \
+	done
+endef
+HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_FINAL_INSTALL_USR_LIBS
+endif
+
+
+$(eval $(host-autotools-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (11 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 12/23] gcc-final: " Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:39   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction Thomas Petazzoni
                   ` (9 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile                                           |   2 +-
 package/Config.in                                  |   1 -
 .../1001-gcc-4.2.x-inhibit-libc.patch              |   0
 ...-fix-removal-of-redundant-cast-operations.patch |   0
 ...conditional-insn-which-clobbers-cc_status.patch |   0
 ...use-movh-to-move-immediates-into-register.patch |   0
 .../gcc/4.3.6/100-uclibc-conf.patch                |   0
 .../gcc/4.3.6/104-gnuhurd-uclibc-conf.patch        |   0
 .../gcc/4.3.6/301-missing-execinfo_h.patch         |   0
 .../gcc/4.3.6/302-c99-snprintf.patch               |   0
 .../gcc/4.3.6/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.3.6/810-arm-softfloat-libgcc.patch       |   0
 .../4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch |   0
 .../gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch    |   0
 .../gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch  |   0
 .../4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch    |   0
 ...gcc-4.3.0-cris-pragma-pack-warning-remove.patch |   0
 .../gcc/4.3.6/gcc-43-pr39429.patch                 |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.4.7-arc/fix_branch_out_of_range.patch    |   0
 .../gcc/4.4.7/100-uclibc-conf.patch                |   0
 .../gcc/4.4.7/301-missing-execinfo_h.patch         |   0
 .../gcc/4.4.7/302-c99-snprintf.patch               |   0
 .../gcc/4.4.7/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.4.7/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.4.7/950-sparc-leon.patch                 |   0
 .../gcc/4.4.7/gcc-44-pr39429.patch                 |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.5.4/100-uclibc-conf.patch                |   0
 .../gcc/4.5.4/301-missing-execinfo_h.patch         |   0
 .../gcc/4.5.4/302-c99-snprintf.patch               |   0
 .../gcc/4.5.4/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.5.4/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.5.4/820-arm-unbreak-armv4t.patch         |   0
 .../gcc/4.5.4/830-arm-pr43440.patch                |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.6.4/100-uclibc-conf.patch                |   0
 .../gcc/4.6.4/301-missing-execinfo_h.patch         |   0
 .../gcc/4.6.4/302-c99-snprintf.patch               |   0
 .../gcc/4.6.4/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.6.4/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.6.4/820-arm-unbreak-armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.7.3/100-uclibc-conf.patch                |   0
 .../gcc/4.7.3/301-missing-execinfo_h.patch         |   0
 .../gcc/4.7.3/302-c99-snprintf.patch               |   0
 .../gcc/4.7.3/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.7.3/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.7.3/830-arm_unbreak_armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 .../gcc/4.8.1/100-uclibc-conf.patch                |   0
 .../gcc/4.8.1/301-missing-execinfo_h.patch         |   0
 .../gcc/4.8.1/302-c99-snprintf.patch               |   0
 .../gcc/4.8.1/305-libmudflap-susv3-legacy.patch    |   0
 .../gcc/4.8.1/810-arm-softfloat-libgcc.patch       |   0
 .../gcc/4.8.1/830-arm_unbreak_armv4t.patch         |   0
 .../powerpc-link-with-math-lib.patch.conditional   |   0
 toolchain/gcc/Config.in                            | 130 -----
 toolchain/gcc/Config.in.2                          |  34 --
 toolchain/gcc/gcc-uclibc-4.x.mk                    | 640 ---------------------
 toolchain/toolchain-buildroot.mk                   |   7 +-
 toolchain/toolchain-buildroot/Config.in            |   2 +-
 toolchain/toolchain-crosstool-ng.mk                |   1 -
 toolchain/toolchain-external.mk                    |   1 -
 toolchain/uClibc/uclibc.mk                         |  36 +-
 65 files changed, 23 insertions(+), 831 deletions(-)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch (100%)
 rename {toolchain => package}/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/gcc-43-pr39429.patch (100%)
 rename {toolchain => package}/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.4.7-arc/fix_branch_out_of_range.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/950-sparc-leon.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/gcc-44-pr39429.patch (100%)
 rename {toolchain => package}/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.5.4/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/820-arm-unbreak-armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/830-arm-pr43440.patch (100%)
 rename {toolchain => package}/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.6.4/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/820-arm-unbreak-armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.7.3/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/830-arm_unbreak_armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional (100%)
 rename {toolchain => package}/gcc/4.8.1/100-uclibc-conf.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/301-missing-execinfo_h.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/302-c99-snprintf.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/305-libmudflap-susv3-legacy.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/810-arm-softfloat-libgcc.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/830-arm_unbreak_armv4t.patch (100%)
 rename {toolchain => package}/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional (100%)
 delete mode 100644 toolchain/gcc/Config.in
 delete mode 100644 toolchain/gcc/Config.in.2
 delete mode 100644 toolchain/gcc/gcc-uclibc-4.x.mk

diff --git a/Makefile b/Makefile
index 509eab6..189a1db 100644
--- a/Makefile
+++ b/Makefile
@@ -224,7 +224,7 @@ BASE_TARGETS += host-ccache
 endif
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-BASE_TARGETS += uclibc-configured host-binutils cross_compiler uclibc-target-utils kernel-headers
+BASE_TARGETS += toolchain-buildroot
 else
 BASE_TARGETS += uclibc
 endif
diff --git a/package/Config.in b/package/Config.in
index ebeabeb..a30f0f3 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -74,7 +74,6 @@ source "package/flex/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 source "package/gawk/Config.in"
 endif
-source "toolchain/gcc/Config.in.2"
 source "package/gettext/Config.in"
 source "package/git/Config.in"
 source "package/gperf/Config.in"
diff --git a/toolchain/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch b/package/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch
similarity index 100%
rename from toolchain/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch
rename to package/gcc/4.2.2-avr32-2.1.5/1001-gcc-4.2.x-inhibit-libc.patch
diff --git a/toolchain/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch b/package/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
similarity index 100%
rename from toolchain/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
rename to package/gcc/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
diff --git a/toolchain/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch b/package/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch
similarity index 100%
rename from toolchain/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch
rename to package/gcc/4.2.2-avr32-2.1.5/904-avr32-fix-conditional-insn-which-clobbers-cc_status.patch
diff --git a/toolchain/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch b/package/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch
similarity index 100%
rename from toolchain/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch
rename to package/gcc/4.2.2-avr32-2.1.5/905-avr32-optimize-movsf2-use-movh-to-move-immediates-into-register.patch
diff --git a/toolchain/gcc/4.3.6/100-uclibc-conf.patch b/package/gcc/4.3.6/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/100-uclibc-conf.patch
rename to package/gcc/4.3.6/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch b/package/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch
rename to package/gcc/4.3.6/104-gnuhurd-uclibc-conf.patch
diff --git a/toolchain/gcc/4.3.6/301-missing-execinfo_h.patch b/package/gcc/4.3.6/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/301-missing-execinfo_h.patch
rename to package/gcc/4.3.6/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.3.6/302-c99-snprintf.patch b/package/gcc/4.3.6/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/302-c99-snprintf.patch
rename to package/gcc/4.3.6/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.3.6/305-libmudflap-susv3-legacy.patch b/package/gcc/4.3.6/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.3.6/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.3.6/810-arm-softfloat-libgcc.patch b/package/gcc/4.3.6/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.3.6/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch b/package/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch
rename to package/gcc/4.3.6/993-arm_insn-opinit-RTX_CODE-fixup.patch
diff --git a/toolchain/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch b/package/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch
rename to package/gcc/4.3.6/998-gcc-4.3.0-fix-header.00.patch
diff --git a/toolchain/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch b/package/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch
rename to package/gcc/4.3.6/999-4.3.2-armeabi-aapcs-linux.patch
diff --git a/toolchain/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch b/package/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch
rename to package/gcc/4.3.6/999-4.3.3-arm-fix-for-bug-37436.patch
diff --git a/toolchain/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch b/package/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch
rename to package/gcc/4.3.6/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch
diff --git a/toolchain/gcc/4.3.6/gcc-43-pr39429.patch b/package/gcc/4.3.6/gcc-43-pr39429.patch
similarity index 100%
rename from toolchain/gcc/4.3.6/gcc-43-pr39429.patch
rename to package/gcc/4.3.6/gcc-43-pr39429.patch
diff --git a/toolchain/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.3.6/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/4.4.7-arc/fix_branch_out_of_range.patch b/package/gcc/4.4.7-arc/fix_branch_out_of_range.patch
similarity index 100%
rename from toolchain/gcc/4.4.7-arc/fix_branch_out_of_range.patch
rename to package/gcc/4.4.7-arc/fix_branch_out_of_range.patch
diff --git a/toolchain/gcc/4.4.7/100-uclibc-conf.patch b/package/gcc/4.4.7/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/100-uclibc-conf.patch
rename to package/gcc/4.4.7/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.4.7/301-missing-execinfo_h.patch b/package/gcc/4.4.7/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/301-missing-execinfo_h.patch
rename to package/gcc/4.4.7/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.4.7/302-c99-snprintf.patch b/package/gcc/4.4.7/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/302-c99-snprintf.patch
rename to package/gcc/4.4.7/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.4.7/305-libmudflap-susv3-legacy.patch b/package/gcc/4.4.7/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.4.7/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.4.7/810-arm-softfloat-libgcc.patch b/package/gcc/4.4.7/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.4.7/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.4.7/950-sparc-leon.patch b/package/gcc/4.4.7/950-sparc-leon.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/950-sparc-leon.patch
rename to package/gcc/4.4.7/950-sparc-leon.patch
diff --git a/toolchain/gcc/4.4.7/gcc-44-pr39429.patch b/package/gcc/4.4.7/gcc-44-pr39429.patch
similarity index 100%
rename from toolchain/gcc/4.4.7/gcc-44-pr39429.patch
rename to package/gcc/4.4.7/gcc-44-pr39429.patch
diff --git a/toolchain/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.4.7/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/4.5.4/100-uclibc-conf.patch b/package/gcc/4.5.4/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/100-uclibc-conf.patch
rename to package/gcc/4.5.4/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.5.4/301-missing-execinfo_h.patch b/package/gcc/4.5.4/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/301-missing-execinfo_h.patch
rename to package/gcc/4.5.4/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.5.4/302-c99-snprintf.patch b/package/gcc/4.5.4/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/302-c99-snprintf.patch
rename to package/gcc/4.5.4/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.5.4/305-libmudflap-susv3-legacy.patch b/package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.5.4/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.5.4/810-arm-softfloat-libgcc.patch b/package/gcc/4.5.4/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.5.4/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.5.4/820-arm-unbreak-armv4t.patch b/package/gcc/4.5.4/820-arm-unbreak-armv4t.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/820-arm-unbreak-armv4t.patch
rename to package/gcc/4.5.4/820-arm-unbreak-armv4t.patch
diff --git a/toolchain/gcc/4.5.4/830-arm-pr43440.patch b/package/gcc/4.5.4/830-arm-pr43440.patch
similarity index 100%
rename from toolchain/gcc/4.5.4/830-arm-pr43440.patch
rename to package/gcc/4.5.4/830-arm-pr43440.patch
diff --git a/toolchain/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.5.4/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/4.6.4/100-uclibc-conf.patch b/package/gcc/4.6.4/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/100-uclibc-conf.patch
rename to package/gcc/4.6.4/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.6.4/301-missing-execinfo_h.patch b/package/gcc/4.6.4/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/301-missing-execinfo_h.patch
rename to package/gcc/4.6.4/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.6.4/302-c99-snprintf.patch b/package/gcc/4.6.4/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/302-c99-snprintf.patch
rename to package/gcc/4.6.4/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.6.4/305-libmudflap-susv3-legacy.patch b/package/gcc/4.6.4/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.6.4/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.6.4/810-arm-softfloat-libgcc.patch b/package/gcc/4.6.4/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.6.4/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.6.4/820-arm-unbreak-armv4t.patch b/package/gcc/4.6.4/820-arm-unbreak-armv4t.patch
similarity index 100%
rename from toolchain/gcc/4.6.4/820-arm-unbreak-armv4t.patch
rename to package/gcc/4.6.4/820-arm-unbreak-armv4t.patch
diff --git a/toolchain/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.6.4/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/4.7.3/100-uclibc-conf.patch b/package/gcc/4.7.3/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/100-uclibc-conf.patch
rename to package/gcc/4.7.3/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.7.3/301-missing-execinfo_h.patch b/package/gcc/4.7.3/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/301-missing-execinfo_h.patch
rename to package/gcc/4.7.3/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.7.3/302-c99-snprintf.patch b/package/gcc/4.7.3/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/302-c99-snprintf.patch
rename to package/gcc/4.7.3/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.7.3/305-libmudflap-susv3-legacy.patch b/package/gcc/4.7.3/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.7.3/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.7.3/810-arm-softfloat-libgcc.patch b/package/gcc/4.7.3/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.7.3/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.7.3/830-arm_unbreak_armv4t.patch b/package/gcc/4.7.3/830-arm_unbreak_armv4t.patch
similarity index 100%
rename from toolchain/gcc/4.7.3/830-arm_unbreak_armv4t.patch
rename to package/gcc/4.7.3/830-arm_unbreak_armv4t.patch
diff --git a/toolchain/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.7.3/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/4.8.1/100-uclibc-conf.patch b/package/gcc/4.8.1/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/100-uclibc-conf.patch
rename to package/gcc/4.8.1/100-uclibc-conf.patch
diff --git a/toolchain/gcc/4.8.1/301-missing-execinfo_h.patch b/package/gcc/4.8.1/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/301-missing-execinfo_h.patch
rename to package/gcc/4.8.1/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/4.8.1/302-c99-snprintf.patch b/package/gcc/4.8.1/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/302-c99-snprintf.patch
rename to package/gcc/4.8.1/302-c99-snprintf.patch
diff --git a/toolchain/gcc/4.8.1/305-libmudflap-susv3-legacy.patch b/package/gcc/4.8.1/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/305-libmudflap-susv3-legacy.patch
rename to package/gcc/4.8.1/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/4.8.1/810-arm-softfloat-libgcc.patch b/package/gcc/4.8.1/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/810-arm-softfloat-libgcc.patch
rename to package/gcc/4.8.1/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/4.8.1/830-arm_unbreak_armv4t.patch b/package/gcc/4.8.1/830-arm_unbreak_armv4t.patch
similarity index 100%
rename from toolchain/gcc/4.8.1/830-arm_unbreak_armv4t.patch
rename to package/gcc/4.8.1/830-arm_unbreak_armv4t.patch
diff --git a/toolchain/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional b/package/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional
similarity index 100%
rename from toolchain/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional
rename to package/gcc/4.8.1/powerpc-link-with-math-lib.patch.conditional
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
deleted file mode 100644
index 7830241..0000000
--- a/toolchain/gcc/Config.in
+++ /dev/null
@@ -1,130 +0,0 @@
-# Choose gcc version.
-
-comment "GCC Options"
-
-config BR2_GCC_NEEDS_MPC
-	bool
-
-choice
-	prompt "GCC compiler Version"
-	default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
-	default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32
-	default BR2_GCC_VERSION_4_4_7_ARC if BR2_arc
-	default BR2_GCC_VERSION_4_7_X
-	help
-	  Select the version of gcc you wish to use.
-
-	config BR2_GCC_VERSION_4_4_7_ARC
-		depends on BR2_arc
-		bool "gcc 4.4.7-arc"
-
-	config BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
-	       depends on BR2_avr32
-	       bool "gcc 4.2.2-avr32-2.1.5"
-
-	config BR2_GCC_VERSION_4_3_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a8 && !BR2_cortex_a9 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_e300c2 && !BR2_powerpc_e300c3 && !BR2_powerpc_e500mc && !BR2_powerpc_464 && !BR2_powerpc_464fp && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
-		bool "gcc 4.3.x"
-
-	config BR2_GCC_VERSION_4_4_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a5 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_x86_atom && !BR2_powerpc_476 && !BR2_powerpc_476fp && !BR2_fa526 && !BR2_pj4
-		bool "gcc 4.4.x"
-
-	config BR2_GCC_VERSION_4_5_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_cortex_a15 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_fa526 && !BR2_pj4
-		select BR2_GCC_NEEDS_MPC
-		bool "gcc 4.5.x"
-
-	config BR2_GCC_VERSION_4_6_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_cortex_a7 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
-		select BR2_GCC_NEEDS_MPC
-		bool "gcc 4.6.x"
-
-	config BR2_GCC_VERSION_4_7_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_pj4
-		select BR2_GCC_NEEDS_MPC
-		bool "gcc 4.7.x"
-
-	config BR2_GCC_VERSION_4_8_X
-		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
-		select BR2_GCC_NEEDS_MPC
-		bool "gcc 4.8.x"
-
-	config BR2_GCC_VERSION_SNAP
-		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
-		select BR2_GCC_NEEDS_MPC
-		bool "gcc snapshot"
-endchoice
-
-config BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE
-	bool
-	default y if !BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
-
-config BR2_GCC_SNAP_DATE
-	string "GCC snapshot date"
-	default "4.8-20120429"
-	depends on BR2_GCC_VERSION_SNAP
-	help
-	  Enter snapshot date to use for gcc.
-	  Format is: A.B-YYYYMMDD
-
-	  A is GCC major version, for example 4.
-	  B is GCC minor version, for example 7.
-	  YYYYMMDD is snapshot date, for example 20110430.
-
-	  This way we'd get version 4.7-20110430
-
-config BR2_GCC_VERSION
-	string
-	default "4.2.2-avr32-2.1.5" if BR2_GCC_VERSION_4_2_2_AVR32_2_1_5
-	default "4.3.6"     if BR2_GCC_VERSION_4_3_X
-	default "4.4.7"     if BR2_GCC_VERSION_4_4_X
-	default "4.4.7-arc" if BR2_GCC_VERSION_4_4_7_ARC
-	default "4.5.4"     if BR2_GCC_VERSION_4_5_X
-	default "4.6.4"     if BR2_GCC_VERSION_4_6_X
-	default "4.7.3"     if BR2_GCC_VERSION_4_7_X
-	default "4.8.1"     if BR2_GCC_VERSION_4_8_X
-	default $BR2_GCC_SNAP_DATE if BR2_GCC_VERSION_SNAP
-
-config BR2_EXTRA_GCC_CONFIG_OPTIONS
-	string "Additional gcc options"
-	default ""
-	help
-	  Any additional gcc configure options you may want to include....
-
-config BR2_INSTALL_OBJC
-	bool "Build/install Objective-C compiler and runtime?"
-	depends on !BR2_avr32
-	help
-	  Build/install Objective-C compiler and runtime?
-
-config BR2_INSTALL_FORTRAN
-	bool "Build/install Fortran compiler and runtime?"
-	depends on !BR2_avr32
-	select BR2_PACKAGE_LIBMPFR
-	help
-	  Build/install Fortran compiler and runtime?
-	  Note that it is highly recommended NOT to use gfortran
-	  from gcc older than 4.2.0
-
-config BR2_GCC_SHARED_LIBGCC
-	bool "Build/install a shared libgcc?"
-	depends on !BR2_PREFER_STATIC_LIB
-	default y
-	depends on !BR2_sparc
-	help
-	  Build/install a shared libgcc library
-
-config BR2_GCC_ENABLE_TLS
-	bool "Enable compiler tls support"
-	default y
-	depends on BR2_PTHREADS_NATIVE
-	help
-	  Enable the compiler to generate code for accessing
-	  thread local storage variables
-
-config BR2_GCC_ENABLE_OPENMP
-	bool "Enable compiler OpenMP support"
-	depends on !BR2_PTHREADS_NONE && !BR2_avr32 && !BR2_arc
-	help
-	  Enable OpenMP support for the compiler
diff --git a/toolchain/gcc/Config.in.2 b/toolchain/gcc/Config.in.2
deleted file mode 100644
index c8a8cf6..0000000
--- a/toolchain/gcc/Config.in.2
+++ /dev/null
@@ -1,34 +0,0 @@
-config BR2_PACKAGE_GCC_TARGET
-	bool "gcc"
-	# We no longer want to support a toolchain on the target
-	depends on BR2_DEPRECATED
-	depends on BR2_HAVE_DEVFILES && BR2_TOOLCHAIN_BUILDROOT
-	select BR2_PACKAGE_BINUTILS
-	select BR2_PACKAGE_BINUTILS_TARGET
-	select BR2_PACKAGE_MPC if (BR2_GCC_VERSION_4_5_X || BR2_GCC_VERSION_4_6_X || BR2_GCC_VERSION_4_7_X || BR2_GCC_VERSION_SNAP)
-	select BR2_PACKAGE_MPFR
-	select BR2_PACKAGE_GMP
-	help
-	  If you want the target system to be able to run
-	  binutils/gcc and compile native code, say Y here.
-
-config BR2_GCC_CROSS_FORTRAN
-	bool "fortran support"
-	depends on !BR2_avr32 && BR2_PACKAGE_GCC_TARGET
-	help
-	  Build a Fortran compiler
-
-config BR2_GCC_CROSS_OBJC
-	bool "objective-c support"
-	depends on !BR2_avr32 && BR2_PACKAGE_GCC_TARGET
-	help
-	  Build an Objective-C compiler
-
-config BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS
-	string "Additional target gcc options"
-	default ""
-	depends on BR2_PACKAGE_GCC_TARGET
-	help
-	  Any additional target gcc options you may want to include....
-	  Including, but not limited to --disable-checking etc.
-	  Refer to */configure in your gcc sources.
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
deleted file mode 100644
index b1484eb..0000000
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ /dev/null
@@ -1,640 +0,0 @@
-################################################################################
-#
-# Makefile for to build a gcc/uClibc toolchain
-#
-# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org>
-# Copyright (C) 2004 Manuel Novoa III <mjn3@uclibc.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-################################################################################
-
-GCC_VERSION:=$(call qstrip,$(BR2_GCC_VERSION))
-
-ifeq ($(BR2_GCC_VERSION_SNAP),y)
-GCC_SNAP_DATE:=$(call qstrip,$(BR2_GCC_SNAP_DATE))
-else
-GCC_SNAP_DATE:=
-endif
-
-ifneq ($(GCC_SNAP_DATE),)
- GCC_SITE:=ftp://gcc.gnu.org/pub/gcc/snapshots/$(GCC_SNAP_DATE)/
-else ifeq ($(findstring avr32,$(GCC_VERSION)),avr32)
- GCC_SITE:=ftp://www.at91.com/pub/buildroot/
-else ifeq ($(findstring arc,$(GCC_VERSION)),arc)
- GCC_SITE:=$(BR2_ARC_SITE)
-else
- GCC_SITE:=$(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
-endif
-
-GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2
-GCC_PATCH_DIR:=toolchain/gcc/$(GCC_VERSION)
-GCC_DIR:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)
-GCC_CAT:=$(BZCAT)
-GCC_SRC_DIR:=$(GCC_DIR)
-
-# Branding works on >= 4.3
-ifneq ($(findstring x4.2.,x$(GCC_VERSION)),x4.2.)
-EXTRA_GCC_CONFIG_OPTIONS+=--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
-	--with-bugurl="http://bugs.buildroot.net/"
-endif
-
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810
-# Workaround until it's fixed in 4.5.4 or later
-ifeq ($(ARCH),powerpc)
-ifeq ($(findstring x4.5.,x$(GCC_VERSION)),x4.5.)
-GCC_OPTSPACE=--disable-target-optspace
-endif
-else
-GCC_OPTSPACE=--enable-target-optspace
-endif
-
-# gcc 4.6.x quadmath requires wchar
-ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
-GCC_QUADMATH=--disable-libquadmath
-endif
-
-# Determine soft-float options
-ifeq ($(BR2_SOFT_FLOAT),y)
-# only mips*-*-*, arm*-*-* and sparc*-*-* accept --with-float
-# powerpc seems to be needing it as well
-ifeq ($(BR2_arm)$(BR2_armeb)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el)$(BR2_powerpc)$(BR2_sparc),y)
-SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
-endif
-ifeq ($(BR2_arm)$(BR2_armeb),y) # only set float-abi for arm
-TARGET_SOFT_FLOAT:=-mfloat-abi=soft
-else
-TARGET_SOFT_FLOAT:=-msoft-float
-endif
-else # no softfloat support
-SOFT_FLOAT_CONFIG_OPTION:=
-TARGET_SOFT_FLOAT:=
-endif
-
-# Determine arch/tune/abi/cpu options
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
-GCC_WITH_ARCH:=--with-arch=$(BR2_GCC_TARGET_ARCH)
-endif
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
-GCC_WITH_TUNE:=--with-tune=$(BR2_GCC_TARGET_TUNE)
-endif
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
-GCC_WITH_ABI:=--with-abi=$(BR2_GCC_TARGET_ABI)
-endif
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
-GCC_WITH_CPU:=--with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
-else
-GCC_WITH_CPU:=--with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU))
-endif
-endif
-
-# AVR32 GCC special configuration
-ifeq ($(BR2_avr32),y)
-# For the cross-compiler
-EXTRA_GCC_CONFIG_OPTIONS += \
-	--disable-libmudflap
-SOFT_FLOAT_CONFIG_OPTION:=
-
-# For the target compiler
-EXTRA_TARGET_GCC_CONFIG_OPTIONS += \
-	--disable-libmudflap
-EXTRA_TARGET_GCC_CONFIG_OPTIONS += \
-	--with-build-time-tools=$(STAGING_DIR)/$(GNU_TARGET_NAME)/bin
-EXTRA_TARGET_GCC_CONFIG_OPTIONS += \
-	--with-as=$(TARGET_CROSS)as
-endif
-
-# Disable mudflap and enable proper double/long double for SPE ABI
-ifeq ($(BR2_powerpc_SPE),y)
-EXTRA_GCC_CONFIG_OPTIONS +=  \
-	--disable-libmudflap \
-	--enable-e500_double \
-	--with-long-double-128
-endif
-
-# End with user-provided options, so that they can override previously
-# defined options.
-EXTRA_GCC_CONFIG_OPTIONS += \
-	$(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
-EXTRA_TARGET_GCC_CONFIG_OPTIONS += \
-	$(call qstrip,$(BR2_EXTRA_TARGET_GCC_CONFIG_OPTIONS))
-
-################################################################################
-#
-# Setup some initial stuff
-#
-################################################################################
-
-GCC_STAGING_PREREQ+=$(STAGING_DIR)/usr/lib/libc.a
-
-GCC_TARGET_LANGUAGES:=c
-
-GCC_CROSS_LANGUAGES:=c
-ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-GCC_CROSS_LANGUAGES:=$(GCC_CROSS_LANGUAGES),c++
-endif
-ifeq ($(BR2_GCC_CROSS_FORTRAN),y)
-GCC_CROSS_LANGUAGES:=$(GCC_CROSS_LANGUAGES),fortran
-endif
-ifeq ($(BR2_GCC_CROSS_OBJC),y)
-GCC_CROSS_LANGUAGES:=$(GCC_CROSS_LANGUAGES),objc
-endif
-
-ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-GCC_TARGET_LANGUAGES:=$(GCC_TARGET_LANGUAGES),c++
-endif
-
-ifeq ($(BR2_INSTALL_OBJC),y)
-GCC_TARGET_LANGUAGES:=$(GCC_TARGET_LANGUAGES),objc
-endif
-
-ifeq ($(BR2_INSTALL_FORTRAN),y)
-GCC_TARGET_LANGUAGES:=$(GCC_TARGET_LANGUAGES),fortran
-endif
-
-# GCC 4.x prerequisites
-GCC_WITH_HOST_GMP = --with-gmp=$(HOST_DIR)/usr
-GCC_WITH_HOST_MPFR = --with-mpfr=$(HOST_DIR)/usr
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-HOST_SOURCE += host-gmp-source host-mpfr-source
-endif
-GCC_HOST_PREREQ = host-gmp host-mpfr
-GCC_TARGET_PREREQ += mpfr gmp
-
-ifeq ($(BR2_GCC_NEEDS_MPC),y)
-GCC_WITH_HOST_MPC = --with-mpc=$(HOST_DIR)/usr
-GCC_TARGET_PREREQ += mpc
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-HOST_SOURCE += host-mpc-source
-endif
-GCC_HOST_PREREQ += host-mpc
-endif
-
-ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
-GCC_HOST_PREREQ += host-flex host-bison
-endif
-
-ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
-GCC_SHARED_LIBGCC:=--enable-shared
-else
-GCC_SHARED_LIBGCC:=--disable-shared
-endif
-
-ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
-GCC_ENABLE_OPENMP:=--enable-libgomp
-else
-GCC_ENABLE_OPENMP:=--disable-libgomp
-endif
-
-ifeq ($(BR2_GCC_ENABLE_TLS),y)
-GCC_TLS:=--enable-tls
-else
-GCC_TLS:=--disable-tls
-endif
-
-ifeq ($(BR2_PTHREADS_NONE),y)
-THREADS:=--disable-threads --disable-libitm --disable-libatomic
-else
-THREADS:=--enable-threads
-endif
-
-ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
-GCC_DECIMAL_FLOAT:=--disable-decimal-float
-endif
-
-# gcc version < 4.2.0 don't have -Wno-overlength-strings and the configure
-# script has problems detecting it, so help it
-ifeq ($(shell test $(HOSTCC_VERSION) -lt 420 && echo OLD),OLD)
-GCC_CONF_ENV:=acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros_____________Wno_overlength_strings=no \
-	acx_cv_prog_cc_warning__Wno_overlength_strings=no
-endif
-
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-HOST_SOURCE+=gcc-source
-endif
-
-$(DL_DIR)/$(GCC_SOURCE):
-	mkdir -p $(DL_DIR)
-	$(Q)$(call MESSAGE,"Downloading gcc")
-	$(call DOWNLOAD,$(GCC_SITE:/=)/$(GCC_SOURCE))
-
-gcc-unpacked: $(GCC_DIR)/.patched
-$(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
-	$(Q)$(call MESSAGE,"Extracting gcc")
-	mkdir -p $(TOOLCHAIN_DIR)
-	rm -rf $(GCC_DIR)
-	$(GCC_CAT) $(DL_DIR)/$(GCC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
-	$(call CONFIG_UPDATE,$(@D))
-ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
-	tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
-		$(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
-endif
-	touch $@
-
-gcc-patched: $(GCC_DIR)/.patched
-$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
-	$(Q)$(call MESSAGE,"Patching gcc")
-	# Apply any files named gcc-*.patch from the source directory to gcc
-ifneq ($(wildcard $(GCC_PATCH_DIR)),)
-	support/scripts/apply-patches.sh $(GCC_DIR) $(GCC_PATCH_DIR) \*.patch
-endif
-
-ifeq ($(ARCH)-$(BR2_GCC_SHARED_LIBGCC),powerpc-y)
-ifneq ($(BR2_SOFT_FLOAT),)
-	support/scripts/apply-patches.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) powerpc-link-with-math-lib.patch.conditional
-endif
-endif
-	touch $@
-
-################################################################################
-#
-# build the first pass gcc compiler
-#
-################################################################################
-GCC_BUILD_DIR1:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-initial
-
-$(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
-	$(Q)$(call MESSAGE,"Configuring gcc pass-1")
-	mkdir -p $(GCC_BUILD_DIR1)
-	(cd $(GCC_BUILD_DIR1); rm -rf config.cache; \
-		$(HOST_CONFIGURE_OPTS) \
-		MAKEINFO=missing \
-		$(GCC_DIR)/configure $(QUIET) \
-		--prefix=$(HOST_DIR)/usr \
-		--build=$(GNU_HOST_NAME) \
-		--host=$(GNU_HOST_NAME) \
-		--target=$(GNU_TARGET_NAME) \
-		--enable-languages=c \
-		--with-sysroot=$(TOOLCHAIN_DIR)/uClibc_dev/ \
-		--disable-__cxa_atexit \
-		$(GCC_OPTSPACE) \
-		$(GCC_QUADMATH) \
-		$(GCC_ENABLE_OPENMP) \
-		--with-gnu-ld \
-		--disable-shared \
-		--disable-libssp \
-		--without-headers \
-		--with-newlib \
-		--disable-multilib \
-		$(GCC_TLS) \
-		$(GCC_WITH_HOST_GMP) \
-		$(GCC_WITH_HOST_MPFR) \
-		$(GCC_WITH_HOST_MPC) \
-		$(DISABLE_NLS) \
-		$(THREADS) \
-		$(GCC_DECIMAL_FLOAT) \
-		$(SOFT_FLOAT_CONFIG_OPTION) \
-		$(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) $(GCC_WITH_CPU) \
-		$(DISABLE_LARGEFILE) \
-		$(EXTRA_GCC_CONFIG_OPTIONS) \
-	)
-	touch $@
-
-$(GCC_BUILD_DIR1)/.compiled: $(GCC_BUILD_DIR1)/.configured
-	$(Q)$(call MESSAGE,"Building gcc pass-1")
-ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
-	$(GCC_CONF_ENV) $(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
-else
-	$(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) all-gcc
-endif
-	touch $@
-
-gcc_initial=$(GCC_BUILD_DIR1)/.installed
-$(gcc_initial) $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc: $(GCC_BUILD_DIR1)/.compiled
-	$(Q)$(call MESSAGE,"Installing gcc pass-1")
-	$(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR1) install-gcc
-	touch $(gcc_initial)
-
-gcc_initial: $(GCC_HOST_PREREQ) host-binutils $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc
-
-gcc_initial-clean:
-	rm -rf $(GCC_BUILD_DIR1)
-
-gcc_initial-dirclean:
-	rm -rf $(GCC_BUILD_DIR1) $(GCC_DIR)
-
-################################################################################
-#
-# build the second pass gcc compiler
-#
-################################################################################
-GCC_BUILD_DIR2:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-intermediate
-
-# The --without-headers option stopped working with gcc 3.0 and has never been
-# fixed, so we need to actually have working C library header files prior to
-# the step or libgcc will not build...
-
-$(GCC_BUILD_DIR2)/.configured: $(GCC_DIR)/.patched
-	$(Q)$(call MESSAGE,"Configuring gcc pass-2")
-	mkdir -p $(GCC_BUILD_DIR2)
-	(cd $(GCC_BUILD_DIR2); rm -rf config.cache; \
-		$(HOST_CONFIGURE_OPTS) \
-		MAKEINFO=missing \
-		$(GCC_DIR)/configure $(QUIET) \
-		--prefix=$(HOST_DIR)/usr \
-		--build=$(GNU_HOST_NAME) \
-		--host=$(GNU_HOST_NAME) \
-		--target=$(GNU_TARGET_NAME) \
-		--enable-languages=c \
-		--with-sysroot=$(TOOLCHAIN_DIR)/uClibc_dev/ \
-		--disable-__cxa_atexit \
-		$(GCC_OPTSPACE) \
-		$(GCC_QUADMATH) \
-		$(GCC_ENABLE_OPENMP) \
-		--with-gnu-ld \
-		--enable-shared \
-		--disable-libssp \
-		--disable-multilib \
-		$(GCC_TLS) \
-		$(GCC_WITH_HOST_GMP) \
-		$(GCC_WITH_HOST_MPFR) \
-		$(GCC_WITH_HOST_MPC) \
-		$(DISABLE_NLS) \
-		$(THREADS) \
-		$(MULTILIB) \
-		$(GCC_DECIMAL_FLOAT) \
-		$(SOFT_FLOAT_CONFIG_OPTION) \
-		$(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) $(GCC_WITH_CPU) \
-		$(DISABLE_LARGEFILE) \
-		$(EXTRA_GCC_CONFIG_OPTIONS) \
-	)
-	touch $@
-
-$(GCC_BUILD_DIR2)/.compiled: $(GCC_BUILD_DIR2)/.configured
-	$(Q)$(call MESSAGE,"Building gcc pass-2")
-	# gcc >= 4.3.0 have to also build all-target-libgcc
-ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
-	$(GCC_CONF_ENV) $(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc all-target-libgcc
-else
-	$(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) all-gcc
-endif
-	touch $@
-
-gcc_intermediate=$(GCC_BUILD_DIR2)/.installed
-$(gcc_intermediate): $(GCC_BUILD_DIR2)/.compiled
-	$(Q)$(call MESSAGE,"Installing gcc pass-2")
-	# gcc >= 4.3.0 have to also install install-target-libgcc
-ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
-	$(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc install-target-libgcc
-else
-	$(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR2) install-gcc
-endif
-	touch $(gcc_intermediate)
-
-gcc_intermediate: uclibc-configured $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc
-
-gcc_intermediate-clean:
-	rm -rf $(GCC_BUILD_DIR2)
-
-gcc_intermediate-dirclean:
-	rm -rf $(GCC_BUILD_DIR2) $(GCC_DIR)
-
-################################################################################
-#
-# third pass compiler build. Build the compiler targeting
-# the newly built shared uClibc library.
-#
-################################################################################
-#
-# Sigh... I had to rework things because using --with-gxx-include-dir
-# causes issues with include dir search order for g++. This seems to
-# have something to do with "path translations" and possibly doesn't
-# affect gcc-target. However, I haven't tested gcc-target yet so no
-# guarantees. mjn3
-
-GCC_BUILD_DIR3:=$(TOOLCHAIN_DIR)/gcc-$(GCC_VERSION)-final
-$(GCC_BUILD_DIR3)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
-	$(Q)$(call MESSAGE,"Configuring gcc final")
-	mkdir -p $(GCC_BUILD_DIR3)
-	# Important! Required for limits.h to be fixed.
-	ln -snf ../include/ $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/sys-include
-	(cd $(GCC_BUILD_DIR3); rm -rf config.cache; \
-		$(HOST_CONFIGURE_OPTS) \
-		MAKEINFO=missing \
-		$(GCC_SRC_DIR)/configure $(QUIET) \
-		--prefix=$(HOST_DIR)/usr \
-		--build=$(GNU_HOST_NAME) \
-		--host=$(GNU_HOST_NAME) \
-		--target=$(GNU_TARGET_NAME) \
-		--enable-languages=$(GCC_CROSS_LANGUAGES) \
-		--with-sysroot=$(STAGING_DIR) \
-		--with-build-time-tools=$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin \
-		--disable-__cxa_atexit \
-		$(GCC_OPTSPACE) \
-		$(GCC_QUADMATH) \
-		$(GCC_ENABLE_OPENMP) \
-		--with-gnu-ld \
-		--disable-libssp \
-		--disable-multilib \
-		$(GCC_TLS) \
-		$(GCC_SHARED_LIBGCC) \
-		$(GCC_WITH_HOST_GMP) \
-		$(GCC_WITH_HOST_MPFR) \
-		$(GCC_WITH_HOST_MPC) \
-		$(DISABLE_NLS) \
-		$(THREADS) \
-		$(GCC_DECIMAL_FLOAT) \
-		$(SOFT_FLOAT_CONFIG_OPTION) \
-		$(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) $(GCC_WITH_CPU) \
-		$(DISABLE_LARGEFILE) \
-		$(EXTRA_GCC_CONFIG_OPTIONS) \
-	)
-	touch $@
-
-$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
-	$(Q)$(call MESSAGE,"Building gcc final")
-	$(GCC_CONF_ENV) $(HOST_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR3) all
-	touch $@
-
-$(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
-	$(Q)$(call MESSAGE,"Installing gcc final")
-	$(HOST_MAKE_ENV) $(MAKE) \
-		-C $(GCC_BUILD_DIR3) install
-	if [ -d "$(STAGING_DIR)/lib64" ]; then \
-		if [ ! -e "$(STAGING_DIR)/lib" ]; then \
-			mkdir -p "$(STAGING_DIR)/lib"; \
-		fi; \
-		mv "$(STAGING_DIR)/lib64/"* "$(STAGING_DIR)/lib/"; \
-		rmdir "$(STAGING_DIR)/lib64"; \
-		rm "$(STAGING_DIR)/usr/$(GNU_TARGET_NAME)/lib64";\
-	fi
-	# Make sure we have 'cc'.
-	if [ ! -e $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc ]; then \
-		ln -snf $(GNU_TARGET_NAME)-gcc \
-			$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc; \
-	fi
-	if [ ! -e $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin/cc ]; then \
-		ln -snf gcc $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin/cc; \
-	fi
-	# arch-linux-* symlinks
-	cd $(HOST_DIR)/usr/bin; for i in $(GNU_TARGET_NAME)-*; do \
-		ln -snf $$i $(ARCH)-linux$${i##$(GNU_TARGET_NAME)}; \
-	done
-
-	mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
-	touch $@
-
-$(STAMP_DIR)/gcc_libs_target_installed: $(GCC_BUILD_DIR3)/.installed
-	$(Q)$(call MESSAGE,"Installing gcc final libraries to staging and target")
-ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
-	# These go in /lib, so...
-	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
-	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \
-		$(STAGING_DIR)/lib/
-	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgcc_s* \
-		$(TARGET_DIR)/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libgcc_s*
-endif
-ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
-	mkdir -p $(TARGET_DIR)/usr/lib
-	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libstdc++.so* \
-		$(STAGING_DIR)/usr/lib/
-	-cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libstdc++.so* \
-		$(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libstdc++.so*
-endif
-endif
-ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
-	cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgomp.so* $(STAGING_DIR)/usr/lib/
-	cp -dpf $(HOST_DIR)/usr/$(GNU_TARGET_NAME)/lib*/libgomp.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libgomp.so*
-endif
-	mkdir -p $(@D)
-	touch $@
-
-cross_compiler:=$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc
-cross_compiler gcc: gcc_intermediate \
-	uclibc $(GCC_BUILD_DIR3)/.installed \
-	$(STAMP_DIR)/gcc_libs_target_installed
-
-gcc-source: $(DL_DIR)/$(GCC_SOURCE)
-
-gcc-clean:
-	rm -rf $(GCC_BUILD_DIR3)
-	for prog in cpp gcc gcc-[0-9]* protoize unprotoize gcov gccbug cc; do \
-		rm -f $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-$$prog; \
-	done
-
-gcc-dirclean: gcc_initial-dirclean
-	rm -rf $(GCC_BUILD_DIR3)
-
-################################################################################
-#
-# Next build target gcc compiler
-#
-################################################################################
-GCC_BUILD_DIR4:=$(BUILD_DIR)/gcc-$(GCC_VERSION)-target
-
-$(GCC_BUILD_DIR4)/.prepared: $(STAMP_DIR)/gcc_libs_target_installed
-	mkdir -p $(GCC_BUILD_DIR4)
-	touch $@
-
-$(GCC_BUILD_DIR4)/.configured: $(GCC_BUILD_DIR4)/.prepared
-	$(Q)$(call MESSAGE,"Configuring gcc on target")
-	(cd $(GCC_BUILD_DIR4); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		CFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
-		CXXFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
-		CFLAGS="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
-		BOOT_CFLAGS="$(TARGET_CFLAGS) $(TARGET_SOFT_FLOAT)" \
-		GCC_FOR_TARGET="$(TARGET_CC)" \
-		CC_FOR_TARGET="$(TARGET_CC)" \
-		CXX_FOR_TARGET="$(TARGET_CXX)" \
-		$(GCC_SRC_DIR)/configure $(QUIET) \
-		--prefix=/usr \
-		--build=$(GNU_HOST_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--target=$(GNU_TARGET_NAME) \
-		--enable-languages=$(GCC_TARGET_LANGUAGES) \
-		--with-gxx-include-dir=/usr/include/c++ \
-		--disable-__cxa_atexit \
-		$(GCC_OPTSPACE) \
-		$(GCC_QUADMATH) \
-		$(GCC_ENABLE_OPENMP) \
-		--with-gnu-ld \
-		--disable-libssp \
-		--disable-multilib \
-		$(GCC_TLS) \
-		$(GCC_SHARED_LIBGCC) \
-		$(DISABLE_NLS) \
-		$(THREADS) \
-		$(GCC_DECIMAL_FLOAT) \
-		$(SOFT_FLOAT_CONFIG_OPTION) \
-		$(GCC_WITH_ABI) $(GCC_WITH_ARCH) $(GCC_WITH_TUNE) $(GCC_WITH_CPU) \
-		$(DISABLE_LARGEFILE) \
-		$(EXTRA_GCC_CONFIG_OPTIONS) \
-		$(EXTRA_TARGET_GCC_CONFIG_OPTIONS) \
-	)
-	touch $@
-
-$(GCC_BUILD_DIR4)/.compiled: $(GCC_BUILD_DIR4)/.configured
-	$(Q)$(call MESSAGE,"Building gcc on target")
-	$(TARGET_MAKE_ENV) \
-	$(TARGET_MAKE_ENV) $(MAKE) -C $(GCC_BUILD_DIR4) all
-	touch $@
-
-GCC_LIB_SUBDIR=lib/gcc/$(GNU_TARGET_NAME)/$(GCC_VERSION)
-ifeq ($(findstring x4.2,x$(GCC_VERSION)),x4.2)
-GCC_INCLUDE_DIR:=include
-else
-GCC_INCLUDE_DIR:=include-fixed
-endif
-
-$(TARGET_DIR)/usr/bin/gcc: $(GCC_BUILD_DIR4)/.compiled
-	$(Q)$(call MESSAGE,"Installing gcc on target")
-	$(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) \
-		$(MAKE1) -C $(GCC_BUILD_DIR4) install
-	# Remove broken specs file (cross compile flag is set).
-	rm -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/specs
-
-	# Remove useless copies of gcc, c++, g++
-	rm -f $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-gcc*
-	rm -f $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-g++*
-	rm -f $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)-c++*
-
-	# Work around problem of missing syslimits.h
-	if [ ! -f $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/syslimits.h ]; then \
-		echo "warning: working around missing syslimits.h"; \
-		cp -f $(HOST_DIR)/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/syslimits.h \
-			$(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/$(GCC_INCLUDE_DIR)/; \
-	fi
-
-	# Make sure we have 'cc'.
-	if [ ! -e $(TARGET_DIR)/usr/bin/cc ]; then \
-		ln -snf gcc $(TARGET_DIR)/usr/bin/cc; \
-	fi
-
-	# Copy C runtime initialization object files
-	cp -f $(STAGING_DIR)/usr/lib/*crt*.o $(TARGET_DIR)/usr/lib
-
-	# These are in /lib, so...
-	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
-	touch -c $@
-
-gcc_target: $(STAMP_DIR)/gcc_libs_target_installed $(GCC_TARGET_PREREQ) binutils $(TARGET_DIR)/usr/bin/gcc
-
-gcc_target-clean:
-	rm -rf $(GCC_BUILD_DIR4)
-	rm -f $(TARGET_DIR)/usr/bin/$(GNU_TARGET_NAME)*
-
-gcc_target-dirclean:
-	rm -rf $(GCC_BUILD_DIR4)
-
-ifeq ($(BR2_PACKAGE_GCC_TARGET),y)
-TARGETS+=gcc_target
-endif
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index a8dd58b..b2eb9de 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,4 +1,9 @@
 # Include files required for the internal toolchain backend
 
-include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/uClibc/uclibc.mk
+
+# Triggerring the build of the host-gcc-final will automaticaly do the
+# build of binutils, uClibc, kernel headers and all the intermediate
+# gcc steps.
+
+toolchain-buildroot: host-gcc-final
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 3d70fa1..4ad0603 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -4,5 +4,5 @@ if BR2_TOOLCHAIN_BUILDROOT
 source "package/linux-headers/Config.in.host"
 source "toolchain/uClibc/Config.in"
 source "package/binutils/Config.in.host"
-source "toolchain/gcc/Config.in"
+source "package/gcc/Config.in.host"
 endif
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index 4f9c29c..6ef73bb 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -2,6 +2,5 @@
 
 # Explicit ordering:
 include toolchain/helpers.mk
-include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index 40fc633..1198a57 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -1,6 +1,5 @@
 # Required includes for the external toolchain backend
 
 include toolchain/helpers.mk
-include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/toolchain-external/ext-tool.mk
 include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index e06fafc..06f5b23 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -394,14 +394,14 @@ endif
 $(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
 	$(Q)$(call MESSAGE,"Configuring uClibc")
 	cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
-	mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/include
-	mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib
-	mkdir -p $(TOOLCHAIN_DIR)/uClibc_dev/lib
+	mkdir -p $(STAGING_DIR)/usr/include
+	mkdir -p $(STAGING_DIR)/usr/lib
+	mkdir -p $(STAGING_DIR)/lib
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		PREFIX=$(STAGING_DIR) \
 		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" \
@@ -430,26 +430,20 @@ $(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.config
 	$(Q)$(call MESSAGE,"Installing uClibc headers")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		PREFIX=$(STAGING_DIR) \
 		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" headers \
 		lib/crt1.o lib/crti.o lib/crtn.o \
 		install_headers
-	# Install the kernel headers to the first stage gcc include dir
-	# if necessary
-	if [ ! -f $(TOOLCHAIN_DIR)/uClibc_dev/usr/include/linux/version.h ]; then \
-		cp -pLR $(STAGING_DIR)/usr/include/* \
-			$(TOOLCHAIN_DIR)/uClibc_dev/usr/include/; \
-	fi
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/libc.so
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/libm.so
-	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(TOOLCHAIN_DIR)/uClibc_dev/usr/lib/
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
+	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
 	touch $@
 
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate)
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(HOST_GCC_INTERMEDIATE_TARGET_INSTALL_HOST)
 	$(Q)$(call MESSAGE,"Building uClibc")
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
@@ -465,9 +459,9 @@ $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_intermediate)
 uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
 	$(MAKE1) -C $(UCLIBC_DIR) \
 		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		PREFIX=$(STAGING_DIR) \
 		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(TOOLCHAIN_DIR)/uClibc_dev/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
 		CROSS_COMPILE="$(TARGET_CROSS)" \
 		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
 		HOSTCC="$(HOSTCC)" \
@@ -530,7 +524,7 @@ UCLIBC_TARGETS+=uclibc-test
 endif
 endif
 
-uclibc: $(gcc_intermediate) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
+uclibc: host-gcc-intermediate $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
 
 uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
 
@@ -543,7 +537,7 @@ uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
 uclibc-update-config: uclibc-config
 	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
 
-uclibc-configured: gcc_initial linux-headers $(UCLIBC_DIR)/.configured
+uclibc-configured: host-gcc-initial linux-headers $(UCLIBC_DIR)/.configured
 
 uclibc-configured-source: uclibc-source
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (12 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:40   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure Thomas Petazzoni
                   ` (8 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Several sub-directories of the gcc code base are in fact not needed
for the Buildroot build: libjava/, libgo/ and gcc/testsuite/ being the
biggest ones. Avoiding their extraction saves quite a bit of disk
space, and compensates a bit the fact that we now extract three times
the gcc source code.

This requires changing the 100-uclibc-conf.patch to no longer patch
files from the libjava/ directory, since this directory is no longer
extracted.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/4.3.6/100-uclibc-conf.patch          | 20 --------------------
 package/gcc/4.4.7/100-uclibc-conf.patch          | 20 --------------------
 package/gcc/4.5.4/100-uclibc-conf.patch          | 20 --------------------
 package/gcc/4.6.4/100-uclibc-conf.patch          | 20 --------------------
 package/gcc/4.7.3/100-uclibc-conf.patch          | 20 --------------------
 package/gcc/4.8.1/100-uclibc-conf.patch          | 22 ----------------------
 package/gcc/gcc-final/gcc-final.mk               |  2 ++
 package/gcc/gcc-initial/gcc-initial.mk           |  2 ++
 package/gcc/gcc-intermediate/gcc-intermediate.mk |  2 ++
 package/gcc/gcc.mk                               | 17 +++++++++++++++++
 10 files changed, 23 insertions(+), 122 deletions(-)

diff --git a/package/gcc/4.3.6/100-uclibc-conf.patch b/package/gcc/4.3.6/100-uclibc-conf.patch
index cca8c82..6bad179 100644
--- a/package/gcc/4.3.6/100-uclibc-conf.patch
+++ b/package/gcc/4.3.6/100-uclibc-conf.patch
@@ -11,23 +11,3 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1251,7 +1251,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/4.4.7/100-uclibc-conf.patch b/package/gcc/4.4.7/100-uclibc-conf.patch
index cca8c82..6bad179 100644
--- a/package/gcc/4.4.7/100-uclibc-conf.patch
+++ b/package/gcc/4.4.7/100-uclibc-conf.patch
@@ -11,23 +11,3 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1251,7 +1251,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/4.5.4/100-uclibc-conf.patch b/package/gcc/4.5.4/100-uclibc-conf.patch
index cca8c82..6bad179 100644
--- a/package/gcc/4.5.4/100-uclibc-conf.patch
+++ b/package/gcc/4.5.4/100-uclibc-conf.patch
@@ -11,23 +11,3 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1251,7 +1251,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/4.6.4/100-uclibc-conf.patch b/package/gcc/4.6.4/100-uclibc-conf.patch
index cca8c82..6bad179 100644
--- a/package/gcc/4.6.4/100-uclibc-conf.patch
+++ b/package/gcc/4.6.4/100-uclibc-conf.patch
@@ -11,23 +11,3 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1251,7 +1251,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/4.7.3/100-uclibc-conf.patch b/package/gcc/4.7.3/100-uclibc-conf.patch
index cca8c82..6bad179 100644
--- a/package/gcc/4.7.3/100-uclibc-conf.patch
+++ b/package/gcc/4.7.3/100-uclibc-conf.patch
@@ -11,23 +11,3 @@
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
---- gcc/libjava/classpath/ltconfig
-+++ gcc/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1251,7 +1251,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/4.8.1/100-uclibc-conf.patch b/package/gcc/4.8.1/100-uclibc-conf.patch
index d855b30..d56bf0a 100644
--- a/package/gcc/4.8.1/100-uclibc-conf.patch
+++ b/package/gcc/4.8.1/100-uclibc-conf.patch
@@ -13,25 +13,3 @@ Index: gcc-4.8.0/contrib/regression/objs-gcc.sh
  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
    make bootstrap || exit 1
    make install || exit 1
-Index: gcc-4.8.0/libjava/classpath/ltconfig
-===================================================================
---- gcc-4.8.0.orig/libjava/classpath/ltconfig	2011-02-13 12:45:53.000000000 +0100
-+++ gcc-4.8.0/libjava/classpath/ltconfig	2013-03-23 17:39:04.000000000 +0100
-@@ -603,7 +603,7 @@
- 
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
- 
-@@ -1247,7 +1247,7 @@
-   ;;
- 
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
-   version_type=linux
-   need_lib_prefix=no
-   need_version=no
diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk
index a3312bf..1af733f 100644
--- a/package/gcc/gcc-final/gcc-final.mk
+++ b/package/gcc/gcc-final/gcc-final.mk
@@ -12,6 +12,8 @@ HOST_GCC_FINAL_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
 	uclibc
 
+HOST_GCC_FINAL_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
+
 ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
 HOST_GCC_FINAL_POST_EXTRACT_CMDS += HOST_GCC_FINAL_XTENSA_OVERLAY_EXTRACT
 endif
diff --git a/package/gcc/gcc-initial/gcc-initial.mk b/package/gcc/gcc-initial/gcc-initial.mk
index e07783e..05c956a 100644
--- a/package/gcc/gcc-initial/gcc-initial.mk
+++ b/package/gcc/gcc-initial/gcc-initial.mk
@@ -10,6 +10,8 @@ GCC_INITIAL_SOURCE  = $(GCC_SOURCE)
 
 HOST_GCC_INITIAL_DEPENDENCIES = $(HOST_GCC_COMMON_DEPENDENCIES)
 
+HOST_GCC_INITIAL_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
+
 ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
 HOST_GCC_INITIAL_POST_EXTRACT_CMDS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
 endif
diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
index 0c062a7..6b6b57e 100644
--- a/package/gcc/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
@@ -12,6 +12,8 @@ HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
 	uclibc-configured
 
+HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
+
 ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
 HOST_GCC_INTERMEDIATE_POST_EXTRACT_CMDS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
 endif
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index b5cd091..7d28819 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -40,6 +40,23 @@ define HOST_GCC_APPLY_PATCHES
 endef
 
 #
+# Custom extract command
+#
+
+define HOST_GCC_EXTRACT_CMDS
+	$(BZCAT) $(DL_DIR)/$(GCC_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) \
+		--exclude='libjava/*' \
+		--exclude='libgo/*' \
+		--exclude='gcc/testsuite/*' \
+		--exclude='libstdc++-v3/testsuite/*' \
+		$(TAR_OPTIONS) -
+	mkdir -p $(@D)/libstdc++-v3/testsuite/
+	echo "all:" > $(@D)/libstdc++-v3/testsuite/Makefile.in
+	echo "install:" >> $(@D)/libstdc++-v3/testsuite/Makefile.in
+endef
+
+#
 # Create 'build' directory and configure symlink
 #
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (13 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-03 21:48   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR Thomas Petazzoni
                   ` (7 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/gcc-intermediate/gcc-intermediate.mk   |   2 +-
 ...__libc_epoll_pwait-compile-failure-on-x86.patch |   0
 ...x-e500-__fe_nomask_env-use-of-__set_errno.patch |   0
 .../0.9.32.1/uclibc-linuxthreads-errno-fix.patch   |   0
 .../uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch   |   0
 .../uclibc/0.9.32.1/uclibc-unshare.patch           |   0
 .../uclibc-OpenWRT-140-avr32_atomic_fix.patch      |   0
 .../uclibc-bits-time.h-sync-with-glibc-2.16.patch  |   0
 .../0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch  |   0
 .../uclibc/0.9.33.2/uclibc-dup3.patch              |   0
 package/uclibc/Config.in                           | 166 ++++++
 .../uClibc => package/uclibc}/uClibc-0.9.32.config |   0
 .../uClibc => package/uclibc}/uClibc-0.9.33.config |   0
 .../uclibc}/uClibc-snapshot.config                 |   0
 package/uclibc/uclibc.mk                           | 484 ++++++++++++++++
 toolchain/toolchain-buildroot.mk                   |   4 -
 toolchain/toolchain-buildroot/Config.in            |   2 +-
 toolchain/toolchain-crosstool-ng.mk                |   1 -
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk   |   2 +-
 toolchain/toolchain-external.mk                    |   1 -
 toolchain/uClibc/Config.in                         |  97 ----
 toolchain/uClibc/uclibc.mk                         | 610 ---------------------
 22 files changed, 653 insertions(+), 716 deletions(-)
 rename toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch => package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch => package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch => package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch => package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.32.1-unshare.patch => package/uclibc/0.9.32.1/uclibc-unshare.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-OpenWRT-140-avr32_atomic_fix.patch => package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch => package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch => package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch (100%)
 rename toolchain/uClibc/uClibc-0.9.33.2-dup3.patch => package/uclibc/0.9.33.2/uclibc-dup3.patch (100%)
 create mode 100644 package/uclibc/Config.in
 rename {toolchain/uClibc => package/uclibc}/uClibc-0.9.32.config (100%)
 rename {toolchain/uClibc => package/uclibc}/uClibc-0.9.33.config (100%)
 rename {toolchain/uClibc => package/uclibc}/uClibc-snapshot.config (100%)
 create mode 100644 package/uclibc/uclibc.mk
 delete mode 100644 toolchain/uClibc/Config.in
 delete mode 100644 toolchain/uClibc/uclibc.mk

diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
index 6b6b57e..3a71671 100644
--- a/package/gcc/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
@@ -10,7 +10,7 @@ GCC_INTERMEDIATE_SOURCE  = $(GCC_SOURCE)
 
 HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
-	uclibc-configured
+	uclibc-configure
 
 HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
 
diff --git a/toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch b/package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.1-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
rename to package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch b/package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.1-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
rename to package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch b/package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.1-linuxthreads-errno-fix.patch
rename to package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch b/package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.1-sparc-errno-fix.patch
rename to package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch
diff --git a/toolchain/uClibc/uClibc-0.9.32.1-unshare.patch b/package/uclibc/0.9.32.1/uclibc-unshare.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.1-unshare.patch
rename to package/uclibc/0.9.32.1/uclibc-unshare.patch
diff --git a/toolchain/uClibc/uClibc-0.9.33.2-OpenWRT-140-avr32_atomic_fix.patch b/package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.33.2-OpenWRT-140-avr32_atomic_fix.patch
rename to package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch
diff --git a/toolchain/uClibc/uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch b/package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.33.2-bits-time.h-sync-with-glibc-2.16.patch
rename to package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch
diff --git a/toolchain/uClibc/uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch b/package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.33.2-define-MSG_CMSG_CLOEXEC.patch
rename to package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch
diff --git a/toolchain/uClibc/uClibc-0.9.33.2-dup3.patch b/package/uclibc/0.9.33.2/uclibc-dup3.patch
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.33.2-dup3.patch
rename to package/uclibc/0.9.33.2/uclibc-dup3.patch
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
new file mode 100644
index 0000000..22c70a2
--- /dev/null
+++ b/package/uclibc/Config.in
@@ -0,0 +1,166 @@
+comment "uClibc Options"
+
+choice
+	prompt "uClibc C library Version"
+	default BR2_UCLIBC_VERSION_0_9_33
+	help
+	  Select the version of uClibc you wish to use.
+
+	config BR2_UCLIBC_VERSION_0_9_32
+		bool "uClibc 0.9.32.x"
+		depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa)
+
+	config BR2_UCLIBC_VERSION_0_9_33
+		bool "uClibc 0.9.33.x"
+		depends on !(BR2_arc || BR2_xtensa)
+
+	config BR2_UCLIBC_VERSION_0_9_33_ARC
+		bool "uClibc 0.9.33.x-arc"
+		depends on BR2_arc
+
+	config BR2_UCLIBC_VERSION_SNAPSHOT
+		bool "daily snapshot"
+
+endchoice
+
+config BR2_USE_UCLIBC_SNAPSHOT
+	string "Date (yyyymmdd) of snapshot or 'snapshot' for latest"
+	default "snapshot"
+	depends on BR2_UCLIBC_VERSION_SNAPSHOT
+	help
+	    Use latest snapshot or one from a specific date?
+
+config BR2_UCLIBC_VERSION_STRING
+	string
+	default 0.9.32.1	if BR2_UCLIBC_VERSION_0_9_32
+	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
+	default 0.9.33-arc	if BR2_UCLIBC_VERSION_0_9_33_ARC
+	default $BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
+
+config BR2_UCLIBC_CONFIG
+	string "uClibc configuration file to use?"
+	default "package/uclibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
+	default "package/uclibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
+	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_0_9_33_ARC
+	default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
+	help
+	  Some people may wish to use their own modified uClibc configuration
+	  file and will specify their config file location with this option.
+	  See also docs/README in this package.
+	  If unsure, use the default.
+
+config BR2_UCLIBC_INSTALL_TEST_SUITE
+	bool "Compile and install uClibc tests"
+	select BR2_PACKAGE_MAKE
+	help
+	  Enabling this option will compile and install the uClibc test suite.
+	  This is useful if you want to check if the uClibc library is working
+	  for your architecture and/or help developing uClibc.
+
+	  The test suite will be installed into /root/uClibc directory. To run
+	  the test suite enter the /root/uClibc/test directory and type
+	  "make UCLIBC_ONLY=1 CC=/bin/true check".
+
+	  See the /root/uClibc/test/README for additional information.
+
+	  This is not needed at all for normal builds, so you can safely say no
+	  if you do not plan to dig into your C library.
+
+# Mapping from the Buildroot architecture configuration options to the
+# uClibc architecture names.
+config BR2_UCLIBC_TARGET_ARCH
+	string
+	default arc	   if BR2_arcle || BR2_arceb
+	default arm	   if BR2_arm	|| BR2_armeb
+	default avr32	   if BR2_avr32
+	default bfin	   if BR2_bfin
+	default m68k	   if BR2_m68k
+	default mips	   if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+	default powerpc	   if BR2_powerpc
+	default sh	   if BR2_sh
+	default sparc	   if BR2_sparc
+	default xtensa	   if BR2_xtensa
+	default i386	   if BR2_i386
+	default x86_64	   if BR2_x86_64
+
+# This is only useful for uClibc <= 0.9.32. It can be removed once
+# Buildroot will support only uClibc >= 0.9.33 on ARM.
+config BR2_UCLIBC_ARM_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default GENERIC_ARM	if BR2_fa526
+	default ARM7TDMI	if BR2_arm7tdmi
+	default ARM720T		if BR2_arm720t
+	default ARM920T		if BR2_arm920t
+	default ARM922T		if BR2_arm922t
+	default ARM926T		if BR2_arm926t
+	default ARM10T		if BR2_arm10t
+	default ARM1136JF_S	if BR2_arm1136jf_s
+	default ARM1176JZ_S	if BR2_arm1176jz_s
+	default ARM1176JZF_S	if BR2_arm1176jzf_s
+	default ARM_SA1100	if BR2_strongarm
+	default ARM_XSCALE	if BR2_xscale
+	default ARM_IWMMXT	if BR2_iwmmxt
+	default ARM_CORTEXA8	if BR2_cortex_a8
+	default ARM_CORTEXA9	if BR2_cortex_a9
+
+config BR2_UCLIBC_ARM_ABI
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default OABI if BR2_ARM_OABI
+	default EABI if BR2_ARM_EABI
+
+config BR2_UCLIBC_ARM_BX
+	bool
+	depends on BR2_UCLIBC_TARGET_ARCH = "arm"
+	default y if !BR2_fa265 && !BR2_strongarm
+
+config BR2_UCLIBC_MIPS_ABI
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "mips"
+	default O32 if BR2_MIPS_OABI32
+	default N32 if BR2_MIPS_NABI32
+	default N64 if BR2_MIPS_NABI64
+
+config BR2_UCLIBC_MIPS_ISA
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "mips"
+	default 1 if BR2_mips_1
+	default 2 if BR2_mips_2
+	default 3 if BR2_mips_3
+	default 4 if BR2_mips_4
+	default mips32 if BR2_mips_32
+	default mips32r2 if BR2_mips_32r2
+	default mips64 if BR2_mips_64
+
+config BR2_UCLIBC_SH_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "sh"
+	default SHA2 if BR2_sh2
+	default SH3  if BR2_sh3 || BR2_sh3eb
+	default SH4  if BR2_sh4 || BR2_sh4eb
+
+config BR2_UCLIBC_SPARC_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "sparc"
+	default V7	if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
+	default V8	if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
+
+config BR2_UCLIBC_POWERPC_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "powerpc"
+	default CLASSIC if !BR2_powerpc_8540 && !BR2_powerpc_8548 && !BR2_powerpc_e500mc
+	default E500    if BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
+
+config BR2_UCLIBC_X86_TYPE
+	string
+	depends on BR2_UCLIBC_TARGET_ARCH = "i386"
+	default 386     if BR2_x86_i386
+	default 486	if BR2_x86_i486
+	default 586	if BR2_x86_i586
+	default 586MMX	if BR2_x86_pentium_mmx
+	default 686	if BR2_x86_i686 || BR2_x86_pentiumpro
+	default PENTIUMII  if BR2_x86_pentium2
+	default PENTIUMIII if BR2_x86_pentium3
+	default PENTIUM4   if BR2_x86_pentium4 || BR2_x86_pentium_m || \
+			      BR2_x86_nocona || BR2_x86_core2
diff --git a/toolchain/uClibc/uClibc-0.9.32.config b/package/uclibc/uClibc-0.9.32.config
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.32.config
rename to package/uclibc/uClibc-0.9.32.config
diff --git a/toolchain/uClibc/uClibc-0.9.33.config b/package/uclibc/uClibc-0.9.33.config
similarity index 100%
rename from toolchain/uClibc/uClibc-0.9.33.config
rename to package/uclibc/uClibc-0.9.33.config
diff --git a/toolchain/uClibc/uClibc-snapshot.config b/package/uclibc/uClibc-snapshot.config
similarity index 100%
rename from toolchain/uClibc/uClibc-snapshot.config
rename to package/uclibc/uClibc-snapshot.config
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
new file mode 100644
index 0000000..1c5340c
--- /dev/null
+++ b/package/uclibc/uclibc.mk
@@ -0,0 +1,484 @@
+################################################################################
+#
+# uclibc
+#
+################################################################################
+
+UCLIBC_VERSION = $(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
+UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.xz
+
+ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
+UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots
+else ifeq ($(findstring arc,$(UCLIBC_VERSION)),arc)
+UCLIBC_SITE = $(BR2_ARC_SITE)
+UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.bz2
+else
+UCLIBC_SITE = http://www.uclibc.org/downloads
+endif
+
+UCLIBC_INSTALL_STAGING = YES
+
+# Before uClibc is configured, we must have the first stage
+# cross-compiler and the kernel headers
+UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers
+
+# Before uClibc is built, we must have the second stage cross-compiler
+uclibc-build: host-gcc-intermediate
+
+# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
+# setting.
+ifndef UCLIBC_CONFIG_FILE
+UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
+endif
+
+UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH))
+
+ifeq ($(GENERATE_LOCALE),)
+# We need at least one locale
+UCLIBC_LOCALES = en_US
+else
+# Strip out the encoding part of locale names, if any
+UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\
+		   $(firstword $(subst .,$(space),$(locale))))
+endif
+
+#
+# Utility functions to manipulation the uClibc configuration file
+#
+
+define UCLIBC_OPT_SET
+	$(SED) '/$(1)/d' $(3)/.config
+	echo '$(1)=$(2)' >> $(3)/.config
+endef
+
+define UCLIBC_OPT_UNSET
+	$(SED) '/$(1)/d' $(2)/.config
+	echo '# $(1) is not set' >> $(2)/.config
+endef
+
+#
+# ARM definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),arm)
+UCLIBC_ARM_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARM_TYPE))
+
+define UCLIBC_ARM_TYPE_CONFIG
+	$(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
+		$(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_ARM_TYPE),y,$(@D))
+endef
+
+UCLIBC_ARM_ABI = CONFIG_ARM_$(call qstrip,$(BR2_UCLIBC_ARM_ABI))
+
+define UCLIBC_ARM_ABI_CONFIG
+	$(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_ARM_ABI),y,$(@D))
+endef
+
+ifeq ($(BR2_UCLIBC_ARM_BX),y)
+define UCLIBC_ARM_BX_CONFIG
+	$(call UCLIBC_OPT_SET,USE_BX,y,$(@D))
+endef
+else
+define UCLIBC_ARM_BX_CONFIG
+	$(call UCLIBC_OPT_UNSET,USE_BX,y,$(@D))
+endef
+endif
+
+endif # arm
+
+#
+# MIPS definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),mips)
+UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI
+define UCLIBC_MIPS_ABI_CONFIG
+	$(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ABI),y,$(@D))
+endef
+
+UCLIBC_MIPS_ISA = CONFIG_MIPS_ISA_$(call qstrip,$(BR2_UCLIBC_MIPS_ISA))
+define UCLIBC_MIPS_ISA_CONFIG
+	$(SED) '/CONFIG_MIPS_ISA_.*/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ISA),y,$(@D))
+endef
+endif # mips
+
+#
+# SH definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),sh)
+UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE))
+define UCLIBC_SH_TYPE_CONFIG
+	$(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_SH_TYPE),y,$(@?))
+endef
+endif # sh
+
+#
+# SPARC definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),sparc)
+UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
+define UCLIBC_SPARC_TYPE_CONFIG
+	$(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
+		 $(@?)/.config
+	$(call UCLIBC_OPT_SET,$(UCLIBC_SPARC_TYPE),y,$(@D))
+endef
+endif # sparc
+
+#
+# PowerPC definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
+UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE))
+define UCLIBC_POWERPC_TYPE_CONFIG
+	$(call UCLIBC_OPT_UNSET,CONFIG_GENERIC,$(@D))
+	$(call UCLIBC_OPT_UNSET,CONFIG_E500,$(@D))
+	$(call UCLIBC_OPT_SET,$(UCLIBC_POWERPC_TYPE),y,$(@?))
+endef
+endif # powerpc
+
+#
+# AVR32 definitions
+#
+
+ifeq ($(UCLIBC_TARGET_ARCH),avr32)
+define UCLIBC_AVR32_CONFIG
+	$(call UCLIBC_OPT_SET,LINKRELAX,y,$(@D))
+endef
+endif # avr32
+
+#
+# x86 definitions
+#
+ifeq ($(UCLIBC_TARGET_ARCH),i386)
+UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE))
+define UCLIBC_X86_TYPE_CONFIG
+	$(call UCLIBC_OPT_SET,$(UCLIBC_X86_TYPE),y,$(@D))
+endef
+endif
+
+#
+# ARC definitions
+#
+ifeq ($(UCLIBC_TARGET_ARCH),arc)
+REALLY_NOSTDLIB = -really-nostdlib
+endif
+
+#
+# Endianess
+#
+
+ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG)
+define UCLIBC_ENDIAN_CONFIG
+	$(call UCLIBC_OPT_SET,ARCH_BIG_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_SET,ARCH_WANTS_BIG_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_LITTLE_ENDIAN,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_WANTS_LITTLE_ENDIAN,$(@D))
+endef
+else
+define UCLIBC_ENDIAN_CONFIG
+	$(call UCLIBC_OPT_SET,ARCH_LITTLE_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_SET,ARCH_WANTS_LITTLE_ENDIAN,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_BIG_ENDIAN,$(@D))
+	$(call UCLIBC_OPT_UNSET,ARCH_WANTS_BIG_ENDIAN,$(@D))
+endef
+endif
+
+#
+# Largefile
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LARGEFILE),y)
+define UCLIBC_LARGEFILE_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_LFS,y,$(@D))
+endef
+else
+define UCLIBC_LARGEFILE_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LFS,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FOPEN_LARGEFILE_MODE,$(@D))
+endef
+endif
+
+#
+# IPv6
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_IPV6),y)
+UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_IPV6,y,$(@D))
+else
+UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_IPV6,$(@D))
+endif
+
+#
+# RPC
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y)
+define UCLIBC_RPC_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_RPC,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FULL_RPC,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_REENTRANT_RPC,y,$(@D))
+endef
+else
+define UCLIBC_RPC_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_RPC,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FULL_RPC,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_REENTRANT_RPC,$(@D))
+endef
+endif
+
+#
+# soft-float
+#
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+define UCLIBC_FLOAT_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FPU,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D))
+	$(call UCLIBC_OPT_SET,DO_C99_MATH,y,$(@D))
+endef
+else
+define UCLIBC_FLOAT_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FPU,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D))
+endef
+endif
+
+#
+# SSP
+#
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
+UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_SSP,y,$(@D))
+else
+UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_SSP,$(@D))
+endif
+
+#
+# Threads
+#
+ifeq ($(BR2_PTHREADS_NONE),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_SET,LINUXTHREADS_NEW,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS_OLD),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D))
+	$(call UCLIBC_OPT_SET,LINUXTHREADS_OLD,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D))
+endef
+else ifeq ($(BR2_PTHREADS_NATIVE),y)
+define UCLIBC_THREAD_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D))
+	$(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS_NATIVE,y,$(@D))
+endef
+endif
+
+#
+# Thread debug
+#
+
+ifeq ($(BR2_PTHREAD_DEBUG),y)
+UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,PTHREADS_DEBUG_SUPPORT,y,$(@D))
+else
+UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_UNSET,PTHREADS_DEBUG_SUPPORT,$(@D))
+endif
+
+#
+# Locale
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
+define UCLIBC_LOCALE_CONFIG
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_LOCALE,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_BUILD_ALL_LOCALE,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALE,y,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D))
+	$(call UCLIBC_OPT_UNSET,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D))
+	$(call UCLIBC_OPT_SET,UCLIBC_HAS_XLOCALE,y,$(@D))
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_GLIBC_DIGIT_GROUPING,$(@D))
+endef
+else
+define UCLIBC_LOCALE_CONFIG
+	$(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LOCALE,$(@D))
+endef
+endif
+
+#
+# wchar
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_WCHAR,y,$(@D))
+else
+UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_WCHAR,$(@D))
+endif
+
+#
+# debug
+#
+
+ifeq ($(BR2_ENABLE_DEBUG),y)
+UCLIBC_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,DODEBUG,y,$(@D))
+endif
+
+#
+# strip
+#
+
+ifeq ($(BR2_STRIP_none),y)
+UCLIBC_STRIP_CONFIG = $(call UCLIBC_OPT_SET,DOSTRIP,y,$(@D))
+endif
+
+#
+# Commands
+#
+
+UCLIBC_MAKE_FLAGS = \
+	ARCH="$(UCLIBC_TARGET_ARCH)" \
+	CROSS_COMPILE="$(TARGET_CROSS)" \
+	UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
+	HOSTCC="$(HOSTCC)"
+
+define UCLIBC_CONFIGURE_CMDS
+	cp -f $(UCLIBC_CONFIG_FILE) $(@D)/.config
+	$(call UCLIBC_OPT_SET,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D))
+	$(call UCLIBC_OPT_SET,TARGET_$(UCLIBC_TARGET_ARCH),y,$(@D))
+	$(call UCLIBC_OPT_SET,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D))
+	$(call UCLIBC_OPT_SET,KERNEL_HEADERS,"$(STAGING_DIR)/usr/include",$(@D))
+	$(call UCLIBC_OPT_SET,RUNTIME_PREFIX,"/",$(@D))
+	$(call UCLIBC_OPT_SET,DEVEL_PREFIX,"/usr",$(@D))
+	$(call UCLIBC_OPT_SET,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D))
+	$(UCLIBC_ARM_TYPE_CONFIG)
+	$(UCLIBC_ARM_ABI_CONFIG)
+	$(UCLIBC_ARM_BX_CONFIG)
+	$(UCLIBC_MIPS_ABI_CONFIG)
+	$(UCLIBC_MIPS_ISA_CONFIG)
+	$(UCLIBC_SH_TYPE_CONFIG)
+	$(UCLIBC_SPARC_TYPE_CONFIG)
+	$(UCLIBC_POWERPC_TYPE_CONFIG)
+	$(UCLIBC_AVR32_CONFIG)
+	$(UCLIBC_X86_TYPE_CONFIG)
+	$(UCLIBC_ENDIAN_CONFIG)
+	$(UCLIBC_LARGEFILE_CONFIG)
+	$(UCLIBC_IPV6_CONFIG)
+	$(UCLIBC_RPC_CONFIG)
+	$(UCLIBC_FLOAT_CONFIG)
+	$(UCLIBC_SSP_CONFIG)
+	$(UCLIBC_THREAD_CONFIG)
+	$(UCLIBC_THREAD_DEBUG_CONFIG)
+	$(UCLIBC_LOCALE_CONFIG)
+	$(UCLIBC_WCHAR_CONFIG)
+	$(UCLIBC_STRIP_CONFIG)
+	$(UCLIBC_DEBUG_CONFIG)
+	yes "" | $(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
+		oldconfig
+	$(MAKE1) -C $(UCLIBC_DIR) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR) \
+		headers lib/crt1.o lib/crti.o lib/crtn.o \
+		install_headers
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+		-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+		-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
+	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
+endef
+
+ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
+define UCLIBC_BUILD_TEST_SUITE
+	$(MAKE1) -C $(@D)/test \
+		$(UCLIBC_MAKE_FLAGS) \
+		ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
+		UCLIBC_ONLY=1 \
+		TEST_INSTALLED_UCLIBC=1 \
+		compile
+endef
+endif
+
+define UCLIBC_BUILD_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX= \
+		DEVEL_PREFIX=/ \
+		RUNTIME_PREFIX=/ \
+		all
+	$(MAKE1) -C $(@D)/utils \
+		PREFIX=$(HOST_DIR) \
+		HOSTCC="$(HOSTCC)" hostutils
+	$(UCLIBC_BUILD_TEST_SUITE)
+endef
+
+ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
+define UCLIBC_INSTALL_TEST_SUITE
+	mkdir -p $(TARGET_DIR)/root/uClibc
+	cp -rdpf $(@D)/test $(TARGET_DIR)/root/uClibc
+	$(INSTALL) -D -m 0644 $(@D)/Rules.mak $(TARGET_DIR)/root/uClibc/Rules.mak
+	$(INSTALL) -D -m 0644 $(@D)/.config $(TARGET_DIR)/root/uClibc/.config
+endef
+endif
+
+define UCLIBC_INSTALL_TARGET_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(TARGET_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=/ \
+		install_runtime
+	$(MAKE1) -C $(@D) \
+		CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \
+		ARCH="$(UCLIBC_TARGET_ARCH)" \
+		PREFIX=$(TARGET_DIR) \
+		utils install_utils
+	$(UCLIBC_INSTALL_TEST_SUITE)
+endef
+
+define UCLIBC_INSTALL_STAGING_CMDS
+	$(MAKE1) -C $(@D) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=/ \
+		install_runtime install_dev
+	install -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd
+	ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd
+	install -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig
+	ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig
+endef
+
+uclibc-menuconfig: dirs uclibc-configure
+	$(MAKE1) -C $(UCLIBC_DIR) \
+		$(UCLIBC_MAKE_FLAGS) \
+		PREFIX=$(STAGING_DIR) \
+		DEVEL_PREFIX=/usr/ \
+		RUNTIME_PREFIX=$(STAGING_DIR)/ \
+		menuconfig
+	rm -f $(UCLIBC_DIR)/.stamp_{built,target_installed,staging_installed}
+
+$(eval $(generic-package))
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index b2eb9de..e7241bf 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,7 +1,3 @@
-# Include files required for the internal toolchain backend
-
-include toolchain/uClibc/uclibc.mk
-
 # Triggerring the build of the host-gcc-final will automaticaly do the
 # build of binutils, uClibc, kernel headers and all the intermediate
 # gcc steps.
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 4ad0603..416695b 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -2,7 +2,7 @@
 
 if BR2_TOOLCHAIN_BUILDROOT
 source "package/linux-headers/Config.in.host"
-source "toolchain/uClibc/Config.in"
+source "package/uclibc/Config.in"
 source "package/binutils/Config.in.host"
 source "package/gcc/Config.in.host"
 endif
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
index 6ef73bb..9e666a0 100644
--- a/toolchain/toolchain-crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng.mk
@@ -3,4 +3,3 @@
 # Explicit ordering:
 include toolchain/helpers.mk
 include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
-include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index 59f18c7..79ad7e1 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -10,7 +10,7 @@
 
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
 
-CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/toolchain/uClibc/uClibc-0.9.33.config
+CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/package/uclibc/uClibc-0.9.33.config
 CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
 
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all
diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
index 1198a57..2f43db7 100644
--- a/toolchain/toolchain-external.mk
+++ b/toolchain/toolchain-external.mk
@@ -2,4 +2,3 @@
 
 include toolchain/helpers.mk
 include toolchain/toolchain-external/ext-tool.mk
-include toolchain/uClibc/uclibc.mk
diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
deleted file mode 100644
index ab1f600..0000000
--- a/toolchain/uClibc/Config.in
+++ /dev/null
@@ -1,97 +0,0 @@
-# Choose uClibc options
-#
-
-comment "uClibc Options"
-
-choice
-	prompt "uClibc C library Version"
-	default BR2_UCLIBC_VERSION_0_9_33
-	help
-	  Select the version of uClibc you wish to use.
-
-	config BR2_UCLIBC_VERSION_0_9_32
-		bool "uClibc 0.9.32.x"
-		depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa)
-
-	config BR2_UCLIBC_VERSION_0_9_33
-		bool "uClibc 0.9.33.x"
-		depends on !(BR2_arc || BR2_xtensa)
-
-	config BR2_UCLIBC_VERSION_0_9_33_ARC
-		bool "uClibc 0.9.33.x-arc"
-		depends on BR2_arc
-
-	config BR2_UCLIBC_VERSION_SNAPSHOT
-		bool "daily snapshot"
-
-endchoice
-
-config BR2_USE_UCLIBC_SNAPSHOT
-	string "Date (yyyymmdd) of snapshot or 'snapshot' for latest"
-	default "snapshot"
-	depends on BR2_UCLIBC_VERSION_SNAPSHOT
-	help
-	    Use latest snapshot or one from a specific date?
-
-config BR2_UCLIBC_VERSION_STRING
-	string
-	default 0.9.32.1	if BR2_UCLIBC_VERSION_0_9_32
-	default 0.9.33.2	if BR2_UCLIBC_VERSION_0_9_33
-	default 0.9.33-arc	if BR2_UCLIBC_VERSION_0_9_33_ARC
-	default $BR2_USE_UCLIBC_SNAPSHOT	if BR2_UCLIBC_VERSION_SNAPSHOT
-
-config BR2_UCLIBC_CONFIG
-	string "uClibc configuration file to use?"
-	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32
-	default "toolchain/uClibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_0_9_33_ARC
-	default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT
-	help
-	  Some people may wish to use their own modified uClibc configuration
-	  file and will specify their config file location with this option.
-	  See also docs/README in this package.
-	  If unsure, use the default.
-
-config BR2_UCLIBC_INSTALL_TEST_SUITE
-	bool "Compile and install uClibc tests"
-	select BR2_PACKAGE_MAKE
-	help
-	  Enabling this option will compile and install the uClibc test suite.
-	  This is useful if you want to check if the uClibc library is working
-	  for your architecture and/or help developing uClibc.
-
-	  The test suite will be installed into /root/uClibc directory. To run
-	  the test suite enter the /root/uClibc/test directory and type
-	  "make UCLIBC_ONLY=1 CC=/bin/true check".
-
-	  See the /root/uClibc/test/README for additional information.
-
-	  This is not needed at all for normal builds, so you can safely say no
-	  if you do not plan to dig into your C library.
-
-# This is only useful for uClibc <= 0.9.32. It can be removed once
-# Buildroot will support only uClibc >= 0.9.33 on ARM.
-config BR2_UCLIBC_ARM_TYPE
-	string
-	depends on BR2_arm || BR2_armeb
-	default GENERIC_ARM	if BR2_fa526
-	default ARM7TDMI	if BR2_arm7tdmi
-	default ARM720T		if BR2_arm720t
-	default ARM920T		if BR2_arm920t
-	default ARM922T		if BR2_arm922t
-	default ARM926T		if BR2_arm926t
-	default ARM10T		if BR2_arm10t
-	default ARM1136JF_S	if BR2_arm1136jf_s
-	default ARM1176JZ_S	if BR2_arm1176jz_s
-	default ARM1176JZF_S	if BR2_arm1176jzf_s
-	default ARM_SA1100	if BR2_strongarm
-	default ARM_XSCALE	if BR2_xscale
-	default ARM_IWMMXT	if BR2_iwmmxt
-	default ARM_CORTEXA8	if BR2_cortex_a8
-	default ARM_CORTEXA9	if BR2_cortex_a9
-
-config BR2_UCLIBC_SPARC_TYPE
-	string
-	depends on BR2_sparc
-	default V7	if BR2_sparc_v7 || BR2_sparc_cypress || BR2_sparc_sparclite || BR2_sparc_f930 || BR2_sparc_f934 || BR2_sparc_sparclite86x || BR2_sparc_sparclet || BR2_sparc_tsc701 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
-	default V8	if BR2_sparc_v8 || BR2_sparc_supersparc || BR2_sparc_hypersparc || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
deleted file mode 100644
index 06f5b23..0000000
--- a/toolchain/uClibc/uclibc.mk
+++ /dev/null
@@ -1,610 +0,0 @@
-################################################################################
-#
-# uClibc (the C library)
-#
-################################################################################
-
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-
-# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
-# setting.
-ifndef UCLIBC_CONFIG_FILE
-UCLIBC_CONFIG_FILE=$(call qstrip,$(BR2_UCLIBC_CONFIG))
-endif
-
-UCLIBC_VERSION:=$(call qstrip,$(BR2_UCLIBC_VERSION_STRING))
-
-ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc
-else ifeq ($(findstring arc,$(UCLIBC_VERSION)),arc)
-UCLIBC_SITE:=$(BR2_ARC_SITE)
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
-else
-UCLIBC_SITE:=http://www.uclibc.org/downloads
-UCLIBC_DIR:=$(TOOLCHAIN_DIR)/uClibc-$(UCLIBC_VERSION)
-endif
-
-UCLIBC_PATCH_DIR:=toolchain/uClibc/
-UCLIBC_SOURCE:=uClibc-$(UCLIBC_VERSION).tar.bz2
-
-UCLIBC_CAT:=$(BZCAT)
-
-UCLIBC_TARGET_ARCH:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
-		-e 's/-.*//' \
-		-e 's/i.86/i386/' \
-		-e 's/sparc.*/sparc/' \
-		-e 's/arc.*/arc/g' \
-		-e 's/arm.*/arm/g' \
-		-e 's/m68k.*/m68k/' \
-		-e 's/ppc/powerpc/g' \
-		-e 's/v850.*/v850/g' \
-		-e 's/sh[234].*/sh/' \
-		-e 's/mips.*/mips/' \
-		-e 's/cris.*/cris/' \
-		-e 's/xtensa.*/xtensa/' \
-")
-
-UCLIBC_TARGET_ENDIAN:=$(call qstrip,$(BR2_ENDIAN))
-
-ifeq ($(UCLIBC_TARGET_ENDIAN),LITTLE)
-UCLIBC_NOT_TARGET_ENDIAN:=BIG
-else
-UCLIBC_NOT_TARGET_ENDIAN:=LITTLE
-endif
-
-UCLIBC_ARM_TYPE:=CONFIG_$(call qstrip,$(BR2_UCLIBC_ARM_TYPE))
-UCLIBC_SPARC_TYPE:=CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
-
-ifeq ($(GENERATE_LOCALE),)
-# We need at least one locale
-UCLIBC_LOCALES = en_US
-else
-# Strip out the encoding part of locale names, if any
-UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\
-		   $(firstword $(subst .,$(space),$(locale))))
-endif
-
-$(DL_DIR)/$(UCLIBC_SOURCE):
-	$(Q)$(call MESSAGE,"Downloading uClibc")
-	$(call DOWNLOAD,$(UCLIBC_SITE:/=)/$(UCLIBC_SOURCE))
-
-uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
-$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
-	$(Q)$(call MESSAGE,"Extracting uClibc")
-	mkdir -p $(TOOLCHAIN_DIR)
-	rm -rf $(UCLIBC_DIR)
-	$(UCLIBC_CAT) $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOLCHAIN_DIR) $(TAR_OPTIONS) -
-	touch $@
-
-uclibc-patched: $(UCLIBC_DIR)/.patched
-$(UCLIBC_DIR)/.patched: $(UCLIBC_DIR)/.unpacked
-	$(Q)$(call MESSAGE,"Patching uClibc")
-ifneq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
-	support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
-		uClibc-$(UCLIBC_VERSION)-\*.patch \
-		uClibc-$(UCLIBC_VERSION)-\*.patch.$(ARCH)
-else
-	support/scripts/apply-patches.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) \
-		uClibc.\*.patch uClibc.\*.patch.$(ARCH)
-endif
-	touch $@
-
-
-# Some targets may wish to provide their own UCLIBC_CONFIG_FILE...
-$(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.patched $(UCLIBC_CONFIG_FILE)
-	$(Q)$(call MESSAGE,"Pre-configuring uClibc")
-	cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
-		-e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
-		-e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \
-		-e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(STAGING_DIR)/usr/include\",g' \
-		-e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \
-		-e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \
-		-e 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \
-		$(UCLIBC_DIR)/.oldconfig
-ifeq ($(UCLIBC_TARGET_ARCH),arm)
-	(/bin/echo "# CONFIG_GENERIC_ARM is not set"; \
-	 /bin/echo "# CONFIG_ARM610 is not set"; \
-	 /bin/echo "# CONFIG_ARM710 is not set"; \
-	 /bin/echo "# CONFIG_ARM7TDMI is not set"; \
-	 /bin/echo "# CONFIG_ARM720T is not set"; \
-	 /bin/echo "# CONFIG_ARM920T is not set"; \
-	 /bin/echo "# CONFIG_ARM922T is not set"; \
-	 /bin/echo "# CONFIG_ARM926T is not set"; \
-	 /bin/echo "# CONFIG_ARM10T is not set"; \
-	 /bin/echo "# CONFIG_ARM1136JF_S is not set"; \
-	 /bin/echo "# CONFIG_ARM1176JZ_S is not set"; \
-	 /bin/echo "# CONFIG_ARM1176JZF_S is not set"; \
-	 /bin/echo "# CONFIG_ARM_SA110 is not set"; \
-	 /bin/echo "# CONFIG_ARM_SA1100 is not set"; \
-	 /bin/echo "# CONFIG_ARM_XSCALE is not set"; \
-	 /bin/echo "# CONFIG_ARM_IWMMXT is not set"; \
-	) >> $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
-		 $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^.*$(UCLIBC_ARM_TYPE).*/$(UCLIBC_ARM_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/CONFIG_ARM_.ABI/d' $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_ARM_EABI),y)
-	/bin/echo "# CONFIG_ARM_OABI is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "CONFIG_ARM_EABI=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_ARM_OABI),y)
-	/bin/echo "CONFIG_ARM_OABI=y" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_ARM_EABI is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_fa526)$(BR2_strongarm),y)
-	$(SED) 's,USE_BX=y,# USE_BX is not set,' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),mips)
-	$(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/CONFIG_MIPS_ISA_.*/d' $(UCLIBC_DIR)/.oldconfig
-	(/bin/echo "# CONFIG_MIPS_O32_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_N32_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_N64_ABI is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_1 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_2 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_3 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_4 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS32 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS32R2 is not set"; \
-	 /bin/echo "# CONFIG_MIPS_ISA_MIPS64 is not set"; \
-	) >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_MIPS_OABI32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_MIPS_NABI32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_MIPS_NABI64),y)
-	$(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_1),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_1\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_2),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_2\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_3),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_3\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_4),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_4\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_32),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\)[^R].*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_32r2),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32R2\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_mips_64),y)
-	$(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS64\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),sh)
-	/bin/echo "# CONFIG_SH2A is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH2 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH3 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_SH4 is not set" >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_sh2a),y)
-	$(SED) 's,# CONFIG_SH2A is not set,CONFIG_SH2A=y,g' $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh2),y)
-	$(SED) 's,# CONFIG_SH2 is not set,CONFIG_SH2=y,g' $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh3eb),y)
-	$(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh3),y)
-	$(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh4eb),y)
-	$(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_sh4),y)
-	$(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),sparc)
-	$(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
-		 $(UCLIBC_DIR)/.oldconfig
-	for i in V7 V8 V9 V9B; do echo "# CONFIG_SPARC_$$i is not set"; done \
-		>> $(UCLIBC_DIR)/.oldconfig
-	$(SED) 's/^.*$(UCLIBC_SPARC_TYPE)[^B].*/$(UCLIBC_SPARC_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
-ifeq ($(BR2_powerpc_8540)$(BR2_powerpc_8548)$(BR2_powerpc_e500mc),y)
-	/bin/echo "# CONFIG_CLASSIC is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "CONFIG_E500=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	/bin/echo "CONFIG_CLASSIC=y" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_E500 is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-ifeq ($(UCLIBC_TARGET_ARCH),avr32)
-	/bin/echo "LINKRELAX=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifneq ($(UCLIBC_TARGET_ENDIAN),)
-	# The above doesn't work for me, so redo
-	$(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
-		-e 's/.*\(ARCH_WANTS_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
-		-e 's/.*\(ARCH_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
-		-e 's/.*\(ARCH_WANTS_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LARGEFILE),y)
-	$(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=n,g' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/.*UCLIBC_HAS_FOPEN_LARGEFILE_MODE.*/d' $(UCLIBC_DIR)/.oldconfig
-	echo "# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_IPV6),y)
-	$(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y)
-	$(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=y,g' \
-		-e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=y,g' \
-		-e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=y,g' \
-		$(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=n,g' \
-		-e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=n,g' \
-		-e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=n,g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_SOFT_FLOAT),y)
-	$(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n,g' \
-		-e 's,^[^_]*HAS_FPU.*,HAS_FPU=n,g' \
-		-e 's,.*UCLIBC_HAS_FLOATS.*,UCLIBC_HAS_FLOATS=y,g' \
-		-e 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' \
-		$(UCLIBC_DIR)/.oldconfig
-	#$(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n\nHAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) '/UCLIBC_HAS_FLOATS/d' \
-		-e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=y\nHAS_FPU=y\nUCLIBC_HAS_FLOATS=y\n,g' \
-		$(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
-	$(SED) 's,^.*UCLIBC_HAS_SSP[^_].*,UCLIBC_HAS_SSP=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_SSP[^_].*,UCLIBC_HAS_SSP=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-	$(SED) '/UCLIBC_HAS_THREADS/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/LINUXTHREADS/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/LINUXTHREADS_OLD/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/PTHREADS_DEBUG_SUPPORT/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/UCLIBC_HAS_THREADS_NATIVE/d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/DODEBUG /d' $(UCLIBC_DIR)/.oldconfig
-	$(SED) '/DOSTRIP/d' $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_STRIP_none),y)
-	echo "# DOSTRIP is not set" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "DOSTRIP=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_ENABLE_DEBUG),y)
-	echo "DODEBUG=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# DODEBUG is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_NONE),y)
-	echo "# UCLIBC_HAS_THREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "UCLIBC_HAS_THREADS=y" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS),y)
-	echo "LINUXTHREADS=y" >> $(UCLIBC_DIR)/.oldconfig
-	echo "LINUXTHREADS_NEW=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# LINUXTHREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
-	echo "# LINUXTHREADS_NEW is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_OLD),y)
-	echo "LINUXTHREADS_OLD=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# LINUXTHREADS_OLD is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREADS_NATIVE),y)
-	echo "UCLIBC_HAS_THREADS_NATIVE=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# UCLIBC_HAS_THREADS_NATIVE is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_PTHREAD_DEBUG),y)
-	echo "PTHREADS_DEBUG_SUPPORT=y" >> $(UCLIBC_DIR)/.oldconfig
-else
-	echo "# PTHREADS_DEBUG_SUPPORT is not set" >> $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
-	$(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y\n# UCLIBC_BUILD_ALL_LOCALE is not set\nUCLIBC_BUILD_MINIMAL_LOCALE=y\nUCLIBC_BUILD_MINIMAL_LOCALES="$(UCLIBC_LOCALES)"\nUCLIBC_PREGENERATED_LOCALE_DATA=n\nUCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=n\nUCLIBC_HAS_XLOCALE=y\nUCLIBC_HAS_GLIBC_DIGIT_GROUPING=n\n,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
-	$(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.oldconfig
-else
-	$(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=n,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ("$(KERNEL_ARCH)","i386")
-	/bin/echo "# CONFIG_GENERIC_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_486 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_586 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_586MMX is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_686 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUMII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUMIII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_PENTIUM4 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_K6 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_K7 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_ELAN is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_CRUSOE is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_WINCHIPC6 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_WINCHIP2 is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_CYRIXIII is not set" >> $(UCLIBC_DIR)/.oldconfig
-	/bin/echo "# CONFIG_NEHEMIAH is not set" >> $(UCLIBC_DIR)/.oldconfig
-ifeq ($(BR2_x86_i386),y)
-	$(SED) 's,# CONFIG_386 is not set,CONFIG_386=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i486),y)
-	$(SED) 's,# CONFIG_486 is not set,CONFIG_486=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i586),y)
-	$(SED) 's,# CONFIG_586 is not set,CONFIG_586=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium_mmx),y)
-	$(SED) 's,# CONFIG_586MMX is not set,CONFIG_586MMX=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_i686),y)
-	$(SED) 's,# CONFIG_686 is not set,CONFIG_686=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentiumpro),y)
-	$(SED) 's,# CONFIG_686 is not set,CONFIG_686=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium2),y)
-	$(SED) 's,# CONFIG_PENTIUMII is not set,CONFIG_PENTIUMII=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium3),y)
-	$(SED) 's,# CONFIG_PENTIUMIII is not set,CONFIG_PENTIUMIII=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium4),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_pentium_m),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_nocona),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-ifeq ($(BR2_x86_core2),y)
-	$(SED) 's,# CONFIG_PENTIUM4 is not set,CONFIG_PENTIUM4=y,g' $(UCLIBC_DIR)/.oldconfig
-endif
-endif
-
-$(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
-	$(Q)$(call MESSAGE,"Configuring uClibc")
-	cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
-	mkdir -p $(STAGING_DIR)/usr/include
-	mkdir -p $(STAGING_DIR)/usr/lib
-	mkdir -p $(STAGING_DIR)/lib
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		oldconfig
-	touch $@
-
-ifeq ($(BR2_CCACHE),y)
-# we'll need ccache for the host built before make oldconfig
-# if configured, otherwise uclibc-menuconfig will fail.
-# Use order-only dependency as host-ccache is a virtual target
-$(UCLIBC_DIR)/.config: | host-ccache
-endif
-
-# For ARC, libgcc is always included, even when -nostdlib is given. This
-# is related to some small pieces of code that are not always generated
-# by the compiler; a call to libgcc is used in those cases instead.
-#
-# During the initial stages of building the toolchain, this is a problem,
-# as libgcc does not exist yet. The ARC compiler supports -really-nostdlib
-# to override the default behavior.
-ifeq ($(BR2_arc),y)
-REALLY_NOSTDLIB=-really-nostdlib
-endif
-
-$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.config
-	$(Q)$(call MESSAGE,"Installing uClibc headers")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" headers \
-		lib/crt1.o lib/crti.o lib/crtn.o \
-		install_headers
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
-	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so
-	cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/
-	touch $@
-
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(HOST_GCC_INTERMEDIATE_TARGET_INSTALL_HOST)
-	$(Q)$(call MESSAGE,"Building uClibc")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX= \
-		DEVEL_PREFIX=/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		all
-	touch -c $@
-
-uclibc-menuconfig: dirs $(UCLIBC_DIR)/.config
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=$(STAGING_DIR) \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		HOSTCC="$(HOSTCC)" \
-		menuconfig && \
-	touch -c $(UCLIBC_DIR)/.config
-
-
-$(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc to staging dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(STAGING_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		install_runtime install_dev
-	# Build the host utils. Need to add an install target...
-	$(MAKE1) -C $(UCLIBC_DIR)/utils \
-		PREFIX=$(HOST_DIR) \
-		HOSTCC="$(HOSTCC)" \
-		hostutils
-	if [ -f $(UCLIBC_DIR)/utils/ldd.host ]; then \
-		install -D $(UCLIBC_DIR)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd; \
-		ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd; \
-	fi
-	if [ -f $(UCLIBC_DIR)/utils/ldconfig.host ]; then \
-		install -D $(UCLIBC_DIR)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig; \
-		ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig; \
-	fi
-	touch -c $@
-
-ifneq ($(TARGET_DIR),)
-$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc runtime to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		CROSS_COMPILE="$(TARGET_CROSS)" \
-		UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \
-		install_runtime
-	touch -c $@
-
-$(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
-	$(Q)$(call MESSAGE,"Installing uClibc utils to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) CC=$(TARGET_CROSS)gcc \
-		CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) utils install_utils
-	touch -c $@
-
-ifneq ($(BR2_PREFER_STATIC_LIB),y)
-UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
-endif
-
-ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
-UCLIBC_TARGETS+=uclibc-test
-endif
-endif
-
-uclibc: host-gcc-intermediate $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
-
-uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
-
-uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
-
-uclibc-config: $(UCLIBC_DIR)/.config
-
-uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
-
-uclibc-update-config: uclibc-config
-	cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
-
-uclibc-configured: host-gcc-initial linux-headers $(UCLIBC_DIR)/.configured
-
-uclibc-configured-source: uclibc-source
-
-uclibc-clean: uclibc-test-clean
-	-$(MAKE1) -C $(UCLIBC_DIR) ARCH="$(UCLIBC_TARGET_ARCH)" clean
-	rm -f $(UCLIBC_DIR)/.config
-
-uclibc-dirclean: uclibc-test-dirclean
-	rm -rf $(UCLIBC_DIR)
-
-uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
-
-uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
-
-$(UCLIBC_DIR)/test/unistd/errno:
-	$(Q)$(call MESSAGE,"Building uClibc test suite")
-	$(MAKE) -C $(UCLIBC_DIR)/test \
-	ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \
-	UCLIBC_ONLY=1 TEST_INSTALLED_UCLIBC=1 compile
-
-$(TARGET_DIR)/root/uClibc/test/unistd/errno: $(UCLIBC_DIR)/test/unistd/errno
-	$(Q)$(call MESSAGE,"Installing uClibc test suite to target dir")
-	mkdir -p $(TARGET_DIR)/root/uClibc
-	cp -rdpf $(UCLIBC_DIR)/test $(TARGET_DIR)/root/uClibc
-	$(INSTALL) $(UCLIBC_DIR)/Rules.mak $(TARGET_DIR)/root/uClibc
-	$(INSTALL) $(UCLIBC_DIR)/.config $(TARGET_DIR)/root/uClibc
-
-uclibc-test: $(STAGING_DIR)/usr/lib/libc.a $(TARGET_DIR)/root/uClibc/test/unistd/errno
-
-uclibc-test-source: uclibc-source
-
-uclibc-test-clean:
-	-$(MAKE) -C $(UCLIBC_DIR)/test clean
-	rm -rf $(TARGET_DIR)/root/uClibc
-
-uclibc-test-dirclean:
-	rm -rf $(TARGET_DIR)/root/uClibc
-
-################################################################################
-#
-# uClibc for the target just needs its header files
-# and whatnot installed.
-#
-################################################################################
-
-$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/usr/lib/libc.a
-	$(Q)$(call MESSAGE,"Installing uClibc development files to target dir")
-	$(MAKE1) -C $(UCLIBC_DIR) \
-		ARCH="$(UCLIBC_TARGET_ARCH)" \
-		PREFIX=$(TARGET_DIR) \
-		DEVEL_PREFIX=/usr/ \
-		RUNTIME_PREFIX=/ \
-		install_dev
-	# Install the kernel headers to the target dir if necessary
-	if [ ! -f $(TARGET_DIR)/usr/include/linux/version.h ]; then \
-		cp -pLR $(LINUX_HEADERS_DIR)/include/* \
-			$(TARGET_DIR)/usr/include/; \
-	fi
-	touch -c $@
-
-uclibc_target: cross_compiler uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
-
-uclibc_target-clean: uclibc-test-clean
-	rm -rf $(TARGET_DIR)/usr/include \
-		$(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
-
-uclibc_target-dirclean: uclibc-test-dirclean
-	rm -rf $(TARGET_DIR)/usr/include
-
-endif
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (14 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  7:07   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets Thomas Petazzoni
                   ` (6 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

The $(O)/toolchain directory, also called $(TOOLCHAIN_DIR) is no
longer needed, as all packages are now built in $(O)/build/, including
gcc and uClibc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 189a1db..e3e2750 100644
--- a/Makefile
+++ b/Makefile
@@ -264,7 +264,6 @@ STAMP_DIR:=$(BASE_DIR)/stamps
 
 BINARIES_DIR:=$(BASE_DIR)/images
 TARGET_DIR:=$(BASE_DIR)/target
-TOOLCHAIN_DIR=$(BASE_DIR)/toolchain
 TARGET_SKELETON=$(TOPDIR)/system/skeleton
 
 LEGAL_INFO_DIR=$(BASE_DIR)/legal-info
@@ -387,7 +386,7 @@ TARGETS_LEGAL_INFO:=$(patsubst %,%-legal-info,\
 # all targets depend on the crosscompiler and it's prerequisites
 $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
 
-dirs: $(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
 	$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
 
 $(BASE_TARGETS): dirs $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
@@ -405,7 +404,7 @@ world: toolchain $(TARGETS_ALL)
 	legal-info legal-info-prepare legal-info-clean \
 	$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
 	$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) $(TARGETS_LEGAL_INFO) \
-	$(TOOLCHAIN_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
+	$(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
 	$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
 
 ################################################################################
@@ -414,7 +413,7 @@ world: toolchain $(TARGETS_ALL)
 # dependencies anywhere else
 #
 ################################################################################
-$(TOOLCHAIN_DIR) $(BUILD_DIR) $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR):
+$(BUILD_DIR) $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR):
 	@mkdir -p $@
 
 $(STAGING_DIR):
@@ -732,7 +731,7 @@ endif
 
 clean:
 	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
-		$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR) $(BASE_DIR)/staging \
+		$(STAMP_DIR) $(BUILD_DIR) $(BASE_DIR)/staging \
 		$(LEGAL_INFO_DIR)
 
 distclean: clean
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (15 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  7:07   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
                   ` (5 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Instead of using the 'uclibc' target for all toolchain backends,
introduce more sensible target names for the external toolchain and
Crosstool-NG toolchain backend make targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile                                         |  7 +++++--
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk | 16 +++++++---------
 toolchain/toolchain-external/ext-tool.mk         |  5 ++---
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/Makefile b/Makefile
index e3e2750..7a4602c 100644
--- a/Makefile
+++ b/Makefile
@@ -225,9 +225,12 @@ endif
 
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 BASE_TARGETS += toolchain-buildroot
-else
-BASE_TARGETS += uclibc
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+BASE_TARGETS += toolchain-external
+else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
+BASE_TARGETS += toolchain-crosstool-ng
 endif
+
 TARGETS:=
 
 # silent mode requested?
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index 79ad7e1..7130536 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -22,15 +22,13 @@ PATH=$(HOST_PATH) ct-ng -C $(CTNG_DIR) --no-print-directory $(1)
 endef
 
 #-----------------------------------------------------------------------------
-# 'uclibc' is the target to depend on to get the toolchain and prepare
-# the staging directory and co.
-uclibc: dependencies $(STAMP_DIR)/ct-ng-toolchain-installed
-
-# 'uclibc-source' is the target used by the infra structure to mean
-# "we just want to download the toolchain's sources, not build it"
-# For crosstool-NG, we need it to be configured before we can download;
-# then we have to override a config option to just do the download
-uclibc-source: $(CTNG_DIR)/.config
+toolchain-crosstool-ng: dependencies $(STAMP_DIR)/ct-ng-toolchain-installed
+
+# The target used by the infra structure to mean "we just want to
+# download the toolchain's sources, not build it" For crosstool-NG, we
+# need it to be configured before we can download; then we have to
+# override a config option to just do the download
+toolchain-crosstool-ng-source: $(CTNG_DIR)/.config
 	$(Q)$(call ctng,build CT_ONLY_DOWNLOAD=y)
 
 #-----------------------------------------------------------------------------
diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
index 1d76a66..b8d77ad 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -539,10 +539,9 @@ $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
 	$(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_EXTERNAL_WRAPPER_ARGS) -s -Wl,--hash-style=both \
 		toolchain/toolchain-external/ext-toolchain-wrapper.c -o $@
 
-# 'uclibc' is the target to provide toolchain / staging dir
-uclibc: dependencies $(HOST_DIR)/usr/bin/ext-toolchain-wrapper
+toolchain-external: dependencies $(HOST_DIR)/usr/bin/ext-toolchain-wrapper
 
 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
 # download ext toolchain if so configured
-uclibc-source: $(addprefix $(DL_DIR)/,$(TOOLCHAIN_EXTERNAL_SOURCE))
+toolchain-external-source: $(addprefix $(DL_DIR)/,$(TOOLCHAIN_EXTERNAL_SOURCE))
 endif
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (16 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  7:08   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC} Thomas Petazzoni
                   ` (4 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

This finally removes the BR2_HAVE_DEVFILES option, that was used to
install/keep development files on target. With the recent migration of
the internal backend to the package infrastructure, we had anyway lost
the ability to build gcc for the target, and install the uClibc
development files on the target.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Config.in                           |  8 --------
 Makefile                            |  4 ----
 package/dbus/dbus.mk                |  2 --
 package/libdnet/libdnet.mk          |  2 --
 package/libglib2/libglib2.mk        |  2 --
 package/lua/lua.mk                  | 13 -------------
 package/multimedia/mpg123/mpg123.mk |  3 +--
 package/ncurses/ncurses.mk          | 20 --------------------
 package/opencv/opencv.mk            |  2 --
 package/openssl/openssl.mk          | 12 ------------
 package/orc/orc.mk                  |  3 ---
 package/pkg-generic.mk              |  2 --
 package/python/python.mk            | 16 +++-------------
 package/python3/python3.mk          | 16 +++-------------
 package/sdl_sound/sdl_sound.mk      |  2 +-
 package/taglib/taglib.mk            |  2 --
 package/usbutils/usbutils.mk        |  2 --
 package/xenomai/xenomai.mk          |  2 --
 18 files changed, 8 insertions(+), 105 deletions(-)

diff --git a/Config.in b/Config.in
index bbb9885..78dea3b 100644
--- a/Config.in
+++ b/Config.in
@@ -419,14 +419,6 @@ config BR2_HAVE_DOCUMENTATION
 	  If you say n here, your target will not contain any
 	  documentation.
 
-config BR2_HAVE_DEVFILES
-	bool "development files in target filesystem"
-	# We no longer want to support a toolchain on the target
-	depends on BR2_DEPRECATED
-	help
-	  Install headers and static libraries in the
-	  target filesystem
-
 config BR2_PACKAGE_OVERRIDE_FILE
 	string "location of a package override file"
 	default "$(TOPDIR)/local.mk"
diff --git a/Makefile b/Makefile
index 7a4602c..fe9bde7 100644
--- a/Makefile
+++ b/Makefile
@@ -450,16 +450,12 @@ STRIP_FIND_CMD += -type f -perm +111
 STRIP_FIND_CMD += -not \( $(call findfileclauses,libpthread*.so* $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) -print
 
 target-finalize:
-ifeq ($(BR2_HAVE_DEVFILES),y)
-	( support/scripts/copy.sh $(STAGING_DIR) $(TARGET_DIR) )
-else
 	rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \
 		$(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \
 		$(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake
 	find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f
 	find $(TARGET_DIR)/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
 	find $(TARGET_DIR)/usr/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
-endif
 ifneq ($(BR2_PACKAGE_GDB),y)
 	rm -rf $(TARGET_DIR)/usr/share/gdb
 endif
diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
index a855f05..baa5c0b 100644
--- a/package/dbus/dbus.mk
+++ b/package/dbus/dbus.mk
@@ -61,9 +61,7 @@ define DBUS_REMOVE_DEVFILES
 	rm -rf $(TARGET_DIR)/usr/lib/dbus-1.0
 endef
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 DBUS_POST_INSTALL_TARGET_HOOKS += DBUS_REMOVE_DEVFILES
-endif
 
 define DBUS_INSTALL_TARGET_FIXUP
 	rm -rf $(TARGET_DIR)/var/lib/dbus
diff --git a/package/libdnet/libdnet.mk b/package/libdnet/libdnet.mk
index 78f0ae0..ea10251 100644
--- a/package/libdnet/libdnet.mk
+++ b/package/libdnet/libdnet.mk
@@ -34,8 +34,6 @@ define LIBDNET_REMOVE_CONFIG_SCRIPT
 	$(RM) -f $(TARGET_DIR)/usr/bin/dnet-config
 endef
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 LIBDNET_POST_INSTALL_TARGET_HOOKS += LIBDNET_REMOVE_CONFIG_SCRIPT
-endif
 
 $(eval $(autotools-package))
diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index 4821a76..8fb10f2 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -103,9 +103,7 @@ define LIBGLIB2_REMOVE_DEV_FILES
 	rm -f $(addprefix $(TARGET_DIR)/usr/bin/,glib-genmarshal glib-gettextize glib-mkenums gobject-query gtester gtester-report)
 endef
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 LIBGLIB2_POST_INSTALL_TARGET_HOOKS += LIBGLIB2_REMOVE_DEV_FILES
-endif
 
 define LIBGLIB2_REMOVE_GDB_FILES
 	rm -rf $(TARGET_DIR)/usr/share/glib-2.0/gdb
diff --git a/package/lua/lua.mk b/package/lua/lua.mk
index ac75fe6..904ca52 100644
--- a/package/lua/lua.mk
+++ b/package/lua/lua.mk
@@ -64,18 +64,6 @@ define LUA_INSTALL_STAGING_CMDS
 	$(INSTALL) -m 0644 -D $(@D)/src/lauxlib.h $(STAGING_DIR)/usr/include/lauxlib.h
 endef
 
-ifeq ($(BR2_HAVE_DEVFILES),y)
-define LUA_INSTALL_DEVFILES
-	$(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
-		$(TARGET_DIR)/usr/lib/pkgconfig/lua.pc
-	$(INSTALL) -m 0644 -D $(@D)/src/lua.h $(TARGET_DIR)/usr/include/lua.h
-	$(INSTALL) -m 0644 -D $(@D)/src/luaconf.h $(TARGET_DIR)/usr/include/luaconf.h
-	$(INSTALL) -m 0644 -D $(@D)/src/lualib.h $(TARGET_DIR)/usr/include/lualib.h
-	$(INSTALL) -m 0644 -D $(@D)/src/lauxlib.h $(TARGET_DIR)/usr/include/lauxlib.h
-endef
-endif
-
-
 define LUA_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 0755 -D $(@D)/src/lua $(TARGET_DIR)/usr/bin/lua
 	$(INSTALL) -m 0755 -D $(@D)/src/luac $(TARGET_DIR)/usr/bin/luac
@@ -83,7 +71,6 @@ define LUA_INSTALL_TARGET_CMDS
 		$(TARGET_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
 	ln -sf liblua.so.$(LUA_VERSION) $(TARGET_DIR)/usr/lib/liblua.so
 	$(INSTALL) -m 0644 -D $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
-	$(LUA_INSTALL_DEVFILES)
 endef
 
 define HOST_LUA_INSTALL_CMDS
diff --git a/package/multimedia/mpg123/mpg123.mk b/package/multimedia/mpg123/mpg123.mk
index f554043..e9d074f 100644
--- a/package/multimedia/mpg123/mpg123.mk
+++ b/package/multimedia/mpg123/mpg123.mk
@@ -61,8 +61,7 @@ MPG123_CONF_OPT += --with-audio=$(shell echo $(MPG123_AUDIO) | tr ' ' ,)
 
 ifeq ($(BR2_PACKAGE_LIBTOOL),y)
 MPG123_DEPENDENCIES += libtool
-# .la files gets stripped unless HAVE_DEVFILES is enabled, so directly
-# load .so files rather than .la
+# .la files gets stripped , so directly load .so files rather than .la
 MPG123_CONF_OPT += --with-modules --with-module-suffix=.so
 endif
 
diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk
index 5381bd1..dbb514e 100644
--- a/package/ncurses/ncurses.mk
+++ b/package/ncurses/ncurses.mk
@@ -38,25 +38,6 @@ define NCURSES_BUILD_CMDS
 	$(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR)
 endef
 
-ifeq ($(BR2_HAVE_DEVFILES),y)
-define NCURSES_INSTALL_TARGET_DEVFILES
-	mkdir -p $(TARGET_DIR)/usr/include
-	cp -dpf $(NCURSES_DIR)/include/curses.h $(TARGET_DIR)/usr/include/curses.h
-	cp -dpf $(NCURSES_DIR)/include/ncurses_dll.h $(TARGET_DIR)/usr/include/ncurses_dll.h
-	cp -dpf $(NCURSES_DIR)/include/term.h $(TARGET_DIR)/usr/include/
-	cp -dpf $(NCURSES_DIR)/include/unctrl.h $(TARGET_DIR)/usr/include/
-	cp -dpf $(NCURSES_DIR)/include/termcap.h $(TARGET_DIR)/usr/include/
-	cp -dpf $(NCURSES_DIR)/lib/libncurses.a $(TARGET_DIR)/usr/lib/
-	(cd $(TARGET_DIR)/usr/lib; \
-	 ln -fs libncurses.a libcurses.a; \
-	 ln -fs libncurses.a libtermcap.a; \
-	)
-	(cd $(TARGET_DIR)/usr/include; ln -fs curses.h ncurses.h)
-	rm -f $(TARGET_DIR)/usr/lib/libncurses.so
-	(cd $(TARGET_DIR)/usr/lib; ln -fs libncurses.so.$(NCURSES_VERSION) libncurses.so)
-endef
-endif
-
 ifneq ($(BR2_PREFER_STATIC_LIB),y)
 
 ifeq ($(BR2_PACKAGE_NCURSES_TARGET_PANEL),y)
@@ -101,7 +82,6 @@ define NCURSES_INSTALL_TARGET_CMDS
 	cp -dpf $(STAGING_DIR)/usr/share/terminfo/l/linux $(TARGET_DIR)/usr/share/terminfo/l
 	mkdir -p $(TARGET_DIR)/usr/share/terminfo/s
 	cp -dpf $(STAGING_DIR)/usr/share/terminfo/s/screen $(TARGET_DIR)/usr/share/terminfo/s
-	$(NCURSES_INSTALL_TARGET_DEVFILES)
 endef # NCURSES_INSTALL_TARGET_CMDS
 
 #
diff --git a/package/opencv/opencv.mk b/package/opencv/opencv.mk
index 3bf7ee9..b9ed8cb 100644
--- a/package/opencv/opencv.mk
+++ b/package/opencv/opencv.mk
@@ -169,12 +169,10 @@ endef
 OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_DOC
 endif
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 define OPENCV_CLEAN_INSTALL_CMAKE
 	$(RM) -f $(TARGET_DIR)/usr/share/OpenCV/OpenCVConfig*.cmake
 endef
 OPENCV_POST_INSTALL_TARGET_HOOKS += OPENCV_CLEAN_INSTALL_CMAKE
-endif
 
 ifneq ($(BR2_PACKAGE_OPENCV_INSTALL_DATA),y)
 define OPENCV_CLEAN_INSTALL_DATA
diff --git a/package/openssl/openssl.mk b/package/openssl/openssl.mk
index e16c91f..a0e103b 100644
--- a/package/openssl/openssl.mk
+++ b/package/openssl/openssl.mk
@@ -105,22 +105,10 @@ endef
 
 define OPENSSL_INSTALL_TARGET_CMDS
 	$(MAKE1) -C $(@D) INSTALL_PREFIX=$(TARGET_DIR) install
-endef
-
-define OPENSSL_REMOVE_DEV_FILES
 	rm -rf $(TARGET_DIR)/usr/lib/ssl
-endef
-
-ifneq ($(BR2_HAVE_DEVFILES),y)
-OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_DEV_FILES
-endif
-
-define OPENSSL_INSTALL_FIXUPS
 	rm -f $(TARGET_DIR)/usr/bin/c_rehash
 endef
 
-OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_INSTALL_FIXUPS
-
 ifneq ($(BR2_PREFER_STATIC_LIB),y)
 
 # libraries gets installed read only, so strip fails
diff --git a/package/orc/orc.mk b/package/orc/orc.mk
index 9d9921a..dc93882 100644
--- a/package/orc/orc.mk
+++ b/package/orc/orc.mk
@@ -20,10 +20,7 @@ define ORC_REMOVE_DEVFILES
 endef
 
 ORC_POST_INSTALL_TARGET_HOOKS += ORC_REMOVE_BUGREPORT
-
-ifneq ($(BR2_HAVE_DEVFILES),y)
 ORC_POST_INSTALL_TARGET_HOOKS += ORC_REMOVE_DEVFILES
-endif
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 56fca6b..668f011 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -153,11 +153,9 @@ $(BUILD_DIR)/%/.stamp_target_installed:
 		$($(PKG)_INSTALL_INIT_SYSV))
 	$($(PKG)_INSTALL_TARGET_CMDS)
 	$(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep))
-ifeq ($(BR2_HAVE_DEVFILES),)
 	$(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \
 		$(RM) -f $(addprefix $(TARGET_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ; \
 	fi
-endif
 	$(Q)touch $@
 
 # Clean package
diff --git a/package/python/python.mk b/package/python/python.mk
index 363513d..975d6f4 100644
--- a/package/python/python.mk
+++ b/package/python/python.mk
@@ -151,23 +151,13 @@ endef
 PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_SMTPD
 
 #
-# Development files removal
-#
-define PYTHON_REMOVE_DEVFILES
-	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR)-config
-	rm -f $(TARGET_DIR)/usr/bin/python2-config
-	rm -f $(TARGET_DIR)/usr/bin/python-config
-endef
-
-ifneq ($(BR2_HAVE_DEVFILES),y)
-PYTHON_POST_INSTALL_TARGET_HOOKS += PYTHON_REMOVE_DEVFILES
-endif
-
-#
 # Remove useless files. In the config/ directory, only the Makefile
 # and the pyconfig.h files are needed at runtime.
 #
 define PYTHON_REMOVE_USELESS_FILES
+	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON_VERSION_MAJOR)-config
+	rm -f $(TARGET_DIR)/usr/bin/python2-config
+	rm -f $(TARGET_DIR)/usr/bin/python-config
 	for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/config/ \
 		-type f -not -name pyconfig.h -a -not -name Makefile` ; do \
 		rm -f $$i ; \
diff --git a/package/python3/python3.mk b/package/python3/python3.mk
index 11ffe61..bf78ee6 100644
--- a/package/python3/python3.mk
+++ b/package/python3/python3.mk
@@ -127,23 +127,13 @@ endef
 PYTHON3_POST_INSTALL_STAGING_HOOKS += PYTHON3_FIXUP_LIBDIR
 
 #
-# Development files removal
-#
-define PYTHON3_REMOVE_DEVFILES
-	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config
-	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)m-config
-	rm -f $(TARGET_DIR)/usr/bin/python3-config
-endef
-
-ifneq ($(BR2_HAVE_DEVFILES),y)
-PYTHON3_POST_INSTALL_TARGET_HOOKS += PYTHON3_REMOVE_DEVFILES
-endif
-
-#
 # Remove useless files. In the config/ directory, only the Makefile
 # and the pyconfig.h files are needed at runtime.
 #
 define PYTHON3_REMOVE_USELESS_FILES
+	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)-config
+	rm -f $(TARGET_DIR)/usr/bin/python$(PYTHON3_VERSION_MAJOR)m-config
+	rm -f $(TARGET_DIR)/usr/bin/python3-config
 	for i in `find $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/config-3.3m/ \
 		-type f -not -name pyconfig.h -a -not -name Makefile` ; do \
 		rm -f $$i ; \
diff --git a/package/sdl_sound/sdl_sound.mk b/package/sdl_sound/sdl_sound.mk
index ae449ae..cd1ed3e 100644
--- a/package/sdl_sound/sdl_sound.mk
+++ b/package/sdl_sound/sdl_sound.mk
@@ -48,7 +48,7 @@ SDL_SOUND_POST_INSTALL_TARGET_HOOKS += SDL_SOUND_REMOVE_PLAYSOUND
 endif
 
 # target shared libs doesn't get removed by make uninstall if the .la
-# files are removed (E.G. if BR2_HAVE_DEVFILES isn't set)
+# files are removed
 define SDL_SOUND_UNINSTALL_TARGET_CMDS
 	$(MAKE) DESTDIR=$(TARGET_DIR) uninstall -C $(@D)
 	rm -f $(TARGET_DIR)/usr/lib/libSDL_sound*so*
diff --git a/package/taglib/taglib.mk b/package/taglib/taglib.mk
index 8260293..75e8e67 100644
--- a/package/taglib/taglib.mk
+++ b/package/taglib/taglib.mk
@@ -22,8 +22,6 @@ define TAGLIB_REMOVE_DEVFILE
 	rm -f $(TARGET_DIR)/usr/bin/taglib-config
 endef
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 TAGLIB_POST_INSTALL_TARGET_HOOKS += TAGLIB_REMOVE_DEVFILE
-endif
 
 $(eval $(cmake-package))
diff --git a/package/usbutils/usbutils.mk b/package/usbutils/usbutils.mk
index e679b26..c56702b 100644
--- a/package/usbutils/usbutils.mk
+++ b/package/usbutils/usbutils.mk
@@ -51,8 +51,6 @@ define USBUTILS_REMOVE_DEVFILES
 	rm -f $(TARGET_DIR)/usr/bin/libusb-config
 endef
 
-ifneq ($(BR2_HAVE_DEVFILES),y)
 USBUTILS_POST_INSTALL_TARGET_HOOKS += USBUTILS_REMOVE_DEVFILES
-endif
 
 $(eval $(autotools-package))
diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk
index 14c616e..8598953 100644
--- a/package/xenomai/xenomai.mk
+++ b/package/xenomai/xenomai.mk
@@ -19,7 +19,6 @@ XENOMAI_INSTALL_STAGING = YES
 
 XENOMAI_CONF_OPT += --includedir=/usr/include/xenomai/
 
-ifeq ($(BR2_HAVE_DEVFILES),)
 define XENOMAI_REMOVE_DEVFILES
 	for i in xeno-config xeno-info wrap-link.sh ; do \
 		rm -f $(TARGET_DIR)/usr/bin/$$i ; \
@@ -27,7 +26,6 @@ define XENOMAI_REMOVE_DEVFILES
 endef
 
 XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_DEVFILES
-endif
 
 ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),)
 define XENOMAI_REMOVE_TESTSUITE
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC}
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (17 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  7:10   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package Thomas Petazzoni
                   ` (3 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Currently, when we need to do a conditional on the type of C library
used, we need to take into account the three toolchain backends. As we
are going to add eglibc support to the Buildroot toolchain backend, it
would become even uglier, so this patch introduces two new hidden
options: BR2_TOOLCHAIN_USES_UCLIBC and BR2_TOOLCHAIN_USES_GLIBC, that
exist regardless of the toolchain backend. The entire Buildroot code
base is converted to use those options.

Note that we have intentionally created only one option
(BR2_TOOLCHAIN_USES_GLIBC) for both glibc and eglibc, since they are
essentially the same, as far as Buildroot is concerned.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile                                         |  2 +-
 package/Makefile.in                              |  2 +-
 package/boost/boost.mk                           |  2 +-
 package/elfutils/Config.in                       |  9 ++-------
 package/elfutils/elfutils.mk                     |  2 +-
 package/freescale-imx/gpu-viv-bin-mx6q/Config.in |  8 ++------
 package/gpsd/Config.in                           |  4 ++--
 package/gsl/gsl.mk                               |  2 +-
 package/iozone/iozone.mk                         |  2 +-
 package/libv4l/Config.in                         |  8 ++++----
 package/ltp-testsuite/Config.in                  |  2 +-
 package/mongrel2/Config.in                       |  4 +---
 package/multimedia/gst-plugin-x170/Config.in     |  4 +---
 package/multimedia/on2-8170-libs/Config.in       |  4 +---
 package/nbd/nbd.mk                               |  2 +-
 package/network-manager/network-manager.mk       |  2 +-
 package/nss-mdns/Config.in                       |  2 +-
 package/php/php.mk                               |  2 +-
 package/squid/squid.mk                           |  2 +-
 package/tzdata/Config.in                         |  2 +-
 toolchain/Config.in                              | 16 ++++++++++++++++
 toolchain/toolchain-common.in                    |  8 ++------
 toolchain/toolchain-crosstool-ng/Config.in       | 11 +++--------
 toolchain/toolchain-external/Config.in           |  9 ++-------
 24 files changed, 49 insertions(+), 62 deletions(-)

diff --git a/Makefile b/Makefile
index fe9bde7..955e684 100644
--- a/Makefile
+++ b/Makefile
@@ -346,7 +346,7 @@ ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
 TARGETS+=target-purgelocales
 endif
 
-ifneq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_CTNG_eglibc)$(BR2_TOOLCHAIN_CTNG_glibc),)
+ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
 ifneq ($(GENERATE_LOCALE),)
 TARGETS+=target-generatelocales
 endif
diff --git a/package/Makefile.in b/package/Makefile.in
index 6835de3..405b3e4 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -23,7 +23,7 @@ MAKE:=$(HOSTMAKE) -j$(PARALLEL_JOBS)
 # Compute GNU_TARGET_NAME
 GNU_TARGET_NAME=$(ARCH)-buildroot-linux-$(LIBC)$(ABI)
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_CTNG_uClibc)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 LIBC=uclibc
 else
 LIBC=gnu
diff --git a/package/boost/boost.mk b/package/boost/boost.mk
index ce72990..160a9f1 100644
--- a/package/boost/boost.mk
+++ b/package/boost/boost.mk
@@ -59,7 +59,7 @@ BOOST_OPT += toolset=gcc \
 	     runtime-link=$(if $(BR2_PREFER_STATIC_LIB),static,shared)
 
 ifeq ($(BR2_PACKAGE_BOOST_LOCALE),y)
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 # posix backend needs monetary.h which isn't available on uClibc
 BOOST_OPT += boost.locale.posix=off
 endif
diff --git a/package/elfutils/Config.in b/package/elfutils/Config.in
index 914eec6..c6a2b84 100644
--- a/package/elfutils/Config.in
+++ b/package/elfutils/Config.in
@@ -3,10 +3,7 @@ comment "elfutils requires a toolchain with LARGEFILE and WCHAR support"
 
 config BR2_PACKAGE_ELFUTILS
 	bool "elfutils"
-	select BR2_PACKAGE_ARGP_STANDALONE if \
-	       BR2_TOOLCHAIN_BUILDROOT   || \
-	       BR2_TOOLCHAIN_CTNG_uClibc || \
-	       BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC
 	select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_WCHAR
@@ -23,9 +20,7 @@ if BR2_PACKAGE_ELFUTILS
 
 config BR2_PACKAGE_ELFUTILS_PROGS
 	bool "Install programs"
-	depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
-		   BR2_TOOLCHAIN_CTNG_glibc     || \
-		   BR2_TOOLCHAIN_CTNG_eglibc
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  This option tells elfutils to not only install the libelf
 	  libraries, but also the elfutils programs.
diff --git a/package/elfutils/elfutils.mk b/package/elfutils/elfutils.mk
index 2658786..696b566 100644
--- a/package/elfutils/elfutils.mk
+++ b/package/elfutils/elfutils.mk
@@ -37,7 +37,7 @@ endif
 ELFUTILS_CONF_ENV += \
 	LDFLAGS="$(ELFUTILS_LDFLAGS)"
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
  ELFUTILS_DEPENDENCIES += argp-standalone
 endif
 
diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/Config.in b/package/freescale-imx/gpu-viv-bin-mx6q/Config.in
index 06544c4..e80eae4 100644
--- a/package/freescale-imx/gpu-viv-bin-mx6q/Config.in
+++ b/package/freescale-imx/gpu-viv-bin-mx6q/Config.in
@@ -1,7 +1,5 @@
 comment "gpu-viv-bin-mx6q requires a glibc toolchain"
-	depends on !(BR2_TOOLCHAIN_CTNG_glibc || \
-		BR2_TOOLCHAIN_CTNG_eglibc || \
-		BR2_TOOLCHAIN_EXTERNAL_GLIBC)
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 	bool "gpu-viv-bin-mx6q"
@@ -9,9 +7,7 @@ config BR2_PACKAGE_GPU_VIV_BIN_MX6Q
 	select BR2_PACKAGE_HAS_OPENGL_ES
 	depends on BR2_arm # Only relevant for i.MX6
 	 # Library binaries are linked against libc.so.6
-	depends on BR2_TOOLCHAIN_CTNG_glibc || \
-		BR2_TOOLCHAIN_CTNG_eglibc || \
-		BR2_TOOLCHAIN_EXTERNAL_GLIBC
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  Userspace libraries for Vivante GPU on i.MX6 platforms
 
diff --git a/package/gpsd/Config.in b/package/gpsd/Config.in
index 337f8e7..70c8cbf 100644
--- a/package/gpsd/Config.in
+++ b/package/gpsd/Config.in
@@ -32,10 +32,10 @@ config BR2_PACKAGE_GPSD_OLDSTYLE
 
 config BR2_PACKAGE_GPSD_PROFILING
 	bool "profiling support"
-	depends on !BR2_TOOLCHAIN_BUILDROOT && !BR2_TOOLCHAIN_CTNG_uClibc && !BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 
 comment "profiling support not available with uClibc-based toolchain"
-	depends on BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_CTNG_uClibc || BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_PACKAGE_GPSD_NTP_SHM
 	bool "NTP time hinting support"
diff --git a/package/gsl/gsl.mk b/package/gsl/gsl.mk
index 68b9948..c32a0eb 100644
--- a/package/gsl/gsl.mk
+++ b/package/gsl/gsl.mk
@@ -17,7 +17,7 @@ GSL_CONFIG_SCRIPTS = gsl-config
 # at: http://lists.busybox.net/pipermail/uclibc/2012-October/047067.html.
 # So we tell gsl that fenv related functions are not available in this
 # case.
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 ifneq ($(BR2_i386),y)
 GSL_CONF_ENV = \
        ac_cv_have_decl_feenableexcept=no \
diff --git a/package/iozone/iozone.mk b/package/iozone/iozone.mk
index 970e509..328a526 100644
--- a/package/iozone/iozone.mk
+++ b/package/iozone/iozone.mk
@@ -15,7 +15,7 @@ IOZONE_LICENSE = IOzone license (NO DERIVED WORKS ALLOWED)
 ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
 IOZONE_TARGET = linux-noth
 # AIO support not available on uClibc, use the linux (non-aio) target.
-else ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+else ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 IOZONE_TARGET = linux-noaio
 else
 IOZONE_TARGET = linux
diff --git a/package/libv4l/Config.in b/package/libv4l/Config.in
index 70f20ac..de4af30 100644
--- a/package/libv4l/Config.in
+++ b/package/libv4l/Config.in
@@ -13,21 +13,21 @@ if BR2_PACKAGE_LIBV4L
 
 config BR2_PACKAGE_LIBV4L_DECODE_TM6000
 	bool "decode_tm6000"
-	depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_glibc || BR2_TOOLCHAIN_CTNG_eglibc
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  Tool to decode tm6000 proprietary format streams
 
 comment "decode_tm6000 requires a GLIBC based toolchain"
-	depends on !(BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_glibc || BR2_TOOLCHAIN_CTNG_eglibc)
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_PACKAGE_LIBV4L_IR_KEYTABLE
 	bool "ir-keytable"
-	depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_glibc || BR2_TOOLCHAIN_CTNG_eglibc
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  Tool to alter keymaps of Remote Controller devices
 
 comment "ir-keytable requires a GLIBC based toolchain"
-	depends on !(BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_glibc || BR2_TOOLCHAIN_CTNG_eglibc)
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE
 	bool "v4l2-compliance"
diff --git a/package/ltp-testsuite/Config.in b/package/ltp-testsuite/Config.in
index 46e7380..75b029f 100644
--- a/package/ltp-testsuite/Config.in
+++ b/package/ltp-testsuite/Config.in
@@ -1,6 +1,6 @@
 comment "ltp-testsuite needs specific uClibc options, see help"
 	depends on BR2_PACKAGE_LTP_TESTSUITE
-	depends on BR2_TOOLCHAIN_BUILDROOT || BR2_TOOLCHAIN_EXTERNAL_UCLIBC || BR2_TOOLCHAIN_CTNG_uClibc
+	depends on BR2_TOOLCHAIN_USES_UCLIBC
 
 config BR2_PACKAGE_LTP_TESTSUITE
 	bool "ltp-testsuite"
diff --git a/package/mongrel2/Config.in b/package/mongrel2/Config.in
index cd93236..ca7e609 100644
--- a/package/mongrel2/Config.in
+++ b/package/mongrel2/Config.in
@@ -9,9 +9,7 @@ config BR2_PACKAGE_MONGREL2
 	# {get,make,swap}context functions present in
 	# {e,}glibc and in uClibc's master branch. Source has arm workaround
 	depends on BR2_UCLIBC_VERSION_SNAPSHOT || \
-		BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
-		BR2_TOOLCHAIN_CTNG_eglibc || \
-		BR2_TOOLCHAIN_CTNG_glibc || \
+		BR2_TOOLCHAIN_USES_GLIBC || \
 		BR2_arm
 	help
 	  Mongrel2 is an application, language, and network architecture
diff --git a/package/multimedia/gst-plugin-x170/Config.in b/package/multimedia/gst-plugin-x170/Config.in
index fd93947..9a1ae63 100644
--- a/package/multimedia/gst-plugin-x170/Config.in
+++ b/package/multimedia/gst-plugin-x170/Config.in
@@ -2,9 +2,7 @@ config BR2_PACKAGE_GST_PLUGIN_X170
 	bool "gst-plugin-x170"
 	depends on BR2_PACKAGE_GSTREAMER
 	depends on BR2_arm926t
-	depends on (BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
-		BR2_TOOLCHAIN_CTNG_eglibc || \
-		BR2_TOOLCHAIN_CTNG_glibc) # on2-8170-libs
+	depends on BR2_TOOLCHAIN_USES_GLIBC # on2-8170-libs
 	select BR2_PACKAGE_ON2_8170_LIBS
 	help
 	  GStreamer plug-in to use the Hantro X170 video decoder present on
diff --git a/package/multimedia/on2-8170-libs/Config.in b/package/multimedia/on2-8170-libs/Config.in
index 0cf05ad..8c2d963 100644
--- a/package/multimedia/on2-8170-libs/Config.in
+++ b/package/multimedia/on2-8170-libs/Config.in
@@ -1,9 +1,7 @@
 config BR2_PACKAGE_ON2_8170_LIBS
 	#This is a binary only package which has been compiled for glibc
 	depends on BR2_arm926t
-	depends on (BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
-		BR2_TOOLCHAIN_CTNG_eglibc || \
-		BR2_TOOLCHAIN_CTNG_glibc)
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_LINUX_KERNEL # on2-8170-modules
 	select BR2_PACKAGE_ON2_8170_MODULES # runtime
 	bool "on2-8170-libs"
diff --git a/package/nbd/nbd.mk b/package/nbd/nbd.mk
index e790a34..e5b5023 100644
--- a/package/nbd/nbd.mk
+++ b/package/nbd/nbd.mk
@@ -11,7 +11,7 @@ NBD_CONF_OPT = $(if $(BR2_LARGEFILE),--enable-lfs,--disable-lfs)
 NBD_DEPENDENCIES = libglib2
 NBD_LICENSE = GPLv2
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 # We have linux/falloc.h
 # but uClibc lacks fallocate(2) which is a glibc-ism
 NBD_CONF_ENV = ac_cv_header_linux_falloc_h=no
diff --git a/package/network-manager/network-manager.mk b/package/network-manager/network-manager.mk
index 9c143aa..b4d3408 100644
--- a/package/network-manager/network-manager.mk
+++ b/package/network-manager/network-manager.mk
@@ -35,7 +35,7 @@ NETWORK_MANAGER_CONF_OPT = \
 		--disable-ifnet
 
 # uClibc by default doesn't have backtrace support, so don't use it
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 NETWORK_MANAGER_CONF_OPT += --disable-crashtrace
 endif
 
diff --git a/package/nss-mdns/Config.in b/package/nss-mdns/Config.in
index 1df0ce4..b537fa5 100644
--- a/package/nss-mdns/Config.in
+++ b/package/nss-mdns/Config.in
@@ -2,7 +2,7 @@ config BR2_PACKAGE_NSS_MDNS
 	bool "nss-mdns"
 	# libdaemon->avahi uses fork()
 	depends on BR2_USE_MMU
-	depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_eglibc || BR2_TOOLCHAIN_CTNG_glibc
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_PACKAGE_AVAHI_DAEMON
 	help
 	  nss-mdns is a plugin for the GNU Name Service Switch (NSS)
diff --git a/package/php/php.mk b/package/php/php.mk
index 07f396e..299395f 100644
--- a/package/php/php.mk
+++ b/package/php/php.mk
@@ -24,7 +24,7 @@ PHP_CONFIG_SCRIPTS = php-config
 PHP_CFLAGS = $(TARGET_CFLAGS)
 
 # Workaround for non-IPv6 uClibc toolchain
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),y)
+ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
 ifneq ($(BR2_INET_IPV6),y)
 	PHP_CFLAGS += -DHAVE_DEPRECATED_DNS_FUNCS
 endif
diff --git a/package/squid/squid.mk b/package/squid/squid.mk
index 4dd1404..e3daa32 100644
--- a/package/squid/squid.mk
+++ b/package/squid/squid.mk
@@ -26,7 +26,7 @@ SQUID_CONF_OPT =	--enable-async-io=8 --enable-linux-netfilter \
 			--enable-external-acl-helpers="ip_user"
 
 # On uClibc librt needs libpthread
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS)$(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_CTNG_uClibc),yy)
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS)$(BR2_TOOLCHAIN_USES_UCLIBC),yy)
 	SQUID_CONF_ENV += ac_cv_search_shm_open="-lrt -lpthread"
 endif
 
diff --git a/package/tzdata/Config.in b/package/tzdata/Config.in
index 4e68a97..dec5f86 100644
--- a/package/tzdata/Config.in
+++ b/package/tzdata/Config.in
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_TZDATA
 	bool "tzdata"
-	depends on BR2_TOOLCHAIN_EXTERNAL_GLIBC || BR2_TOOLCHAIN_CTNG_eglibc || BR2_TOOLCHAIN_CTNG_glibc
+	depends on BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  Time zone database
 
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 665618c..448bccc 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -1,4 +1,19 @@
 menu "Toolchain"
+
+# Should be selected for glibc or eglibc
+config BR2_TOOLCHAIN_USES_GLIBC
+	bool
+	select BR2_LARGEFILE
+	select BR2_INET_IPV6
+	select BR2_USE_WCHAR
+	select BR2_ENABLE_LOCALE
+	select BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
+	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+
+config BR2_TOOLCHAIN_USES_UCLIBC
+	bool
+
 choice
 	prompt "Toolchain type"
 	help
@@ -12,6 +27,7 @@ config BR2_TOOLCHAIN_BUILDROOT
 	bool "Buildroot toolchain"
 	depends on !BR2_microblaze && !BR2_aarch64
 	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+	select BR2_TOOLCHAIN_USES_UCLIBC
 
 config BR2_TOOLCHAIN_EXTERNAL
 	bool "External toolchain"
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index 208ccac..7c9b842 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -62,9 +62,7 @@ config BR2_GENERATE_LOCALE
 	# build time.
 	depends on \
 		BR2_TOOLCHAIN_BUILDROOT      || \
-		BR2_TOOLCHAIN_EXTERNAL_GLIBC || \
-		BR2_TOOLCHAIN_CTNG_eglibc    || \
-		BR2_TOOLCHAIN_CTNG_glibc
+		BR2_TOOLCHAIN_USES_GLIBC
 	help
 	  Generate support for a list of locales. Locales can be
 	  specified with or without encoding, when no encoding is
@@ -79,9 +77,7 @@ config BR2_GENERATE_LOCALE
 
 config BR2_NEEDS_GETTEXT
 	bool
-	default y if BR2_TOOLCHAIN_BUILDROOT
-	default y if BR2_TOOLCHAIN_EXTERNAL_UCLIBC
-	default y if BR2_TOOLCHAIN_CTNG_uClibc
+	default y if BR2_TOOLCHAIN_USES_UCLIBC
 
 config BR2_NEEDS_GETTEXT_IF_LOCALE
 	bool
diff --git a/toolchain/toolchain-crosstool-ng/Config.in b/toolchain/toolchain-crosstool-ng/Config.in
index 93c12e9..7cfd8c2 100644
--- a/toolchain/toolchain-crosstool-ng/Config.in
+++ b/toolchain/toolchain-crosstool-ng/Config.in
@@ -7,27 +7,22 @@ choice
 
 config BR2_TOOLCHAIN_CTNG_uClibc
 	bool "uClibc"
+	select BR2_TOOLCHAIN_USES_UCLIBC
 
 # Although eglibc can be configured to opt-out some features,
 # let's not deal with that for the time being, it's complex...
 config BR2_TOOLCHAIN_CTNG_eglibc
 	bool "eglibc"
-	select BR2_LARGEFILE
-	select BR2_INET_IPV6
 	# Our default ct-ng configuration uses eglibc 2.12, which has
 	# native RPC support
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-	select BR2_ENABLE_LOCALE
-	select BR2_USE_WCHAR
+	select BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_TOOLCHAIN_CTNG_glibc
 	bool "glibc"
-	select BR2_LARGEFILE
-	select BR2_INET_IPV6
 	# Our default ct-ng configuration uses glibc 2.14.1, which
 	# does not have native RPC support
-	select BR2_ENABLE_LOCALE
-	select BR2_USE_WCHAR
+	select BR2_TOOLCHAIN_USES_GLIBC
 
 endchoice # C library
 
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 2c1c99b..946063f 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -815,16 +815,11 @@ config BR2_TOOLCHAIN_EXTERNAL_PREFIX
 
 config BR2_TOOLCHAIN_EXTERNAL_GLIBC
 	bool
-	select BR2_LARGEFILE
-	select BR2_INET_IPV6
-	select BR2_USE_WCHAR
-	select BR2_ENABLE_LOCALE
-	select BR2_TOOLCHAIN_HAS_THREADS
-	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+	select BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_TOOLCHAIN_EXTERNAL_UCLIBC
 	bool
+	select BR2_TOOLCHAIN_USES_UCLIBC
 
 if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
 
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (18 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC} Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  9:09   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 21/23] eglibc: new package Thomas Petazzoni
                   ` (2 subsequent siblings)
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

In preparation for the introduction of the eglibc library to the
internal toolchain backend, the options that allow to enable/disable C
library features such as largefile, IPv6, RPC and so on now belong to
the uClibc package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/uclibc/Config.in                  | 77 +++++++++++++++++++++++++++++++
 toolchain/toolchain-buildroot/Config.in.2 | 77 -------------------------------
 2 files changed, 77 insertions(+), 77 deletions(-)

diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 22c70a2..410326b 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -49,6 +49,83 @@ config BR2_UCLIBC_CONFIG
 	  See also docs/README in this package.
 	  If unsure, use the default.
 
+config BR2_TOOLCHAIN_BUILDROOT_LARGEFILE
+	bool "Enable large file (files > 2 GB) support"
+	select BR2_LARGEFILE
+	help
+	  Enable this option if you want your toolchain to support
+	  files bigger than 2 GB.
+
+config BR2_TOOLCHAIN_BUILDROOT_INET_IPV6
+	bool "Enable IPv6 support"
+	select BR2_INET_IPV6
+	help
+	  Enable this option if you want your toolchain to support
+	  IPv6.
+
+config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
+	bool "Enable RPC support"
+	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	help
+	  Enable this option if you want your toolchain to support
+	  RPC (needed for NFS, for example).
+
+config BR2_TOOLCHAIN_BUILDROOT_WCHAR
+	bool "Enable WCHAR support"
+	select BR2_USE_WCHAR
+	help
+	  Enable this option if you want your toolchain to support
+	  wide characters (i.e characters longer than 8 bits, needed
+	  for locale support).
+
+config BR2_TOOLCHAIN_BUILDROOT_LOCALE
+	bool "Enable toolchain locale/i18n support"
+	select BR2_TOOLCHAIN_BUILDROOT_WCHAR
+	select BR2_ENABLE_LOCALE
+	help
+	  Enable this option if you want your toolchain to support
+	  localization and internationalization.
+
+choice
+	prompt "Thread library implementation"
+	default BR2_PTHREADS_NATIVE if !BR2_ARM_OABI && !(BR2_avr32 || BR2_xtensa)
+	default BR2_PTHREADS_OLD
+	help
+	  Use this option to select the thread library implementation
+	  that should be used in your toolchain. Not all thread
+	  variants work with all versions of uClibc, the "linuxthreads
+	  (stable/old)" may be a working fallback if you need
+	  threading at all.
+
+	config BR2_PTHREADS_NONE
+		bool "none"
+
+	config BR2_PTHREADS
+		bool "linuxthreads"
+		depends on !BR2_xtensa
+	        select BR2_TOOLCHAIN_HAS_THREADS
+
+	config BR2_PTHREADS_OLD
+		bool "linuxthreads (stable/old)"
+	        select BR2_TOOLCHAIN_HAS_THREADS
+
+	config BR2_PTHREADS_NATIVE
+		bool "Native POSIX Threading (NPTL)"
+	        select BR2_TOOLCHAIN_HAS_THREADS
+		depends on !BR2_ARM_OABI
+		depends on !BR2_x86_i386
+		depends on !BR2_avr32
+		depends on !BR2_xtensa
+		depends on !BR2_arc
+endchoice
+
+config BR2_PTHREAD_DEBUG
+	bool "Thread library debugging"
+	depends on BR2_PTHREADS || BR2_PTHREADS_OLD || BR2_PTHREADS_NATIVE
+	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
+	help
+	  Build the thread library with debugging enabled.
+
 config BR2_UCLIBC_INSTALL_TEST_SUITE
 	bool "Compile and install uClibc tests"
 	select BR2_PACKAGE_MAKE
diff --git a/toolchain/toolchain-buildroot/Config.in.2 b/toolchain/toolchain-buildroot/Config.in.2
index 422602e..9bbf016 100644
--- a/toolchain/toolchain-buildroot/Config.in.2
+++ b/toolchain/toolchain-buildroot/Config.in.2
@@ -4,43 +4,6 @@ if BR2_TOOLCHAIN_BUILDROOT
 
 comment "Toolchain Options"
 
-config BR2_TOOLCHAIN_BUILDROOT_LARGEFILE
-	bool "Enable large file (files > 2 GB) support"
-	select BR2_LARGEFILE
-	help
-	  Enable this option if you want your toolchain to support
-	  files bigger than 2 GB.
-
-config BR2_TOOLCHAIN_BUILDROOT_INET_IPV6
-	bool "Enable IPv6 support"
-	select BR2_INET_IPV6
-	help
-	  Enable this option if you want your toolchain to support
-	  IPv6.
-
-config BR2_TOOLCHAIN_BUILDROOT_INET_RPC
-	bool "Enable RPC support"
-	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-	help
-	  Enable this option if you want your toolchain to support
-	  RPC (needed for NFS, for example).
-
-config BR2_TOOLCHAIN_BUILDROOT_WCHAR
-	bool "Enable WCHAR support"
-	select BR2_USE_WCHAR
-	help
-	  Enable this option if you want your toolchain to support
-	  wide characters (i.e characters longer than 8 bits, needed
-	  for locale support).
-
-config BR2_TOOLCHAIN_BUILDROOT_LOCALE
-	bool "Enable toolchain locale/i18n support"
-	select BR2_TOOLCHAIN_BUILDROOT_WCHAR
-	select BR2_ENABLE_LOCALE
-	help
-	  Enable this option if you want your toolchain to support
-	  localization and internationalization.
-
 config BR2_TOOLCHAIN_BUILDROOT_CXX
 	bool "Enable C++ support"
 	select BR2_INSTALL_LIBSTDCPP
@@ -58,46 +21,6 @@ config BR2_TOOLCHAIN_BUILDROOT_USE_SSP
 	  See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
 	  for details.
 
-choice
-	prompt "Thread library implementation"
-	default BR2_PTHREADS_NATIVE if !BR2_ARM_OABI && !(BR2_avr32 || BR2_xtensa)
-	default BR2_PTHREADS_OLD
-	help
-	  Use this option to select the thread library implementation
-	  that should be used in your toolchain. Not all thread
-	  variants work with all versions of uClibc, the "linuxthreads
-	  (stable/old)" may be a working fallback if you need
-	  threading at all.
-
-	config BR2_PTHREADS_NONE
-		bool "none"
-
-	config BR2_PTHREADS
-		bool "linuxthreads"
-		depends on !BR2_xtensa
-	        select BR2_TOOLCHAIN_HAS_THREADS
-
-	config BR2_PTHREADS_OLD
-		bool "linuxthreads (stable/old)"
-	        select BR2_TOOLCHAIN_HAS_THREADS
-
-	config BR2_PTHREADS_NATIVE
-		bool "Native POSIX Threading (NPTL)"
-	        select BR2_TOOLCHAIN_HAS_THREADS
-		depends on !BR2_ARM_OABI
-		depends on !BR2_x86_i386
-		depends on !BR2_avr32
-		depends on !BR2_xtensa
-		depends on !BR2_arc
-endchoice
-
-config BR2_PTHREAD_DEBUG
-	bool "Thread library debugging"
-	depends on BR2_PTHREADS || BR2_PTHREADS_OLD || BR2_PTHREADS_NATIVE
-	select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-	help
-	  Build the thread library with debugging enabled.
-
 source "package/elf2flt/Config.in.host"
 
 config BR2_VFP_FLOAT
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 21/23] eglibc: new package
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (19 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  9:11   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend Thomas Petazzoni
  2013-06-30 19:29 ` [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in " Thomas Petazzoni
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

This commit adds a target 'eglibc' package. For now, there is no way
to build this package, the next commit will add the integration of
eglibc into the Buildroot toolchain backend.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/eglibc/eglibc.mk | 94 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100644 package/eglibc/eglibc.mk

diff --git a/package/eglibc/eglibc.mk b/package/eglibc/eglibc.mk
new file mode 100644
index 0000000..ec80d5e
--- /dev/null
+++ b/package/eglibc/eglibc.mk
@@ -0,0 +1,94 @@
+################################################################################
+#
+# eglibc
+#
+################################################################################
+
+EGLIBC_VERSION = 2.17-svnr22064
+EGLIBC_SITE = http://downloads.yoctoproject.org/releases/eglibc/
+EGLIBC_SOURCE = eglibc-$(EGLIBC_VERSION).tar.bz2
+
+# Before eglibc is configured, we must have the first stage
+# cross-compiler and the kernel headers
+EGLIBC_DEPENDENCIES = host-gcc-initial linux-headers host-gawk
+
+# Before eglibc is built, we must have the second stage cross-compiler
+eglibc-build: host-gcc-intermediate
+
+EGLIBC_SUBDIR = build
+
+EGLIBC_INSTALL_STAGING = YES
+
++EGLIBC_INSTALL_STAGING_OPT = install_root=$(STAGING_DIR) install
+
+# Even though we use the autotools-package infrastructure, we have to
+# override the default configure commands for several reasons:
+#
+#  1. We have to build out-of-tree, but we can't use the same
+#     'symbolic link to configure' used with the gcc packages.
+#
+#  2. We have to execute the configure script with bash and not sh.
+#
+define EGLIBC_CONFIGURE_CMDS
+	mkdir -p $(@D)/build
+	# Do the configuration
+	(cd $(@D)/build; \
+		$(TARGET_CONFIGURE_OPTS) \
+		CFLAGS="-O2" CPPFLAGS="" CXXFLAGS="-O2" \
+		$(SHELL) $(@D)/libc/configure \
+		ac_cv_path_BASH_SHELL=/bin/bash \
+		libc_cv_forced_unwind=yes \
+		--target=$(GNU_TARGET_NAME) \
+		--host=$(GNU_TARGET_NAME) \
+		--build=$(GNU_HOST_NAME) \
+		--prefix=/usr \
+		--enable-shared \
+		$(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \
+		--with-pkgversion="Buildroot" \
+		--without-cvs \
+		--disable-profile \
+		--without-gd \
+		--enable-obsolete-rpc \
+		--with-headers=$(STAGING_DIR)/usr/include)
+	# Install headers and start files
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build \
+		install_root=$(STAGING_DIR) \
+		install-bootstrap-headers=yes \
+		install-headers
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/build csu/subdir_lib
+	cp $(@D)/build/csu/crt1.o $(STAGING_DIR)/usr/lib/
+	cp $(@D)/build/csu/crti.o $(STAGING_DIR)/usr/lib/
+	cp $(@D)/build/csu/crtn.o $(STAGING_DIR)/usr/lib/
+	$(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \
+		-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
+endef
+
+
+#
+# We also override the install to target commands since we only want
+# to install the libraries, and nothing more.
+#
+
+EGLIBC_LIBS_LIB = \
+	ld*.so libc.so libcrypt.so libdl.so libgcc_s.so libm.so	   \
+	libnsl.so libpthread.so libresolv.so librt.so libutil.so   \
+	libnss_files.so libnss_dns.so
+
+ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
+EGLIBC_LIBS_LIB += libthread_db.so
+endif
+
+ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
+EGLIBC_LIBS_USR_LIB += libstdc++.so
+endif
+
+define EGLIBC_INSTALL_TARGET_CMDS
+	for libs in $(EGLIBC_LIBS_LIB); do \
+		$(call copy_toolchain_lib_root,$(STAGING_DIR)/,,lib,$$libs,/lib) ; \
+	done
+	for libs in $(EGLIBC_LIBS_USR_LIB); do \
+		$(call copy_toolchain_lib_root,$(STAGING_DIR)/,,lib,$$libs,/usr/lib) ; \
+	done
+endef
+
+$(eval $(autotools-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (20 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 21/23] eglibc: new package Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  9:11   ` Peter Korsgaard
  2013-06-30 19:29 ` [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in " Thomas Petazzoni
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Using the newly introduced 'eglibc' package, this commit enables the
option of building a toolchain using the eglibc C library in the
Buildroot toolchain backend.

In details, this commit:

 * Creates a choice to select uClibc or eglibc in the Buildroot
   toolchain backend (in toolchain/toolchain-buildroot/Config.in), and
   removes the fact that the Buildroot toolchain backend forcefully
   enables uClibc (toolchain/Config.in).

 * Creates a BUILDROOT_UCLIBC variables, which points to the package
   implementing the C library (i.e either 'uclibc' or 'eglibc').

 * Modifies the gcc-final and gcc-intermediate makefiles to use the
   BUILDROOT_UCLIBC variable instead of hardcoding the use of uclibc.

 * Ensures that TLS support is always enabled when building eglibc.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/gcc/Config.in.host                       |  4 +--
 package/gcc/gcc-final/gcc-final.mk               |  2 +-
 package/gcc/gcc-intermediate/gcc-intermediate.mk |  2 +-
 package/uclibc/Config.in                         |  4 +++
 toolchain/Config.in                              |  1 -
 toolchain/toolchain-buildroot.mk                 |  4 +++
 toolchain/toolchain-buildroot/Config.in          | 40 ++++++++++++++++++++++++
 7 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 7ecf2fb..0e26a80 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -114,9 +114,9 @@ config BR2_GCC_SHARED_LIBGCC
 	  Build/install a shared libgcc library
 
 config BR2_GCC_ENABLE_TLS
-	bool "Enable compiler tls support"
+	bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
 	default y
-	depends on BR2_PTHREADS_NATIVE
+	depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_EGLIBC
 	help
 	  Enable the compiler to generate code for accessing
 	  thread local storage variables
diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk
index 1af733f..11af163 100644
--- a/package/gcc/gcc-final/gcc-final.mk
+++ b/package/gcc/gcc-final/gcc-final.mk
@@ -10,7 +10,7 @@ GCC_FINAL_SOURCE  = $(GCC_SOURCE)
 
 HOST_GCC_FINAL_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
-	uclibc
+	$(BUILDROOT_LIBC)
 
 HOST_GCC_FINAL_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
 
diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk
index 3a71671..5460000 100644
--- a/package/gcc/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk
@@ -10,7 +10,7 @@ GCC_INTERMEDIATE_SOURCE  = $(GCC_SOURCE)
 
 HOST_GCC_INTERMEDIATE_DEPENDENCIES = \
 	$(HOST_GCC_COMMON_DEPENDENCIES) \
-	uclibc-configure
+	$(BUILDROOT_LIBC)-configure
 
 HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS)
 
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index 410326b..f309243 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -1,3 +1,5 @@
+if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
+
 comment "uClibc Options"
 
 choice
@@ -241,3 +243,5 @@ config BR2_UCLIBC_X86_TYPE
 	default PENTIUMIII if BR2_x86_pentium3
 	default PENTIUM4   if BR2_x86_pentium4 || BR2_x86_pentium_m || \
 			      BR2_x86_nocona || BR2_x86_core2
+
+endif # BR2_TOOLCHAIN_BUILDROOT_UCLIBC
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 448bccc..53d2573 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -27,7 +27,6 @@ config BR2_TOOLCHAIN_BUILDROOT
 	bool "Buildroot toolchain"
 	depends on !BR2_microblaze && !BR2_aarch64
 	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
-	select BR2_TOOLCHAIN_USES_UCLIBC
 
 config BR2_TOOLCHAIN_EXTERNAL
 	bool "External toolchain"
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index e7241bf..3a05800 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -2,4 +2,8 @@
 # build of binutils, uClibc, kernel headers and all the intermediate
 # gcc steps.
 
+include toolchain/helpers.mk
+
+BUILDROOT_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
+
 toolchain-buildroot: host-gcc-final
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 416695b..396a434 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -2,7 +2,47 @@
 
 if BR2_TOOLCHAIN_BUILDROOT
 source "package/linux-headers/Config.in.host"
+
+choice
+	prompt "C library"
+
+config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
+	bool "uClibc"
+	select BR2_TOOLCHAIN_USES_UCLIBC
+	help
+	  This option selects uClibc as the C library for the
+	  cross-compilation toolchain.
+
+	  http://uclibc.org
+
+config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
+	bool "eglibc (experimental)"
+	depends on BR2_arm    || BR2_armeb    || BR2_aarch64 || \
+		   BR2_i386   || BR2_mips     || BR2_mipsel  || \
+		   BR2_mips64 || BR2_mips64el || BR2_powerpc || \
+		   BR2_sh     || BR2_sh64     || BR2_sparc   || \
+		   BR2_x86_64
+	select BR2_TOOLCHAIN_USES_GLIBC
+	# our eglibc.mk enables RPC support
+	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	help
+	  This option selects eglibc as the C library for the
+	  cross-compilation toolchain.
+
+	  The eglibc support in the Buildroot toolchain backend is
+	  very recent, and therefore marked experimental.
+
+	  http://eglibc.org
+
+endchoice
+
+config BR2_TOOLCHAIN_BUILDROOT_LIBC
+	string
+	default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
+	default "eglibc" if BR2_TOOLCHAIN_BUILDROOT_EGLIBC
+
 source "package/uclibc/Config.in"
+
 source "package/binutils/Config.in.host"
 source "package/gcc/Config.in.host"
 endif
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in Buildroot toolchain backend
  2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
                   ` (21 preceding siblings ...)
  2013-06-30 19:29 ` [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend Thomas Petazzoni
@ 2013-06-30 19:29 ` Thomas Petazzoni
  2013-07-04  9:12   ` Peter Korsgaard
  22 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-06-30 19:29 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 docs/manual/configure.txt | 52 +++++++++++++++++++++++------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/docs/manual/configure.txt b/docs/manual/configure.txt
index 4f9a6bb..e554ff8 100644
--- a/docs/manual/configure.txt
+++ b/docs/manual/configure.txt
@@ -72,11 +72,12 @@ The _internal toolchain backend_ is the backend where Buildroot builds
 by itself a cross-compilation toolchain, before building the userspace
 applications and libraries for your target embedded system.
 
-This backend is the historical backend of Buildroot, and is limited to
-the usage of the http://www.uclibc.org[uClibc C library] (i.e, the
-_glibc_ and _eglibc_ C libraries are not supported by this backend,
-see the _External toolchain backend_ and _Crosstool-NG toolchain
-backend_ for solutions to use either _glibc_ or _eglibc_).
+This backend is the historical backend of Buildroot, and has been
+limited for a long time to the usage of the
+http://www.uclibc.org[uClibc C library]. Support for the _eglibc_ C
+library has been added in 2013 and is at this point. considered
+experimental. See the _External toolchain backend_ and _Crosstool-NG
+toolchain backend_ for other solutions to use _glibc_ or _eglibc_.
 
 Once you have selected this backend, a number of options appear. The
 most important ones allow to:
@@ -99,29 +100,29 @@ most important ones allow to:
    the C library might be using interfaces that are not provided by
    your Linux kernel.
 
- * Change the version and the configuration of the uClibc C
-   library. The default options are usually fine. However, if you
-   really need to specifically customize the configuration of your
-   uClibc C library, you can pass a specific configuration file
-   here. Or alternatively, you can run the +make uclibc-menuconfig+
-   command to get access to uClibc's configuration interface. Note
-   that all packages in Buildroot are tested against the default
-   uClibc configuration bundled in Buildroot: if you deviate from this
-   configuration by removing features from uClibc, some packages may
-   no longer build.
+ * Change the version and the configuration of the uClibc C library
+   (if uClibc is selected). The default options are usually
+   fine. However, if you really need to specifically customize the
+   configuration of your uClibc C library, you can pass a specific
+   configuration file here. Or alternatively, you can run the +make
+   uclibc-menuconfig+ command to get access to uClibc's configuration
+   interface. Note that all packages in Buildroot are tested against
+   the default uClibc configuration bundled in Buildroot: if you
+   deviate from this configuration by removing features from uClibc,
+   some packages may no longer build.
 
  * Change the version of the GCC compiler and binutils.
 
- * Select a number of toolchain options: whether the toolchain should
-   have largefile support (i.e support for files larger than 2 GB on
-   32 bits systems), IPv6 support, RPC support (used mainly for NFS),
-   wide-char support, locale support (for internationalization), C++
-   support, thread support. Depending on which options you choose, the
-   number of userspace applications and libraries visible in Buildroot
-   menus will change: many applications and libraries require certain
-   toolchain options to be enabled. Most packages show a comment when
-   a certain toolchain option is required to be able to enable those
-   packages.
+ * Select a number of toolchain options (uClibc only): whether the
+   toolchain should have largefile support (i.e support for files
+   larger than 2 GB on 32 bits systems), IPv6 support, RPC support
+   (used mainly for NFS), wide-char support, locale support (for
+   internationalization), C++ support, thread support. Depending on
+   which options you choose, the number of userspace applications and
+   libraries visible in Buildroot menus will change: many applications
+   and libraries require certain toolchain options to be enabled. Most
+   packages show a comment when a certain toolchain option is required
+   to be able to enable those packages.
 
 It is worth noting that whenever one of those options is modified,
 then the entire toolchain and system must be rebuilt. See
@@ -137,7 +138,6 @@ Drawbacks of this backend:
 * Rebuilding the toolchain is needed when doing +make clean+, which
   takes time. If you're trying to reduce your build time, consider
   using the _External toolchain backend_.
-* Limited to the _uClibc_ C library.
 
 [[external-toolchain-backend]]
 External toolchain backend
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists
  2013-06-30 19:28 ` [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
@ 2013-07-03  6:59   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  6:59 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The KERNEL_SOURCE configuration option no longer exists in uClibc, so
 Thomas> there's no point in setting it.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly
  2013-06-30 19:28 ` [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly Thomas Petazzoni
@ 2013-07-03  7:00   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  7:00 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The kernel headers are part of the staging directory, so there is no
 Thomas> reason to point the Busybox CFLAGS directly to them.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages
  2013-06-30 19:28 ` [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages Thomas Petazzoni
@ 2013-07-03  7:00   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  7:00 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> In order to convert gcc to the package infrastructure, we need
 Thomas> a way of overriding the name of the make target used for the
 Thomas> installation of host packages, just like we have for target
 Thomas> packages.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping
  2013-06-30 19:28 ` [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
@ 2013-07-03  7:00   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  7:00 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The GCC_STRIP_HOST_BINARIES variable was always defined to
 Thomas> 'nope', which means that the host binaries were never
 Thomas> stripped. Get rid of the corresponding code, which is not in
 Thomas> use.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET
  2013-06-30 19:28 ` [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
@ 2013-07-03  7:00   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  7:00 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The libfloat package was removed in
 Thomas> accbd71154b8815678baa12f21f853ed8478f400, and therefore since
 Thomas> this commit, the LIBFLOAT_TARGET variable is always empty. We
 Thomas> get rid of the stale references to this variable.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference
  2013-06-30 19:28 ` [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
@ 2013-07-03  7:01   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03  7:01 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure
  2013-06-30 19:28 ` [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure Thomas Petazzoni
@ 2013-07-03 20:12   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 20:12 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> +++ b/Config.in.legacy
 Thomas> @@ -86,6 +86,13 @@ config BR2_PACKAGE_LINUX_FIRMWARE_RTL_8712
 Thomas>  #
 Thomas>  # Legacy options since 2013.02
 Thomas>  #
 Thomas> +config BR2_ELF2FLT
 Thomas> +	bool "the elf2flt option has been renamed"
 Thomas> +	select BR2_LEGACY
 Thomas> +	help
 Thomas> +	  The BR2_ELF2FLT option has been renamed to
 Thomas> +	  BR2_PACKAGE_HOST_ELF2FLT due to the conversion of elf2flt to
 Thomas> +	  the package infrastructure.

This should go together with the other 2013.08 options.

Committed with that fixed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 08/23] kernel-headers: migrate to the package infrastructure
  2013-06-30 19:28 ` [Buildroot] [PATCH 08/23] kernel-headers: migrate " Thomas Petazzoni
@ 2013-07-03 20:46   ` Peter Korsgaard
  2013-07-03 21:22     ` Thomas Petazzoni
  2013-07-03 21:24   ` Thomas Petazzoni
  1 sibling, 1 reply; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 20:46 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas>  ...tall-fix-__packed-in-exported-kernel-head.patch |  0
 Thomas>  .../linux-headers/3.3.8/linux-fix-umode_t.patch    |  0
 Thomas>  .../linux-headers/Config.in.host                   |  5 +-
 Thomas>  package/linux-headers/linux-headers.mk             | 31 ++++++++
 Thomas>  toolchain/kernel-headers/kernel-headers.mk         | 87 ----------------------
 Thomas>  toolchain/toolchain-buildroot.mk                   |  1 -
 Thomas>  toolchain/toolchain-buildroot/Config.in            |  2 +-
 Thomas>  toolchain/toolchain-external.mk                    |  1 -
 Thomas>  toolchain/uClibc/uclibc.mk                         | 13 +---
 Thomas>  9 files changed, 38 insertions(+), 102 deletions(-)

 Thomas> +++ b/package/linux-headers/linux-headers.mk
 Thomas> @@ -0,0 +1,31 @@
 Thomas> +#############################################################
 Thomas> +#
 Thomas> +# linux-headers
 Thomas> +#
 Thomas> +#############################################################

These should be 80 chars.

Committed with that fixed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 09/23] gcc: common definitions
  2013-06-30 19:28 ` [Buildroot] [PATCH 09/23] gcc: common definitions Thomas Petazzoni
@ 2013-07-03 21:02   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:02 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas>  package/gcc/Config.in.host | 128 ++++++++++++++++++++++++++++++++++++
 Thomas>  package/gcc/gcc.mk         | 159 +++++++++++++++++++++++++++++++++++++++++++++
 Thomas>  2 files changed, 287 insertions(+)
 Thomas>  create mode 100644 package/gcc/Config.in.host
 Thomas>  create mode 100644 package/gcc/gcc.mk

 Thomas> +++ b/package/gcc/gcc.mk
 Thomas> @@ -0,0 +1,159 @@
 Thomas> +
 Thomas> +# Common variables for the gcc-initial, gcc-intermediate and gcc-final
 Thomas> +# packages.
 Thomas> +

I've changed this to a more "standard" file header and committed,
thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 08/23] kernel-headers: migrate to the package infrastructure
  2013-07-03 20:46   ` Peter Korsgaard
@ 2013-07-03 21:22     ` Thomas Petazzoni
  0 siblings, 0 replies; 52+ messages in thread
From: Thomas Petazzoni @ 2013-07-03 21:22 UTC (permalink / raw)
  To: buildroot

Dear Peter Korsgaard,

On Wed, 03 Jul 2013 22:46:06 +0200, Peter Korsgaard wrote:

>  Thomas> +++ b/package/linux-headers/linux-headers.mk
>  Thomas> @@ -0,0 +1,31 @@
>  Thomas> +#############################################################
>  Thomas> +#
>  Thomas> +# linux-headers
>  Thomas> +#
>  Thomas> +#############################################################
> 
> These should be 80 chars.
> 
> Committed with that fixed, thanks.

Gaah, yes, thanks. This was written before Alexandre converted all the
packages to 80 chars. While I remembered to fix the
gcc-{initial,intermediate,final} packages, I forgot this one. Thanks
for fixing it.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 08/23] kernel-headers: migrate to the package infrastructure
  2013-06-30 19:28 ` [Buildroot] [PATCH 08/23] kernel-headers: migrate " Thomas Petazzoni
  2013-07-03 20:46   ` Peter Korsgaard
@ 2013-07-03 21:24   ` Thomas Petazzoni
  2013-07-03 21:31     ` Peter Korsgaard
  1 sibling, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-07-03 21:24 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 30 Jun 2013 21:28:58 +0200, Thomas Petazzoni wrote:

> --- a/toolchain/kernel-headers/Config.in
> +++ b/package/linux-headers/Config.in.host
> @@ -1,6 +1,5 @@
> -# Choose the kernel headers to use for kernel-headers target. This is
> -# ignored if you are building your own kernel or using the system kernel.
> -#
> +config BR2_PACKAGE_HOST_LINUX_HEADERS
> +	bool

Now that I read this again, I'm wondering why I've added this dummy
hidden Config.in option. It seems useless, no?

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 08/23] kernel-headers: migrate to the package infrastructure
  2013-07-03 21:24   ` Thomas Petazzoni
@ 2013-07-03 21:31     ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:31 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 >> +config BR2_PACKAGE_HOST_LINUX_HEADERS
 >> +	bool

 Thomas> Now that I read this again, I'm wondering why I've added this dummy
 Thomas> hidden Config.in option. It seems useless, no?

Hmm, yes I think it is.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 10/23] gcc-initial: new package
  2013-06-30 19:29 ` [Buildroot] [PATCH 10/23] gcc-initial: new package Thomas Petazzoni
@ 2013-07-03 21:38   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:38 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 11/23] gcc-intermediate: new package
  2013-06-30 19:29 ` [Buildroot] [PATCH 11/23] gcc-intermediate: " Thomas Petazzoni
@ 2013-07-03 21:38   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:38 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 12/23] gcc-final: new package
  2013-06-30 19:29 ` [Buildroot] [PATCH 12/23] gcc-final: " Thomas Petazzoni
@ 2013-07-03 21:38   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:38 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas>  package/gcc/gcc-final/gcc-final.mk | 136 +++++++++++++++++++++++++++++++++++++
 Thomas>  1 file changed, 136 insertions(+)
 Thomas>  create mode 100644 package/gcc/gcc-final/gcc-final.mk

 Thomas> +endif
 Thomas> +
 Thomas> +
 Thomas> +$(eval $(host-autotools-package))

Stripped the extra newline and committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure
  2013-06-30 19:29 ` [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
@ 2013-07-03 21:39   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:39 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction
  2013-06-30 19:29 ` [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction Thomas Petazzoni
@ 2013-07-03 21:40   ` Peter Korsgaard
  2013-07-03 21:45     ` Thomas Petazzoni
  0 siblings, 1 reply; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:40 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Several sub-directories of the gcc code base are in fact not needed
 Thomas> for the Buildroot build: libjava/, libgo/ and gcc/testsuite/ being the
 Thomas> biggest ones. Avoiding their extraction saves quite a bit of disk
 Thomas> space, and compensates a bit the fact that we now extract three times
 Thomas> the gcc source code.

 Thomas> This requires changing the 100-uclibc-conf.patch to no longer patch
 Thomas> files from the libjava/ directory, since this directory is no longer
 Thomas> extracted.
 
 Thomas>  #
 Thomas> +# Custom extract command
 Thomas> +#

I added a short comment that this is purely a disk space optimization,
and committed - Thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction
  2013-07-03 21:40   ` Peter Korsgaard
@ 2013-07-03 21:45     ` Thomas Petazzoni
  2013-07-03 21:52       ` Peter Korsgaard
  0 siblings, 1 reply; 52+ messages in thread
From: Thomas Petazzoni @ 2013-07-03 21:45 UTC (permalink / raw)
  To: buildroot

Dear Peter Korsgaard,

On Wed, 03 Jul 2013 23:40:29 +0200, Peter Korsgaard wrote:

>  Thomas> Several sub-directories of the gcc code base are in fact not
>  Thomas> needed for the Buildroot build: libjava/, libgo/ and
>  Thomas> gcc/testsuite/ being the biggest ones. Avoiding their
>  Thomas> extraction saves quite a bit of disk space, and compensates
>  Thomas> a bit the fact that we now extract three times the gcc
>  Thomas> source code.
> 
>  Thomas> This requires changing the 100-uclibc-conf.patch to no
>  Thomas> longer patch files from the libjava/ directory, since this
>  Thomas> directory is no longer extracted.
>  
>  Thomas>  #
>  Thomas> +# Custom extract command
>  Thomas> +#
> 
> I added a short comment that this is purely a disk space optimization,
> and committed - Thanks.

Besides the disk space optimization, I am also hoping that it reduces a
little bit the time to extract the tarball, but I haven't made
measurements to check if it was really the case.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure
  2013-06-30 19:29 ` [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure Thomas Petazzoni
@ 2013-07-03 21:48   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:48 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas>  package/gcc/gcc-intermediate/gcc-intermediate.mk   |   2 +-
 Thomas>  ...__libc_epoll_pwait-compile-failure-on-x86.patch |   0
 Thomas>  ...x-e500-__fe_nomask_env-use-of-__set_errno.patch |   0
 Thomas>  .../0.9.32.1/uclibc-linuxthreads-errno-fix.patch   |   0
 Thomas>  .../uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch   |   0
 Thomas>  .../uclibc/0.9.32.1/uclibc-unshare.patch           |   0
 Thomas>  .../uclibc-OpenWRT-140-avr32_atomic_fix.patch      |   0
 Thomas>  .../uclibc-bits-time.h-sync-with-glibc-2.16.patch  |   0
 Thomas>  .../0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch  |   0
 Thomas>  .../uclibc/0.9.33.2/uclibc-dup3.patch              |   0
 Thomas>  package/uclibc/Config.in                           | 166 ++++++
 Thomas>  .../uClibc => package/uclibc}/uClibc-0.9.32.config |   0
 Thomas>  .../uClibc => package/uclibc}/uClibc-0.9.33.config |   0
 Thomas>  .../uclibc}/uClibc-snapshot.config                 |   0
 Thomas>  package/uclibc/uclibc.mk                           | 484 ++++++++++++++++
 Thomas>  toolchain/toolchain-buildroot.mk                   |   4 -
 Thomas>  toolchain/toolchain-buildroot/Config.in            |   2 +-
 Thomas>  toolchain/toolchain-crosstool-ng.mk                |   1 -
 Thomas>  toolchain/toolchain-crosstool-ng/crosstool-ng.mk   |   2 +-
 Thomas>  toolchain/toolchain-external.mk                    |   1 -
 Thomas>  toolchain/uClibc/Config.in                         |  97 ----
 Thomas>  toolchain/uClibc/uclibc.mk                         |

You forgot to update docs/manual/customize-uclibc-config.txt. Committed
with that fixed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction
  2013-07-03 21:45     ` Thomas Petazzoni
@ 2013-07-03 21:52       ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-03 21:52 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 >> I added a short comment that this is purely a disk space optimization,
 >> and committed - Thanks.

 Thomas> Besides the disk space optimization, I am also hoping that it reduces a
 Thomas> little bit the time to extract the tarball, but I haven't made
 Thomas> measurements to check if it was really the case.

Yes, that as well. I just wanted to make it clear that there's no
functional reason why we couldn't just extract it all.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR
  2013-06-30 19:29 ` [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR Thomas Petazzoni
@ 2013-07-04  7:07   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  7:07 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The $(O)/toolchain directory, also called $(TOOLCHAIN_DIR) is no
 Thomas> longer needed, as all packages are now built in $(O)/build/, including
 Thomas> gcc and uClibc.

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets
  2013-06-30 19:29 ` [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets Thomas Petazzoni
@ 2013-07-04  7:07   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  7:07 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Instead of using the 'uclibc' target for all toolchain backends,
 Thomas> introduce more sensible target names for the external toolchain and
 Thomas> Crosstool-NG toolchain backend make targets.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES
  2013-06-30 19:29 ` [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
@ 2013-07-04  7:08   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  7:08 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> This finally removes the BR2_HAVE_DEVFILES option, that was used to
 Thomas> install/keep development files on target. With the recent migration of
 Thomas> the internal backend to the package infrastructure, we had anyway lost
 Thomas> the ability to build gcc for the target, and install the uClibc
 Thomas> development files on the target.

 
 Thomas>  target-finalize:
 Thomas> -ifeq ($(BR2_HAVE_DEVFILES),y)
 Thomas> -	( support/scripts/copy.sh $(STAGING_DIR) $(TARGET_DIR) )

We can also get rid of this script completely now. Committed with that
fixed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC}
  2013-06-30 19:29 ` [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC} Thomas Petazzoni
@ 2013-07-04  7:10   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  7:10 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Currently, when we need to do a conditional on the type of C library
 Thomas> used, we need to take into account the three toolchain backends. As we
 Thomas> are going to add eglibc support to the Buildroot toolchain backend, it
 Thomas> would become even uglier, so this patch introduces two new hidden
 Thomas> options: BR2_TOOLCHAIN_USES_UCLIBC and BR2_TOOLCHAIN_USES_GLIBC, that
 Thomas> exist regardless of the toolchain backend. The entire Buildroot code
 Thomas> base is converted to use those options.

 Thomas> Note that we have intentionally created only one option
 Thomas> (BR2_TOOLCHAIN_USES_GLIBC) for both glibc and eglibc, since they are
 Thomas> essentially the same, as far as Buildroot is concerned.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package
  2013-06-30 19:29 ` [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package Thomas Petazzoni
@ 2013-07-04  9:09   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  9:09 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> In preparation for the introduction of the eglibc library to
 Thomas> the internal toolchain backend, the options that allow to
 Thomas> enable/disable C library features such as largefile, IPv6, RPC
 Thomas> and so on now belong to the uClibc package.

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 21/23] eglibc: new package
  2013-06-30 19:29 ` [Buildroot] [PATCH 21/23] eglibc: new package Thomas Petazzoni
@ 2013-07-04  9:11   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  9:11 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> This commit adds a target 'eglibc' package. For now, there is no way
 Thomas> to build this package, the next commit will add the integration of
 Thomas> eglibc into the Buildroot toolchain backend.

Committed, thanks.

 Thomas> +#  2. We have to execute the configure script with bash and not sh.

I think I remember other configure scripts having problems with
dash. Perhaps we should always do this in pkg-autotools.mk?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend
  2013-06-30 19:29 ` [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend Thomas Petazzoni
@ 2013-07-04  9:11   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  9:11 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Using the newly introduced 'eglibc' package, this commit enables the
 Thomas> option of building a toolchain using the eglibc C library in the
 Thomas> Buildroot toolchain backend.

 Thomas> In details, this commit:

 Thomas>  * Creates a choice to select uClibc or eglibc in the Buildroot
 Thomas>    toolchain backend (in toolchain/toolchain-buildroot/Config.in), and
 Thomas>    removes the fact that the Buildroot toolchain backend forcefully
 Thomas>    enables uClibc (toolchain/Config.in).

 Thomas>  * Creates a BUILDROOT_UCLIBC variables, which points to the package
 Thomas>    implementing the C library (i.e either 'uclibc' or 'eglibc').

 Thomas>  * Modifies the gcc-final and gcc-intermediate makefiles to use the
 Thomas>    BUILDROOT_UCLIBC variable instead of hardcoding the use of uclibc.

The variable is called BUILDROOT_LIBC.

Committed with the description adjusted, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

* [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in Buildroot toolchain backend
  2013-06-30 19:29 ` [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in " Thomas Petazzoni
@ 2013-07-04  9:12   ` Peter Korsgaard
  0 siblings, 0 replies; 52+ messages in thread
From: Peter Korsgaard @ 2013-07-04  9:12 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas>  docs/manual/configure.txt | 52 +++++++++++++++++++++++------------------------
 Thomas>  1 file changed, 26 insertions(+), 26 deletions(-)

 Thomas> diff --git a/docs/manual/configure.txt b/docs/manual/configure.txt
 Thomas> index 4f9a6bb..e554ff8 100644
 Thomas> --- a/docs/manual/configure.txt
 Thomas> +++ b/docs/manual/configure.txt
 Thomas> @@ -72,11 +72,12 @@ The _internal toolchain backend_ is the backend where Buildroot builds
 Thomas>  by itself a cross-compilation toolchain, before building the userspace
 Thomas>  applications and libraries for your target embedded system.
 
 Thomas> -This backend is the historical backend of Buildroot, and is limited to
 Thomas> -the usage of the http://www.uclibc.org[uClibc C library] (i.e, the
 Thomas> -_glibc_ and _eglibc_ C libraries are not supported by this backend,
 Thomas> -see the _External toolchain backend_ and _Crosstool-NG toolchain
 Thomas> -backend_ for solutions to use either _glibc_ or _eglibc_).
 Thomas> +This backend is the historical backend of Buildroot, and has been
 Thomas> +limited for a long time to the usage of the
 Thomas> +http://www.uclibc.org[uClibc C library]. Support for the _eglibc_ C
 Thomas> +library has been added in 2013 and is at this point. considered

The '.' after point shouldn't be there.

Committed with that fixed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2013-07-04  9:12 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-30 19:28 [Buildroot] [PATCH 00/23] Convert the internal toolchain backend to packages, add eglibc support Thomas Petazzoni
2013-06-30 19:28 ` [Buildroot] [PATCH 01/23] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
2013-07-03  6:59   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 02/23] busybox: don't use kernel headers directly Thomas Petazzoni
2013-07-03  7:00   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 03/23] package: allow to override the make install target for host packages Thomas Petazzoni
2013-07-03  7:00   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 04/23] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
2013-07-03  7:00   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 05/23] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
2013-07-03  7:00   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 06/23] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
2013-07-03  7:01   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 07/23] elf2flt: convert to the package infrastructure Thomas Petazzoni
2013-07-03 20:12   ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 08/23] kernel-headers: migrate " Thomas Petazzoni
2013-07-03 20:46   ` Peter Korsgaard
2013-07-03 21:22     ` Thomas Petazzoni
2013-07-03 21:24   ` Thomas Petazzoni
2013-07-03 21:31     ` Peter Korsgaard
2013-06-30 19:28 ` [Buildroot] [PATCH 09/23] gcc: common definitions Thomas Petazzoni
2013-07-03 21:02   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 10/23] gcc-initial: new package Thomas Petazzoni
2013-07-03 21:38   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 11/23] gcc-intermediate: " Thomas Petazzoni
2013-07-03 21:38   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 12/23] gcc-final: " Thomas Petazzoni
2013-07-03 21:38   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 13/23] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
2013-07-03 21:39   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 14/23] gcc-initial, gcc-intermediate, gcc-final: optimize extraction Thomas Petazzoni
2013-07-03 21:40   ` Peter Korsgaard
2013-07-03 21:45     ` Thomas Petazzoni
2013-07-03 21:52       ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 15/23] uclibc: convert to the package infrastructure Thomas Petazzoni
2013-07-03 21:48   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 16/23] Remove TOOLCHAIN_DIR Thomas Petazzoni
2013-07-04  7:07   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 17/23] Use more sensible names for the external/ctng targets Thomas Petazzoni
2013-07-04  7:07   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 18/23] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
2013-07-04  7:08   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 19/23] Introduce BR2_TOOLCHAIN_USES_{UCLIBC, GLIBC} Thomas Petazzoni
2013-07-04  7:10   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 20/23] uclibc: move configuration options into the package Thomas Petazzoni
2013-07-04  9:09   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 21/23] eglibc: new package Thomas Petazzoni
2013-07-04  9:11   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 22/23] eglibc: enable support in the Buildroot toolchain backend Thomas Petazzoni
2013-07-04  9:11   ` Peter Korsgaard
2013-06-30 19:29 ` [Buildroot] [PATCH 23/23] docs/manual: update to mention eglibc support in " Thomas Petazzoni
2013-07-04  9:12   ` Peter Korsgaard

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.