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

Hello,

This is the first RFC of the patch set that converts the internal
Buildroot toolchain backend to the package infrastructure. It converts
elf2flt, the kernel headers, the gcc and the uclibc build logic to
packages.

The code is also available from:

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

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, 10 and 11 introduce the gcc-initial, gcc-intermediate and
   gcc packages. At this point, they are not used by Buildroot.

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

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

 * Patch 14 converts uClibc to the package infrastructure.

 * Patch 15 to 18 make some followup cleanups.

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 code of the gcc-initial, gcc-intermediate and gcc packages
   could benefit from some factorization. For now, they are completely
   independent from each other. I've tried doing some factorization
   like GCC_INITIAL_SITE = $(GCC_SITE), but ran into issues (like
   GCC_SITE not being defined by the time GCC_INITIAL_SITE uses it or
   something like that). This is an area where a bit of
   help/suggestions would be welcome.

 * I've tested a few configurations like minimal ARM toolchain,
   full-blown ARM toolchain, ARC toolchain, but I certainly haven't
   tested all configurations. Don't hesitate to test this patch set
   with your existing configurations and report success/issues.

 * I haven't converted the code that installs the uClibc testsuite,
   even though the corresponding Config.in option is still
   there. Doing this conversion is on my TODO-list.

 * 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.

For information, the sequence of steps when building is now:

>>> host-gcc 4.7.3 Extracting
>>> host-gcc 4.7.3 Patching package//gcc
>>> host-gcc 4.7.3 Updating config.sub and config.guess
>>> host-gcc 4.7.3 Patching libtool
>>> host-gmp 5.1.2 Extracting
>>> host-gmp 5.1.2 Patching package//gmp
>>> host-gmp 5.1.2 Updating config.sub and config.guess
>>> host-gmp 5.1.2 Patching libtool
>>> host-m4 1.4.16 Extracting
>>> host-m4 1.4.16 Patching package//m4
>>> host-m4 1.4.16 Updating config.sub and config.guess
>>> host-m4 1.4.16 Patching libtool
>>> host-m4 1.4.16 Configuring
>>> host-m4 1.4.16 Building
>>> host-m4 1.4.16 Installing to host directory
>>> host-gmp 5.1.2 Configuring
>>> host-gmp 5.1.2 Building
>>> host-gmp 5.1.2 Installing to host directory
>>> host-mpfr 3.1.2 Extracting
>>> host-mpfr 3.1.2 Patching package//mpfr
>>> host-mpfr 3.1.2 Updating config.sub and config.guess
>>> host-mpfr 3.1.2 Patching libtool
>>> host-mpfr 3.1.2 Configuring
>>> host-mpfr 3.1.2 Building
>>> host-mpfr 3.1.2 Installing to host directory
>>> host-gcc-intermediate 4.7.3 Extracting
>>> host-gcc-intermediate 4.7.3 Patching package//gcc-intermediate
>>> host-gcc-intermediate 4.7.3 Updating config.sub and config.guess
>>> host-gcc-intermediate 4.7.3 Patching libtool
>>> uclibc 0.9.33.2 Extracting
>>> uclibc 0.9.33.2 Patching package//uclibc
>>> host-gcc-initial 4.7.3 Extracting
>>> host-gcc-initial 4.7.3 Patching package//gcc-initial
>>> host-gcc-initial 4.7.3 Updating config.sub and config.guess
>>> host-gcc-initial 4.7.3 Patching libtool
>>> host-binutils 2.21.1 Extracting
>>> host-binutils 2.21.1 Patching package//binutils
>>> host-binutils 2.21.1 Updating config.sub and config.guess
>>> host-binutils 2.21.1 Patching libtool
>>> host-binutils 2.21.1 Configuring
>>> host-binutils 2.21.1 Building
>>> host-binutils 2.21.1 Installing to host directory
>>> host-mpc 1.0.1 Extracting
>>> host-mpc 1.0.1 Patching package//mpc
>>> host-mpc 1.0.1 Updating config.sub and config.guess
>>> host-mpc 1.0.1 Patching libtool
>>> host-automake 1.11.6 Extracting
>>> host-automake 1.11.6 Patching package//automake
>>> host-automake 1.11.6 Updating config.sub and config.guess
>>> host-automake 1.11.6 Patching libtool
>>> host-autoconf 2.68 Extracting
>>> host-autoconf 2.68 Patching package//autoconf
>>> host-autoconf 2.68 Updating config.sub and config.guess
>>> host-autoconf 2.68 Patching libtool
>>> host-libtool 2.4.2 Extracting
>>> host-libtool 2.4.2 Patching package//libtool
>>> host-libtool 2.4.2 Updating config.sub and config.guess
>>> host-libtool 2.4.2 Configuring
>>> host-libtool 2.4.2 Building
>>> host-libtool 2.4.2 Installing to host directory
>>> host-autoconf 2.68 Configuring
>>> host-autoconf 2.68 Building
>>> host-autoconf 2.68 Installing to host directory
>>> host-automake 1.11.6 Configuring
>>> host-automake 1.11.6 Building
>>> host-automake 1.11.6 Installing to host directory
>>> host-mpc 1.0.1 Autoreconfiguring
>>> host-mpc 1.0.1 Configuring
>>> host-mpc 1.0.1 Building
>>> host-mpc 1.0.1 Installing to host directory
>>> host-gcc-initial 4.7.3 Configuring
>>> host-gcc-initial 4.7.3 Building
>>> host-gcc-initial 4.7.3 Installing to host directory
>>> linux-headers 3.9.7 Extracting
>>> linux-headers 3.9.7 Patching package//linux-headers
>>> linux-headers 3.9.7 Configuring
>>> linux-headers 3.9.7 Building
>>> linux-headers 3.9.7 Installing to staging directory
>>> linux-headers 3.9.7 Installing to target
>>> uclibc 0.9.33.2 Configuring
>>> host-gcc-intermediate 4.7.3 Configuring
>>> host-gcc-intermediate 4.7.3 Building
>>> host-gcc-intermediate 4.7.3 Installing to host directory
>>> uclibc 0.9.33.2 Building
>>> uclibc 0.9.33.2 Installing to staging directory
>>> uclibc 0.9.33.2 Installing to target
>>> host-gcc 4.7.3 Configuring
>>> host-gcc 4.7.3 Building
>>> host-gcc 4.7.3 Installing to host directory
>>> busybox 1.21.0 Extracting
>>> busybox 1.21.0 Patching package//busybox
>>> busybox 1.21.0 Configuring
>>> busybox 1.21.0 Building
>>> busybox 1.21.0 Installing to target
[...]

Best regards,

Thomas

Thomas Petazzoni (18):
  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-initial: new package
  gcc-intermediate: new package
  gcc: new package
  toolchain: switch to using gcc through package infrastructure
  gcc-initial, gcc-intermediate, gcc: optimize extraction
  uclibc: convert to the package infrastructure
  Remove TOOLCHAIN_DIR
  Use the 'host-gcc' target instead of the 'uclibc' target
  Remove BR2_HAVE_DEVFILES
  Remove toolchain/toolchain-buildroot.mk

 Config.in                                          |   8 -
 Config.in.legacy                                   |   7 +
 Makefile                                           |  24 +-
 package/Config.in                                  |   1 -
 package/busybox/busybox.mk                         |   3 +-
 package/dbus/dbus.mk                               |   2 -
 .../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/gcc-initial/gcc-initial.mk                 | 149 +++++
 package/gcc-intermediate/gcc-intermediate.mk       | 158 +++++
 .../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    |   8 +-
 package/gcc/gcc.mk                                 | 247 ++++++++
 package/libdnet/libdnet.mk                         |   2 -
 package/libglib2/libglib2.mk                       |   2 -
 ...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/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-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/taglib/taglib.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                           | 435 ++++++++++++++
 package/usbutils/usbutils.mk                       |   2 -
 package/xenomai/xenomai.mk                         |   2 -
 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                   |   6 -
 toolchain/toolchain-buildroot/Config.in            |   6 +-
 toolchain/toolchain-buildroot/Config.in.2          |   2 +-
 toolchain/toolchain-crosstool-ng.mk                |   3 -
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk   |  14 +-
 toolchain/toolchain-external.mk                    |   4 -
 toolchain/toolchain-external/ext-tool.mk           |   6 +-
 toolchain/uClibc/Config.in                         |  97 ----
 toolchain/uClibc/uclibc.mk                         | 610 -------------------
 132 files changed, 1259 insertions(+), 1833 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%)
 create mode 100644 package/gcc-initial/gcc-initial.mk
 create mode 100644 package/gcc-intermediate/gcc-intermediate.mk
 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 (96%)
 create mode 100644 package/gcc/gcc.mk
 rename toolchain/kernel-headers/linux-3.0.83-headers_install-fix-__packed-in-exported-kernel-head.patch => package/linux-headers/3.0.83/linux-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/toolchain-buildroot.mk
 delete mode 100644 toolchain/uClibc/Config.in
 delete mode 100644 toolchain/uClibc/uclibc.mk

-- 
1.8.1.2

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

* [Buildroot] [RFCv1 01/18] uClibc: KERNEL_SOURCE no longer exists
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 02/18] busybox: don't use kernel headers directly Thomas Petazzoni
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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 da1830f..5a84c5d 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] 21+ messages in thread

* [Buildroot] [RFCv1 02/18] busybox: don't use kernel headers directly
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 01/18] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 03/18] package: allow to override the make install target for host packages Thomas Petazzoni
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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] 21+ messages in thread

* [Buildroot] [RFCv1 03/18] package: allow to override the make install target for host packages
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 01/18] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 02/18] busybox: don't use kernel headers directly Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 04/18] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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] 21+ messages in thread

* [Buildroot] [RFCv1 04/18] toolchain/gcc: remove dead code related to host binary stripping
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 03/18] package: allow to override the make install target for host packages Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 05/18] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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] 21+ messages in thread

* [Buildroot] [RFCv1 05/18] toolchain: remove references to LIBFLOAT_TARGET
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 04/18] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 06/18] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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 5a84c5d..c8fc992 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -437,7 +437,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] 21+ messages in thread

* [Buildroot] [RFCv1 06/18] toolchain/gcc: get rid of stale variable reference
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (4 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 05/18] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 07/18] elf2flt: convert to the package infrastructure Thomas Petazzoni
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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] 21+ messages in thread

* [Buildroot] [RFCv1 07/18] elf2flt: convert to the package infrastructure
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (5 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 06/18] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 08/18] kernel-headers: migrate " Thomas Petazzoni
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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] 21+ messages in thread

* [Buildroot] [RFCv1 08/18] kernel-headers: migrate to the package infrastructure
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (6 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 07/18] elf2flt: convert to the package infrastructure Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 09/18] gcc-initial: new package Thomas Petazzoni
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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.83-headers_install-fix-__packed-in-exported-kernel-head.patch => package/linux-headers/3.0.83/linux-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.83-headers_install-fix-__packed-in-exported-kernel-head.patch b/package/linux-headers/3.0.83/linux-headers_install-fix-__packed-in-exported-kernel-head.patch
similarity index 100%
rename from toolchain/kernel-headers/linux-3.0.83-headers_install-fix-__packed-in-exported-kernel-head.patch
rename to package/linux-headers/3.0.83/linux-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 de0c703..b40af0b 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 c8fc992..b2cf7c9 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' \
@@ -414,7 +414,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)" \
@@ -429,7 +429,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
@@ -473,11 +473,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) \
@@ -536,7 +531,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] 21+ messages in thread

* [Buildroot] [RFCv1 09/18] gcc-initial: new package
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (7 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 08/18] kernel-headers: migrate " Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 10/18] gcc-intermediate: " Thomas Petazzoni
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 UTC (permalink / raw)
  To: buildroot

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

diff --git a/package/gcc-initial/gcc-initial.mk b/package/gcc-initial/gcc-initial.mk
new file mode 100644
index 0000000..bf776b1
--- /dev/null
+++ b/package/gcc-initial/gcc-initial.mk
@@ -0,0 +1,141 @@
+#############################################################
+#
+# gcc-initial
+#
+#############################################################
+
+# FIXME
+GCC_INITIAL_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
+GCC_INITIAL_SITE    = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_INITIAL_VERSION)
+GCC_INITIAL_SOURCE  = gcc-$(GCC_INITIAL_VERSION).tar.bz2
+
+HOST_GCC_INITIAL_DEPENDENCIES = host-binutils
+
+define HOST_GCC_INITIAL_XTENSA_OVERLAY_EXTRACT
+        tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
+                $(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
+endef
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_INITIAL_POST_EXTRACT_CMDS += HOST_GCC_INITIAL_XTENSA_OVERLAY_EXTRACT
+endif
+
+# Share patches with the 'gcc' package
+define HOST_GCC_INITIAL_APPLY_PATCHES
+	support/scripts/apply-patches.sh $(@D) package/gcc/$(GCC_INITIAL_VERSION) \*.patch
+endef
+
+HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_INITIAL_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
+
+define HOST_GCC_INITIAL_CONFIGURE_SYMLINK
+	mkdir -p $(@D)/build
+	ln -s ../configure $(@D)/build/configure
+endef
+
+HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_INITIAL_CONFIGURE_SYMLINK
+
+HOST_GCC_INITIAL_CONF_OPT = \
+	--target=$(GNU_TARGET_NAME) \
+	--enable-languages=c \
+	--with-sysroot=$(STAGING_DIR) \
+	--disable-__cxa_atexit \
+	--with-gnu-ld \
+	--disable-libssp \
+	--disable-multilib \
+	--with-gmp=$(HOST_DIR)/usr \
+	--with-mpfr=$(HOST_DIR)/usr \
+	--disable-shared \
+	--without-headers \
+	--with-newlib \
+	--disable-largefile \
+	--disable-nls
+
+# 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_INITIAL_CONF_OPT += --disable-target-optspace
+endif
+else
+HOST_GCC_INITIAL_CONF_OPT += --enable-target-optspace
+endif
+
+# gcc 4.6.x quadmath requires wchar
+ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+HOST_GCC_INITIAL_CONF_OPT += --disable-libquadmath
+endif
+
+# Do we really care about OpenMP support in gcc-initial?
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_INITIAL_CONF_OPT += --enable-libgomp
+else
+HOST_GCC_INITIAL_CONF_OPT += --disable-libgomp
+endif
+
+ifeq ($(BR2_GCC_ENABLE_TLS),y)
+HOST_GCC_INITIAL_CONF_OPT += --enable-tls
+else
+HOST_GCC_INITIAL_CONF_OPT += --disable-tls
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+HOST_GCC_INITIAL_CONF_OPT += --disable-threads --disable-libitm --disable-libatomic
+else
+HOST_GCC_INITIAL_CONF_OPT += --enable-threads
+endif
+
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_INITIAL_CONF_OPT += --disable-decimal-float
+endif
+
+ifeq ($(BR2_GCC_NEEDS_MPC),y)
+HOST_GCC_INITIAL_DEPENDENCIES += host-mpc
+HOST_GCC_INITIAL_CONF_OPT += --with-mpc=$(HOST_DIR)/usr
+endif
+
+ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
+HOST_GCC_INITIAL_DEPENDENCIES += host-flex host-bison
+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)
+HOST_GCC_INITIAL_CONF_OPT += --with-float=soft
+endif
+endif
+
+# Determine arch/tune/abi/cpu options
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
+HOST_GCC_INITIAL_CONF_OPT += --with-arch=$(BR2_GCC_TARGET_ARCH)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
+HOST_GCC_INITIAL_CONF_OPT += --with-tune=$(BR2_GCC_TARGET_TUNE)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
+HOST_GCC_INITIAL_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_INITIAL_CONF_OPT += --with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+else
+HOST_GCC_INITIAL_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_INITIAL_CONF_OPT += \
+	--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
+	--with-bugurl="http://bugs.buildroot.net/"
+endif
+
+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] 21+ messages in thread

* [Buildroot] [RFCv1 10/18] gcc-intermediate: new package
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (8 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 09/18] gcc-initial: new package Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 11/18] gcc: " Thomas Petazzoni
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 UTC (permalink / raw)
  To: buildroot

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

diff --git a/package/gcc-intermediate/gcc-intermediate.mk b/package/gcc-intermediate/gcc-intermediate.mk
new file mode 100644
index 0000000..6418b9d
--- /dev/null
+++ b/package/gcc-intermediate/gcc-intermediate.mk
@@ -0,0 +1,150 @@
+#############################################################
+#
+# gcc-intermediate
+#
+#############################################################
+
+# FIXME
+GCC_INTERMEDIATE_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
+GCC_INTERMEDIATE_SITE    = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_INTERMEDIATE_VERSION)
+GCC_INTERMEDIATE_SOURCE  = gcc-$(GCC_INTERMEDIATE_VERSION).tar.bz2
+
+define HOST_GCC_INTERMEDIATE_XTENSA_OVERLAY_EXTRACT
+        tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
+                $(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
+endef
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_INTERMEDIATE_POST_EXTRACT_CMDS += HOST_GCC_INTERMEDIATE_XTENSA_OVERLAY_EXTRACT
+endif
+
+# Share patches with the 'gcc' package
+define HOST_GCC_INTERMEDIATE_APPLY_PATCHES
+	support/scripts/apply-patches.sh $(@D) package/gcc/$(GCC_INTERMEDIATE_VERSION) \*.patch
+endef
+
+HOST_GCC_INTERMEDIATE_POST_PATCH_HOOKS += HOST_GCC_INTERMEDIATE_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
+
+define HOST_GCC_INTERMEDIATE_CONFIGURE_SYMLINK
+	mkdir -p $(@D)/build
+	ln -s ../configure $(@D)/build/configure
+endef
+
+HOST_GCC_INTERMEDIATE_PRE_CONFIGURE_HOOKS += HOST_GCC_INTERMEDIATE_CONFIGURE_SYMLINK
+
+# configuration options are the same as the one from gcc-initial, except:
+#  --enable-shared is passed instead of --disable-shared
+#  --without-headers is not passed
+#  --with-newlib is not passed
+
+HOST_GCC_INTERMEDIATE_CONF_OPT = \
+	--target=$(GNU_TARGET_NAME) \
+	--enable-languages=c \
+	--with-sysroot=$(STAGING_DIR) \
+	--disable-__cxa_atexit \
+	--with-gnu-ld \
+	--disable-libssp \
+	--disable-multilib \
+	--with-gmp=$(HOST_DIR)/usr \
+	--with-mpfr=$(HOST_DIR)/usr \
+	--disable-largefile \
+	--disable-nls
+
+# 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_INTERMEDIATE_CONF_OPT += --disable-target-optspace
+endif
+else
+HOST_GCC_INTERMEDIATE_CONF_OPT += --enable-target-optspace
+endif
+
+# gcc 4.6.x quadmath requires wchar
+ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --disable-libquadmath
+endif
+
+# Do we really need OpenMP support in gcc-intermediate?
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --enable-libgomp
+else
+HOST_GCC_INTERMEDIATE_CONF_OPT += --disable-libgomp
+endif
+
+ifeq ($(BR2_GCC_ENABLE_TLS),y)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --enable-tls
+else
+HOST_GCC_INTERMEDIATE_CONF_OPT += --disable-tls
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --disable-threads --disable-libitm --disable-libatomic
+else
+HOST_GCC_INTERMEDIATE_CONF_OPT += --enable-threads
+endif
+
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --disable-decimal-float
+endif
+
+ifeq ($(BR2_GCC_NEEDS_MPC),y)
+HOST_GCC_INTERMEDIATE_DEPENDENCIES += host-mpc
+HOST_GCC_INTERMEDIATE_CONF_OPT += --with-mpc=$(HOST_DIR)/usr
+endif
+
+ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
+HOST_GCC_INTERMEDIATE_DEPENDENCIES += host-flex host-bison
+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)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --with-float=soft
+endif
+endif
+
+# Determine arch/tune/abi/cpu options
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --with-arch=$(BR2_GCC_TARGET_ARCH)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
+HOST_GCC_INTERMEDIATE_CONF_OPT += --with-tune=$(BR2_GCC_TARGET_TUNE)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
+HOST_GCC_INTERMEDIATE_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_INTERMEDIATE_CONF_OPT += --with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+else
+HOST_GCC_INTERMEDIATE_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_INTERMEDIATE_CONF_OPT += \
+	--with-pkgversion="Buildroot $(BR2_VERSION_FULL)" \
+	--with-bugurl="http://bugs.buildroot.net/"
+endif
+
+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
+
+HOST_GCC_INTERMEDIATE_DEPENDENCIES = uclibc-configured
+
+$(eval $(host-autotools-package))
-- 
1.8.1.2

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

* [Buildroot] [RFCv1 11/18] gcc: new package
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (9 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 10/18] gcc-intermediate: " Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 12/18] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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         | 239 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 367 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..e07e6ea
--- /dev/null
+++ b/package/gcc/gcc.mk
@@ -0,0 +1,239 @@
+#############################################################
+#
+# gcc
+#
+#############################################################
+
+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
+
+HOST_GCC_DEPENDENCIES = host-gmp host-mpfr uclibc
+
+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
+
+ifneq ($(call qstrip, $(BR2_XTENSA_CORE_NAME)),)
+HOST_GCC_POST_EXTRACT_CMDS += HOST_GCC_XTENSA_OVERLAY_EXTRACT
+endif
+
+# gcc doesn't support in-tree build, so we create a 'build'
+# subdirectory in the gcc sources, and build from there.
+HOST_GCC_SUBDIR = build
+
+define HOST_GCC_CONFIGURE_SYMLINK
+	mkdir -p $(@D)/build
+	ln -s ../configure $(@D)/build/configure
+endef
+
+HOST_GCC_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
+
+# Languages supported by the cross-compiler
+GCC_CROSS_LANGUAGES-y = c
+GCC_CROSS_LANGUAGES-$(BR2_INSTALL_LIBSTDCPP) += c++
+GCC_CROSS_LANGUAGES-$(BR2_GCC_CROSS_FORTRAN) += fortran
+GCC_CROSS_LANGUAGES-$(BR2_GCC_CROSS_OBJC)    += objc
+GCC_CROSS_LANGUAGES = $(subst $(space),$(comma),$(GCC_CROSS_LANGUAGES-y))
+
+HOST_GCC_CONF_OPT = \
+	--target=$(GNU_TARGET_NAME) \
+	--enable-languages=$(GCC_CROSS_LANGUAGES) \
+	--with-sysroot=$(STAGING_DIR) \
+	--disable-__cxa_atexit \
+	--with-gnu-ld \
+	--disable-libssp \
+	--disable-multilib \
+	--with-gmp=$(HOST_DIR)/usr \
+	--with-mpfr=$(HOST_DIR)/usr \
+	--with-build-time-tools=$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/bin
+
+# Dependency on MPC
+ifeq ($(BR2_GCC_NEEDS_MPC),y)
+HOST_GCC_DEPENDENCIES += host-mpc
+HOST_GCC_CONF_OPT += --with-mpc=$(HOST_DIR)/usr
+endif
+
+ifeq ($(BR2_GCC_VERSION_4_4_7_ARC),y)
+HOST_GCC_DEPENDENCIES += host-flex host-bison
+endif
+
+# Branding works on >= 4.3
+ifneq ($(findstring x4.2.,x$(GCC_VERSION)),x4.2.)
+HOST_GCC_CONF_OPT += \
+	--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.)
+HOST_GCC_CONF_OPT += --disable-target-optspace
+endif
+else
+HOST_GCC_CONF_OPT += --enable-target-optspace
+endif
+
+# gcc 4.6.x quadmath requires wchar
+ifneq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
+HOST_GCC_CONF_OPT += --disable-libquadmath
+endif
+
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_CONF_OPT += --enable-libgomp
+else
+HOST_GCC_CONF_OPT += --disable-libgomp
+endif
+
+ifeq ($(BR2_GCC_ENABLE_TLS),y)
+HOST_GCC_CONF_OPT += --enable-tls
+else
+HOST_GCC_CONF_OPT += --disable-tls
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+HOST_GCC_CONF_OPT += --disable-threads --disable-libitm --disable-libatomic
+else
+HOST_GCC_CONF_OPT += --enable-threads
+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_CONF_OPT += --with-float=soft
+endif
+endif
+
+ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
+HOST_GCC_CONF_OPT += --disable-decimal-float
+endif
+
+ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
+HOST_GCC_CONF_OPT += --enable-shared
+else
+HOST_GCC_CONF_OPT += --disable-shared
+endif
+
+# Determine arch/tune/abi/cpu options
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
+HOST_GCC_CONF_OPT += --with-arch=$(BR2_GCC_TARGET_ARCH)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
+HOST_GCC_CONF_OPT += --with-tune=$(BR2_GCC_TARGET_TUNE)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
+HOST_GCC_CONF_OPT += --with-abi=$(BR2_GCC_TARGET_ABI)
+endif
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
+HOST_GCC_CONF_OPT += --with-cpu=$(BR2_GCC_TARGET_CPU)
+endif
+
+# AVR32 GCC special configuration
+ifeq ($(BR2_avr32),y)
+HOST_GCC_CONF_OPT += --disable-libmudflap
+endif
+
+# Disable mudflap and enable proper double/long double for SPE ABI
+ifeq ($(BR2_powerpc_SPE),y)
+HOST_GCC_CONF_OPT += \
+	--disable-libmudflap \
+	--enable-e500_double \
+	--with-long-double-128
+endif
+
+# End with user-provided options, so that they can override previously
+# defined options.
+HOST_GCC_CONF_OPT += \
+	$(call qstrip,$(BR2_EXTRA_GCC_CONFIG_OPTIONS))
+
+# Handle lib64
+define HOST_GCC_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_POST_INSTALL_HOOKS += HOST_GCC_HANDLE_LIB64
+
+# Make sure we have 'cc'
+define HOST_GCC_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_POST_INSTALL_HOOKS += HOST_GCC_CREATE_CC_SYMLINKS
+
+# Create <arch>-linux-<tool> symlinks
+define HOST_GCC_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_POST_INSTALL_HOOKS += HOST_GCC_CREATE_SIMPLE_SYMLINKS
+
+# Cannot use the HOST_GCC_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_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_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_LIBGCC
+endif
+
+# Handle the installation of libraries in /usr/lib
+HOST_GCC_USR_LIBS =
+
+ifeq ($(BR2_GCC_SHARED_LIBGCC)$(BR2_INSTALL_LIBSTDCPP),yy)
+HOST_GCC_USR_LIBS += libstdc++
+endif
+
+ifeq ($(BR2_GCC_ENABLE_OPENMP),y)
+HOST_GCC_USR_LIBS += libgomp
+endif
+
+ifneq ($(HOST_GCC_USR_LIBS),)
+define HOST_GCC_INSTALL_USR_LIBS
+	for i in $(HOST_GCC_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_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_USR_LIBS
+endif
+
+
+$(eval $(host-autotools-package))
-- 
1.8.1.2

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

* [Buildroot] [RFCv1 12/18] toolchain: switch to using gcc through package infrastructure
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (10 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 11/18] gcc: " Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 13/18] gcc-initial, gcc-intermediate, gcc: optimize extraction Thomas Petazzoni
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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                   |   1 -
 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, 17 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..ef191ad 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 += host-gcc
 else
 BASE_TARGETS += uclibc
 endif
diff --git a/package/Config.in b/package/Config.in
index 0eb6a9c..2ce33e9 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -72,7 +72,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..2f2ea56 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,4 +1,3 @@
 # Include files required for the internal toolchain backend
 
-include toolchain/gcc/gcc-uclibc-4.x.mk
 include toolchain/uClibc/uclibc.mk
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 b2cf7c9..d4bbf48 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -382,14 +382,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)" \
@@ -418,26 +418,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)" \
@@ -453,9 +447,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)" \
@@ -518,7 +512,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)
 
@@ -531,7 +525,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] 21+ messages in thread

* [Buildroot] [RFCv1 13/18] gcc-initial, gcc-intermediate, gcc: optimize extraction
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (11 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 12/18] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 14/18] uclibc: convert to the package infrastructure Thomas Petazzoni
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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-initial/gcc-initial.mk           |  8 ++++++++
 package/gcc-intermediate/gcc-intermediate.mk |  8 ++++++++
 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.mk                           |  8 ++++++++
 9 files changed, 24 insertions(+), 122 deletions(-)

diff --git a/package/gcc-initial/gcc-initial.mk b/package/gcc-initial/gcc-initial.mk
index bf776b1..c92a1ea 100644
--- a/package/gcc-initial/gcc-initial.mk
+++ b/package/gcc-initial/gcc-initial.mk
@@ -11,6 +11,14 @@ GCC_INITIAL_SOURCE  = gcc-$(GCC_INITIAL_VERSION).tar.bz2
 
 HOST_GCC_INITIAL_DEPENDENCIES = host-binutils
 
+# Optimize the extraction process by skipping a lot of unused things
+define HOST_GCC_INITIAL_EXTRACT_CMDS
+	$(BZCAT) $(DL_DIR)/$(GCC_INITIAL_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) \
+		--exclude='libjava/*' --exclude='libgo/*' --exclude='gcc/testsuite/*' \
+		$(TAR_OPTIONS) -
+endef
+
 define HOST_GCC_INITIAL_XTENSA_OVERLAY_EXTRACT
         tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
                 $(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
diff --git a/package/gcc-intermediate/gcc-intermediate.mk b/package/gcc-intermediate/gcc-intermediate.mk
index 6418b9d..25adb23 100644
--- a/package/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc-intermediate/gcc-intermediate.mk
@@ -9,6 +9,14 @@ GCC_INTERMEDIATE_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
 GCC_INTERMEDIATE_SITE    = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_INTERMEDIATE_VERSION)
 GCC_INTERMEDIATE_SOURCE  = gcc-$(GCC_INTERMEDIATE_VERSION).tar.bz2
 
+# Optimize the extraction process by skipping a lot of unused things
+define HOST_GCC_INTERMEDIATE_EXTRACT_CMDS
+	$(BZCAT) $(DL_DIR)/$(GCC_INTERMEDIATE_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) \
+		--exclude='libjava/*' --exclude='libgo/*' --exclude='gcc/testsuite/*' \
+		$(TAR_OPTIONS) -
+endef
+
 define HOST_GCC_INTERMEDIATE_XTENSA_OVERLAY_EXTRACT
         tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(call qstrip,\
                 $(BR2_XTENSA_CORE_NAME)).tar -C $(@D) --strip-components=1 gcc
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.mk b/package/gcc/gcc.mk
index e07e6ea..dfd91d7 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -22,6 +22,14 @@ GCC_SOURCE = gcc-$(GCC_VERSION).tar.bz2
 
 HOST_GCC_DEPENDENCIES = host-gmp host-mpfr uclibc
 
+# Optimize the extraction process by skipping a lot of unused things
+define HOST_GCC_EXTRACT_CMDS
+	$(BZCAT) $(DL_DIR)/$(GCC_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) \
+		--exclude='libjava/*' --exclude='libgo/*' --exclude='gcc/testsuite/*' \
+		$(TAR_OPTIONS) -
+endef
+
 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
-- 
1.8.1.2

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

* [Buildroot] [RFCv1 14/18] uclibc: convert to the package infrastructure
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (12 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 13/18] gcc-initial, gcc-intermediate, gcc: optimize extraction Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 15/18] Remove TOOLCHAIN_DIR Thomas Petazzoni
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/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                           | 435 +++++++++++++++
 toolchain/toolchain-buildroot.mk                   |   1 -
 toolchain/toolchain-buildroot/Config.in            |   2 +-
 toolchain/toolchain-crosstool-ng.mk                |   1 -
 toolchain/toolchain-external.mk                    |   1 -
 toolchain/uClibc/Config.in                         |  97 ----
 toolchain/uClibc/uclibc.mk                         | 598 ---------------------
 21 files changed, 603 insertions(+), 700 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-intermediate/gcc-intermediate.mk b/package/gcc-intermediate/gcc-intermediate.mk
index 25adb23..a98e0ee 100644
--- a/package/gcc-intermediate/gcc-intermediate.mk
+++ b/package/gcc-intermediate/gcc-intermediate.mk
@@ -153,6 +153,6 @@ ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 HOST_GCC_INTERMEDIATE_INSTALL_OPT += install-target-libgcc
 endif
 
-HOST_GCC_INTERMEDIATE_DEPENDENCIES = uclibc-configured
+HOST_GCC_INTERMEDIATE_DEPENDENCIES = uclibc-configure
 
 $(eval $(host-autotools-package))
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..5414f21
--- /dev/null
+++ b/package/uclibc/uclibc.mk
@@ -0,0 +1,435 @@
+################################################################################
+#
+# 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
+
+#
+# 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)
+	$(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
+
+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
+endef
+
+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
+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
+
+$(eval $(generic-package))
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
index 2f2ea56..38dcb1f 100644
--- a/toolchain/toolchain-buildroot.mk
+++ b/toolchain/toolchain-buildroot.mk
@@ -1,3 +1,2 @@
 # Include files required for the internal toolchain backend
 
-include toolchain/uClibc/uclibc.mk
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-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 d4bbf48..0000000
--- a/toolchain/uClibc/uclibc.mk
+++ /dev/null
@@ -1,598 +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
-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] 21+ messages in thread

* [Buildroot] [RFCv1 15/18] Remove TOOLCHAIN_DIR
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (13 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 14/18] uclibc: convert to the package infrastructure Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 16/18] Use the 'host-gcc' target instead of the 'uclibc' target Thomas Petazzoni
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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 ef191ad..6f26e3e 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] 21+ messages in thread

* [Buildroot] [RFCv1 16/18] Use the 'host-gcc' target instead of the 'uclibc' target
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (14 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 15/18] Remove TOOLCHAIN_DIR Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 17/18] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 UTC (permalink / raw)
  To: buildroot

In order to be compatible with the Buildroot internal backend, the
Crosstool-NG and external backend were providing 'uclibc' and
'uclibc-source' targets. Now, let's provide 'host-gcc' and
'host-gcc-source' targets, and remove some conditional in the main
Makefile.

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

diff --git a/Makefile b/Makefile
index 6f26e3e..53e17bc 100644
--- a/Makefile
+++ b/Makefile
@@ -223,11 +223,8 @@ ifeq ($(BR2_CCACHE),y)
 BASE_TARGETS += host-ccache
 endif
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 BASE_TARGETS += host-gcc
-else
-BASE_TARGETS += uclibc
-endif
+
 TARGETS:=
 
 # silent mode requested?
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
index 59f18c7..92584b9 100644
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
@@ -22,15 +22,15 @@ 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
+# 'host-gcc' is the target to depend on to get the toolchain and
+# prepare the staging directory and co.
+host-gcc: 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;
+# 'host-gcc-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
+host-gcc-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..0991867 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -539,10 +539,10 @@ $(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
+# 'host-gcc' is the target to provide toolchain / staging dir
+host-gcc: 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))
+host-gcc-source: $(addprefix $(DL_DIR)/,$(TOOLCHAIN_EXTERNAL_SOURCE))
 endif
-- 
1.8.1.2

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

* [Buildroot] [RFCv1 17/18] Remove BR2_HAVE_DEVFILES
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (15 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 16/18] Use the 'host-gcc' target instead of the 'uclibc' target Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-25 19:35 ` [Buildroot] [RFCv1 18/18] Remove toolchain/toolchain-buildroot.mk Thomas Petazzoni
  2013-06-26 17:08 ` [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas De Schampheleire
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 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 53e17bc..0318664 100644
--- a/Makefile
+++ b/Makefile
@@ -444,16 +444,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 cb72f1f..37960f2 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] 21+ messages in thread

* [Buildroot] [RFCv1 18/18] Remove toolchain/toolchain-buildroot.mk
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (16 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 17/18] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
@ 2013-06-25 19:35 ` Thomas Petazzoni
  2013-06-26 17:08 ` [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas De Schampheleire
  18 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-25 19:35 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile                         | 4 +---
 toolchain/toolchain-buildroot.mk | 2 --
 2 files changed, 1 insertion(+), 5 deletions(-)
 delete mode 100644 toolchain/toolchain-buildroot.mk

diff --git a/Makefile b/Makefile
index 0318664..382c22a 100644
--- a/Makefile
+++ b/Makefile
@@ -313,9 +313,7 @@ include support/dependencies/dependencies.mk
 # We also need the various per-package makefiles, which also add
 # each selected package to TARGETS if that package was selected
 # in the .config file.
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-include toolchain/toolchain-buildroot.mk
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
 include toolchain/toolchain-external.mk
 else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
 include toolchain/toolchain-crosstool-ng.mk
diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
deleted file mode 100644
index 38dcb1f..0000000
--- a/toolchain/toolchain-buildroot.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Include files required for the internal toolchain backend
-
-- 
1.8.1.2

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

* [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages
  2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
                   ` (17 preceding siblings ...)
  2013-06-25 19:35 ` [Buildroot] [RFCv1 18/18] Remove toolchain/toolchain-buildroot.mk Thomas Petazzoni
@ 2013-06-26 17:08 ` Thomas De Schampheleire
  2013-06-26 19:52   ` Thomas Petazzoni
  18 siblings, 1 reply; 21+ messages in thread
From: Thomas De Schampheleire @ 2013-06-26 17:08 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Tue, Jun 25, 2013 at 9:35 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> This is the first RFC of the patch set that converts the internal
> Buildroot toolchain backend to the package infrastructure. It converts
> elf2flt, the kernel headers, the gcc and the uclibc build logic to
> packages.
>
> The code is also available from:
>
>    git://git.free-electrons.com/users/thomas-petazzoni/buildroot.git toolchain-infra
>
> 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, 10 and 11 introduce the gcc-initial, gcc-intermediate and
>    gcc packages. At this point, they are not used by Buildroot.
>
>  * Patch 12 switches the toolchain build logic to use the gcc-initial,
>    gcc-intermediate and gcc packages, and removed the toolchain/gcc
>    code.
>
>  * Patch 13 makes a small optimization to the size of the sources
>    extracted for gcc.
>
>  * Patch 14 converts uClibc to the package infrastructure.
>
>  * Patch 15 to 18 make some followup cleanups.
>
> 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 code of the gcc-initial, gcc-intermediate and gcc packages
>    could benefit from some factorization. For now, they are completely
>    independent from each other. I've tried doing some factorization
>    like GCC_INITIAL_SITE = $(GCC_SITE), but ran into issues (like
>    GCC_SITE not being defined by the time GCC_INITIAL_SITE uses it or
>    something like that). This is an area where a bit of
>    help/suggestions would be welcome.

What about putting all three gcc/gcc-initial/gcc-intermediate packages
in one directory (three .mk files) and then a common file. This common
file can contain common rules that can be used by all gcc packages.
You can make sure that the variables are defined by including the
common file explicitly from each .mk file (and making sure it doesn't
match the global 'include package/*/*.mk').

Best regards,
Thomas

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

* [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages
  2013-06-26 17:08 ` [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas De Schampheleire
@ 2013-06-26 19:52   ` Thomas Petazzoni
  0 siblings, 0 replies; 21+ messages in thread
From: Thomas Petazzoni @ 2013-06-26 19:52 UTC (permalink / raw)
  To: buildroot

Dear Thomas De Schampheleire,

On Wed, 26 Jun 2013 19:08:33 +0200, Thomas De Schampheleire wrote:

> What about putting all three gcc/gcc-initial/gcc-intermediate packages
> in one directory (three .mk files) and then a common file. This common
> file can contain common rules that can be used by all gcc packages.
> You can make sure that the variables are defined by including the
> common file explicitly from each .mk file (and making sure it doesn't
> match the global 'include package/*/*.mk').

This seems like a good idea, I'll try this out, thanks!

Best regards,

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] 21+ messages in thread

end of thread, other threads:[~2013-06-26 19:52 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-25 19:35 [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 01/18] uClibc: KERNEL_SOURCE no longer exists Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 02/18] busybox: don't use kernel headers directly Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 03/18] package: allow to override the make install target for host packages Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 04/18] toolchain/gcc: remove dead code related to host binary stripping Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 05/18] toolchain: remove references to LIBFLOAT_TARGET Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 06/18] toolchain/gcc: get rid of stale variable reference Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 07/18] elf2flt: convert to the package infrastructure Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 08/18] kernel-headers: migrate " Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 09/18] gcc-initial: new package Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 10/18] gcc-intermediate: " Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 11/18] gcc: " Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 12/18] toolchain: switch to using gcc through package infrastructure Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 13/18] gcc-initial, gcc-intermediate, gcc: optimize extraction Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 14/18] uclibc: convert to the package infrastructure Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 15/18] Remove TOOLCHAIN_DIR Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 16/18] Use the 'host-gcc' target instead of the 'uclibc' target Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 17/18] Remove BR2_HAVE_DEVFILES Thomas Petazzoni
2013-06-25 19:35 ` [Buildroot] [RFCv1 18/18] Remove toolchain/toolchain-buildroot.mk Thomas Petazzoni
2013-06-26 17:08 ` [Buildroot] [RFCv1 00/18] Convert the internal toolchain backend to packages Thomas De Schampheleire
2013-06-26 19:52   ` Thomas Petazzoni

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.