Changeset 13931


Ignore:
Timestamp:
2009-01-08T02:49:11+01:00 (9 years ago)
Author:
nico
Message:

[massive] add support for alternative C libraries (currently only glibc/eglibc)
other (related) changes:

  • kernel headers are now installed using "make headers_install" on 2.6
  • target names now contain an openwrt "vendor" tag (e.g. mips-openwrt-linux-gnu)
  • build directory names now contain gcc/libc name/version
  • default cpu for x86 is now i486 (required to build glibc/eglibc)
Location:
trunk
Files:
40 added
15 edited
15 copied
12 moved

Legend:

Unmodified
Added
Removed
  • trunk/include/package.mk

    r12896 r13931  
    3232 
    3333override MAKEFLAGS= 
    34 CONFIG_SITE:=$(INCLUDE_DIR)/site/$(patsubst %gnueabi,%,$(REAL_GNU_TARGET_NAME)) 
     34CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) 
    3535ifneq ($(CONFIG_LINUX_2_4),) 
    3636  CONFIG_SITE:=$(subst linux-,linux2.4-,$(CONFIG_SITE)) 
  • trunk/include/site/arm-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/arm-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/arm-openwrt-linux-gnueabi

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/arm-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/armeb-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/armeb-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/armeb-openwrt-linux-gnueabi

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/armeb-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/avr32-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/avr32-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/cris-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/cris-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/i486-openwrt-linux-gnu

    r13144 r13931  
    11#!/bin/sh 
    22 
    3 . $TOPDIR/include/site/i386-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     3. $TOPDIR/include/site/i486-linux 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/i486-openwrt-linux-uclibc

    r13144 r13931  
    11#!/bin/sh 
    22 
    3 . $TOPDIR/include/site/i386-linux 
     3. $TOPDIR/include/site/i486-linux 
    44. $TOPDIR/include/site/linux-uclibc 
    55 
  • trunk/include/site/i686-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/i686-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/mips-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/mips-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/mipsel-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/mipsel-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/powerpc-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/powerpc-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/site/x86_64-openwrt-linux-gnu

    r13144 r13931  
    22 
    33. $TOPDIR/include/site/x86_64-linux 
    4 . $TOPDIR/include/site/linux-uclibc 
     4. $TOPDIR/include/site/linux-gnu 
    55 
  • trunk/include/target.mk

    r13187 r13931  
    1313 
    1414# Default packages - the really basic set 
    15 DEFAULT_PACKAGES:=base-files libgcc uclibc busybox dropbear mtd uci opkg 
     15DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg 
    1616# For router targets 
    1717DEFAULT_PACKAGES.router:=dnsmasq iptables ppp ppp-mod-pppoe kmod-ipt-nathelper firewall 
  • trunk/package/base-files/Makefile

    r13903 r13931  
    2727  endif 
    2828else 
    29   UCLIBC_VERSION:=<UCLIBC_VERSION> 
     29  LIBC_VERSION:=<LIBC_VERSION> 
    3030  LIBGCC_VERSION:=<LIBGCC_VERSION> 
    3131endif 
     
    8989endef 
    9090 
    91 define Package/uclibc/Default 
     91define Package/libc/Default 
    9292  SECTION:=libs 
    9393  CATEGORY:=Base system 
    9494  DEPENDS:=@!NATIVE_TOOLCHAIN 
    95   URL:=http://uclibc.org/ 
    96   VERSION:=$(UCLIBC_VERSION)$(UCLIBC_PATCHVER)-$(PKG_RELEASE) 
     95  VERSION:=$(LIBC_VERSION)-$(PKG_RELEASE) 
     96  URL:=$(LIBC_URL) 
     97endef 
     98 
     99define Package/libc 
     100$(call Package/libc/Default) 
     101  TITLE:=C library 
    97102endef 
    98103 
    99104define Package/libpthread 
    100 $(call Package/uclibc/Default) 
     105$(call Package/libc/Default) 
    101106  TITLE:=POSIX thread library 
    102 endef 
    103  
    104 define Package/uclibc 
    105 $(call Package/uclibc/Default) 
    106   TITLE:=C library embedded systems 
     107  DEPENDS:= +librt 
     108endef 
     109 
     110define Package/librt 
     111$(call Package/libc/Default) 
     112  TITLE:=POSIX.1b RealTime extension library 
    107113endef 
    108114 
     
    113119 
    114120define Package/ldconfig 
    115 $(call Package/uclibc/Default) 
     121$(call Package/libc/Default) 
    116122  TITLE:=Shared library path configuration 
    117123endef 
     124 
    118125 
    119126define Build/Prepare 
     
    185192endef 
    186193 
    187 ifeq ($(word 1,$(subst ., ,$(LIBGCC_VERSION))),4) 
    188   define Package/libssp/install 
     194define Package/libssp/install 
    189195        $(INSTALL_DIR) $(1)/lib 
    190196        $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libssp.so.* $(1)/lib/ 
    191   endef 
    192 endif 
     197endef 
    193198 
    194199define Package/libstdcpp/install 
    195         $(INSTALL_DIR) $(1)/lib 
    196         $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/lib/ 
     200        $(INSTALL_DIR) $(1)/usr/lib 
     201        $(CP) $(TOOLCHAIN_DIR)/usr/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/usr/lib/ 
     202endef 
     203 
     204define Package/glibc/install 
     205        $(INSTALL_DIR) $(1)/lib 
     206        $(CP) $(TOOLCHAIN_DIR)/lib/ld*.so.* $(1)/lib/ 
     207        $(CP) $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_VERSION).so $(1)/lib/ 
     208        for file in libanl libc libcidn libcrypt libdl libm libnsl libnss_dns libnss_files libresolv libutil; do \ 
     209                $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ 
     210                $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_VERSION).so $(1)/lib/; \ 
     211        done 
     212endef 
     213 
     214define Package/eglibc/install 
     215$(call Package/glibc/install,$1) 
     216endef 
     217 
     218define Package/uClibc/install 
     219        $(INSTALL_DIR) $(1)/lib 
     220        for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv libuClibc libutil; do \ 
     221                $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ 
     222                $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_VERSION).so $(1)/lib/; \ 
     223        done 
     224endef 
     225 
     226define Package/libc/install 
     227$(call Package/$(LIBC)/install,$1) 
    197228endef 
    198229 
     
    200231        $(INSTALL_DIR) $(1)/lib 
    201232        $(CP) $(TOOLCHAIN_DIR)/lib/libpthread.so.* $(1)/lib/ 
    202         $(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/ 
    203 endef 
    204  
    205 define Package/uclibc/install 
    206         $(INSTALL_DIR) $(1)/lib 
    207         for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \ 
    208                 $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \ 
    209                 $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \ 
    210         done 
     233        $(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_VERSION).so $(1)/lib/ 
     234endef 
     235 
     236define Package/librt/install 
     237        $(INSTALL_DIR) $(1)/lib 
     238        $(CP) $(TOOLCHAIN_DIR)/lib/librt.so.* $(1)/lib/ 
     239        $(CP) $(TOOLCHAIN_DIR)/lib/librt-$(LIBC_VERSION).so $(1)/lib/ 
    211240endef 
    212241 
    213242define Package/ldd/install 
    214         $(INSTALL_DIR) $(1)/bin/ 
    215         $(CP) $(TOOLCHAIN_DIR)/target-utils/ldd $(1)/bin/ 
     243        $(INSTALL_DIR) $(1)/usr/bin/ 
     244        $(CP) $(TOOLCHAIN_DIR)/usr/bin/ldd $(1)/usr/bin/ 
    216245endef 
    217246 
    218247define Package/ldconfig/install 
    219         $(INSTALL_DIR) $(1)/bin/ 
    220         $(CP) $(TOOLCHAIN_DIR)/target-utils/ldconfig $(1)/bin/ 
     248        $(INSTALL_DIR) $(1)/sbin/ 
     249        $(CP) $(TOOLCHAIN_DIR)/sbin/ldconfig $(1)/sbin/ 
    221250endef 
    222251 
     
    226255 
    227256$(eval $(call BuildPackage,base-files$(TARGET))) 
     257$(eval $(call BuildPackage,libc)) 
    228258$(eval $(call BuildPackage,libgcc)) 
    229259$(eval $(call BuildPackage,libssp)) 
    230260$(eval $(call BuildPackage,libstdcpp)) 
    231261$(eval $(call BuildPackage,libpthread)) 
    232 $(eval $(call BuildPackage,uclibc)) 
     262$(eval $(call BuildPackage,librt)) 
    233263$(eval $(call BuildPackage,ldd)) 
    234264$(eval $(call BuildPackage,ldconfig)) 
  • trunk/package/kexec-tools/Makefile

    r13552 r13931  
    11#  
    2 # Copyright (C) 2006 OpenWrt.org 
     2# Copyright (C) 2006-2008 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    3838 
    3939CONFIGURE_ARGS = \ 
    40                 --target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-uclibc \ 
     40                --target=$(CONFIG_KEXEC_TOOLS_TARGET_NAME)-linux-$(TARGET_SUFFIX) \ 
    4141                --host=$(GNU_TARGET_NAME)-uclibc \ 
    4242                --build=$(GNU_HOST_NAME) \ 
     
    5050                --sysconfdir=/etc \ 
    5151 
    52 CONFIGURE_VARS += BUILD_CC=$(HOSTCC) 
     52CONFIGURE_VARS += \ 
     53        BUILD_CC=$(HOSTCC) \ 
     54        TARGET_CC=$(TARGET_CC) \ 
    5355 
    5456define Build/Compile 
  • trunk/rules.mk

    r13892 r13931  
    3535BOARD:=$(call qstrip,$(CONFIG_TARGET_BOARD)) 
    3636TARGET_OPTIMIZATION:=$(call qstrip,$(CONFIG_TARGET_OPTIMIZATION)) 
     37TARGET_SUFFIX=$(call qstrip,$(CONFIG_TARGET_SUFFIX)) 
    3738BUILD_SUFFIX:=$(call qstrip,$(CONFIG_BUILD_SUFFIX)) 
    3839GCCV:=$(call qstrip,$(CONFIG_GCC_VERSION)) 
     40LIBC:=$(call qstrip,$(CONFIG_LIBC)) 
     41LIBCV:=$(call qstrip,$(CONFIG_LIBC_VERSION)) 
    3942SUBDIR:=$(patsubst $(TOPDIR)/%,%,${CURDIR}) 
    4043 
    41 OPTIMIZE_FOR_CPU=$(ARCH) 
     44OPTIMIZE_FOR_CPU=$(shell echo $(ARCH) | sed -e 's/i386/i486/') 
    4245 
    4346ifeq ($(ARCH),powerpc) 
     
    5255SCRIPT_DIR:=$(TOPDIR)/scripts 
    5356BUILD_DIR_BASE:=$(TOPDIR)/build_dir 
    54 BUILD_DIR:=$(BUILD_DIR_BASE)/$(ARCH)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) 
     57BUILD_DIR:=$(BUILD_DIR_BASE)/target-$(ARCH)_$(LIBC)-$(LIBCV)$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) 
    5558BUILD_DIR_HOST:=$(BUILD_DIR_BASE)/host 
    56 BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/toolchain-$(ARCH)_gcc$(GCCV) 
    57 STAGING_DIR:=$(TOPDIR)/staging_dir/$(ARCH) 
     59BUILD_DIR_TOOLCHAIN:=$(BUILD_DIR_BASE)/toolchain-$(ARCH)_gcc-$(GCCV)_$(LIBC)-$(LIBCV) 
     60STAGING_DIR:=$(TOPDIR)/staging_dir/target-$(ARCH)_$(LIBC)-$(LIBCV) 
    5861STAGING_DIR_HOST:=$(TOPDIR)/staging_dir/host 
    59 TOOLCHAIN_DIR:=$(TOPDIR)/staging_dir/toolchain-$(ARCH)_gcc$(GCCV) 
     62TOOLCHAIN_DIR:=$(TOPDIR)/staging_dir/toolchain-$(ARCH)_gcc-$(GCCV)_$(LIBC)-$(LIBCV) 
    6063PACKAGE_DIR:=$(BIN_DIR)/packages/$(ARCH) 
    6164STAMP_DIR:=$(BUILD_DIR)/stamp 
     
    6467IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg 
    6568 
    66 TARGET_PATH:=$(TOOLCHAIN_DIR)/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) 
     69TARGET_PATH:=$(TOOLCHAIN_DIR)/usr/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) 
    6770TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3) 
    6871TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include 
    69 TARGET_LDFLAGS:=-L$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib 
     72TARGET_LDFLAGS:=-L$(TOOLCHAIN_DIR)/usr/lib -L$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib 
    7073LIBGCC_S=$(if $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so),-lgcc_s,$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.a)) 
    7174 
    7275ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) 
    7376  -include $(TOOLCHAIN_DIR)/info.mk 
    74   REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi) 
    75   GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux 
    76   TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-linux-uclibc$(if $(CONFIG_EABI_SUPPORT),gnueabi)-) 
     77  REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX)) 
     78  GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-openwrt-linux 
     79  TARGET_CROSS:=$(if $(TARGET_CROSS),$(TARGET_CROSS),$(OPTIMIZE_FOR_CPU)-openwrt-linux$(if $(TARGET_SUFFIX),-$(TARGET_SUFFIX))-) 
    7780  TARGET_CFLAGS+= -fhonour-copts 
    7881endif 
  • trunk/toolchain/Config.in

    r12046 r13931  
    4242source "toolchain/binutils/Config.in" 
    4343source "toolchain/gcc/Config.in" 
     44 
     45choice 
     46        prompt "LIBC implementation" if TOOLCHAINOPTS 
     47        default USE_UCLIBC 
     48        help 
     49          Select the LIBC implementation. 
     50 
     51        config USE_EGLIBC 
     52                bool "Use eglibc" 
     53                depends !avr32 
     54                select NO_STRIP 
     55         
     56        config USE_GLIBC 
     57                bool "Use glibc" 
     58                depends !avr32 
     59                select NO_STRIP 
     60         
     61        config USE_UCLIBC 
     62                bool "Use uClibc" 
     63 
     64endchoice 
     65 
     66source "toolchain/eglibc/Config.in" 
     67source "toolchain/glibc/Config.in" 
    4468source "toolchain/uClibc/Config.in" 
    4569 
     
    83107        default "-O2 -pipe -march=i686 -funit-at-a-time" if TARGET_x86_mediacenter 
    84108        default "-O2 -pipe -march=i486 -funit-at-a-time" if TARGET_x86 
    85         default "-Os -pipe -march=i486 -funit-at-a-time" if TARGET_rdc 
     109        default "-Os -pipe -march=i486 -funit-at-a-time" if TARGET_rdc || TARGET_uml 
    86110        default "-Os -pipe -mips32r2 -mtune=mips32r2 -funit-at-a-time" if TARGET_ar71xx 
    87111        default "-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time" if mipsel || mips 
     
    92116          Optimizations to use when building for the target host. 
    93117 
     118config USE_UCLIBC 
     119        bool 
     120        default y if !TOOLCHAINOPTS 
     121 
    94122source "toolchain/gcc/Config.version" 
     123 
     124source "toolchain/eglibc/Config.version" 
     125source "toolchain/glibc/Config.version" 
    95126source "toolchain/uClibc/Config.version" 
     127 
     128config LIBC 
     129        string 
     130        default "eglibc"  if USE_EGLIBC 
     131        default "glibc"   if USE_GLIBC 
     132        default "uClibc"  if USE_UCLIBC 
     133 
     134config LIBC_VERSION 
     135        string 
     136        default EGLIBC_VERSION  if USE_EGLIBC 
     137        default GLIBC_VERSION   if USE_GLIBC 
     138        default UCLIBC_VERSION  if USE_UCLIBC 
     139 
     140config TARGET_SUFFIX 
     141        string 
     142        default "gnueabi"         if (USE_EGLIBC || USE_GLIBC) && EABI_SUPPORT 
     143        default "gnu"             if (USE_EGLIBC || USE_GLIBC) && !EABI_SUPPORT 
     144        default "uclibc-gnueabi"  if USE_UCLIBC && EABI_SUPPORT 
     145        default "uclibc"          if USE_UCLIBC && !EABI_SUPPORT 
     146 
  • trunk/toolchain/Makefile

    r11473 r13931  
    11#  
    2 # Copyright (C) 2007 OpenWrt.org 
     2# Copyright (C) 2007-2008 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    77# Main makefile for the toolchain 
    88# 
     9# Steps: 
     10# 1) toolchain/binutils/install 
     11#    build & install binutils 
     12# 2) toolchain/gcc/prepare 
     13#    build & install a minimal gcc, needed for steps 3 & 4 
     14# 3) toolchain/kernel-headers/install 
     15#    install kernel headers, needed for step 4 
     16# 4) toolchain/libc/prepare 
     17#    build & install libc headers & support files, needed for step 5 
     18# 5) toolchain/gcc/compile 
     19#    build & install an initial gcc, needed for step 6 
     20# 6) toolchain/libc/compile 
     21#    build & install the final libc 
     22# 7) toolchain/gcc/install 
     23#    build & install the final gcc 
     24# 8) toolchain/libc/install 
     25#    build & install libc utilities 
     26# 
     27 
    928curdir:=toolchain 
    1029 
    1130# subdirectories to descend into 
    12 $(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc uClibc) 
    13 $(curdir)/builddirs-compile:=. $(filter-out kernel-headers,$($(curdir)/builddirs)) 
     31$(curdir)/builddirs := kernel-headers $(if $(CONFIG_GDB),gdb) $(if $(CONFIG_NATIVE_TOOLCHAIN),,binutils gcc $(LIBC) $(if $(CONFIG_GLIBC_PORTS),glibc-ports)) 
     32$(curdir)/builddirs-compile:=$($(curdir)/builddirs-prepare) 
    1433$(curdir)/builddirs-install:=$($(curdir)/builddirs-compile) 
    1534 
    1635# builddir dependencies 
    17 $(curdir)/uClibc/prepare:=$(curdir)/kernel-headers/prepare 
     36$(curdir)/$(LIBC)/prepare:=$(curdir)/kernel-headers/install 
    1837ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) 
    19   $(curdir)/binutils/prepare:=$(curdir)/uClibc/prepare 
    2038  $(curdir)/gcc/prepare:=$(curdir)/binutils/install 
    21   $(curdir)/uClibc/compile:=$(curdir)/gcc/compile 
    22   $(curdir)/gcc/install:=$(curdir)/uClibc/compile 
    23   $(curdir)/uClibc/install:=$(curdir)/gcc/install 
     39  $(curdir)/kernel-headers/install:=$(curdir)/gcc/prepare 
     40  $(curdir)/gcc/compile:=$(curdir)/$(LIBC)/prepare 
     41  $(curdir)/$(LIBC)/compile:=$(curdir)/gcc/compile 
     42  $(curdir)/gcc/install:=$(curdir)/$(LIBC)/compile 
     43  $(curdir)/$(LIBC)/install:=$(curdir)/gcc/install 
     44  ifneq ($(CONFIG_GLIBC_PORTS),) 
     45    $(curdir)/glibc/prepare:=$(curdir)/glibc-ports/prepare 
     46  endif 
    2447endif 
    2548 
     
    3053                mkdir -p "$$dir"; \ 
    3154                cd "$$dir"; \ 
    32                 mkdir -p bin lib include stamp; \ 
     55                mkdir -p stamp lib usr/include usr/lib ; \ 
    3356        ); done 
    3457        @grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@ 
  • trunk/toolchain/binutils/Makefile

    r13481 r13931  
    2424STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) 
    2525BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) 
     26 
    2627override CONFIG_AUTOREBUILD= 
    2728 
    2829include $(INCLUDE_DIR)/host-build.mk 
    2930 
    30 EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) 
     31EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX)) 
     32 
     33define Build/Prepare 
     34        $(call Build/Prepare/Default) 
     35        ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) 
     36        $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ 
     37endef 
    3138 
    3239define Build/Configure 
    33         $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ 
    3440        (cd $(PKG_BUILD_DIR); \ 
    3541                ./configure \ 
    36                 --prefix=$(STAGING_DIR_HOST) \ 
     42                --prefix=$(TOOLCHAIN_DIR)/usr \ 
    3743                --build=$(GNU_HOST_NAME) \ 
    3844                --host=$(GNU_HOST_NAME) \ 
    3945                --target=$(REAL_GNU_TARGET_NAME) \ 
     46                --with-sysroot=$(TOOLCHAIN_DIR) \ 
     47                --disable-multilib \ 
    4048                --disable-werror \ 
    4149                --disable-nls \ 
     
    5462endef 
    5563 
     64define Build/Clean 
     65        rm -rf \ 
     66                $(PKG_BUILD_DIR) \ 
     67                $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) 
     68endef 
     69 
    5670$(eval $(call HostBuild)) 
  • trunk/toolchain/gcc/Config.in

    r13483 r13931  
    4141config SSP_SUPPORT 
    4242        bool 
     43        depends !GCC_VERSION_3_4_6 
    4344        prompt "Enable Smash Stacking Protection support" if TOOLCHAINOPTS 
    4445        default n 
  • trunk/toolchain/gcc/Makefile

    r13856 r13931  
    1 # Makefile for to build a gcc/uClibc toolchain 
    21# 
    32# Copyright (C) 2002-2003 Erik Andersen <andersen@uclibc.org> 
    43# Copyright (C) 2004 Manuel Novoa III <mjn3@uclibc.org> 
    54# Copyright (C) 2005-2006 Felix Fietkau <nbd@openwrt.org> 
     5# Copyright (C) 2006-2008 OpenWrt.org 
    66# 
    77# This program is free software; you can redistribute it and/or modify 
     
    4141STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) 
    4242BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) 
     43 
    4344override CONFIG_AUTOREBUILD= 
    4445 
     
    4647 
    4748STAMP_BUILT:=$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed 
    48 BUILD_DIR1:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-initial 
    49 BUILD_DIR2:=$(BUILD_DIR_HOST)/gcc-$(PKG_VERSION)-final 
     49 
     50PKG_BUILD_DIR0:=$(PKG_BUILD_DIR)-minimal 
     51PKG_BUILD_DIR1:=$(PKG_BUILD_DIR)-initial 
     52PKG_BUILD_DIR2:=$(PKG_BUILD_DIR)-final 
    5053 
    5154SEP:=, 
    5255TARGET_LANGUAGES:="c$(if $(CONFIG_INSTALL_LIBSTDCPP),$(SEP)c++)$(if $(CONFIG_INSTALL_LIBGCJ),$(SEP)java)" 
    5356 
    54 ifeq ($(CONFIG_SSP_SUPPORT),y) 
    55   SSP:=--enable-libssp 
    56 else 
    57   SSP:=--disable-libssp 
    58 endif 
    59  
    60 EXTRA_TARGET=$(if $(CONFIG_EXTRA_TARGET_ARCH),--enable-biarch --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-uclibc) 
    61  
    62 define Stage1/Configure 
    63         $(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk 
    64         $(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk 
    65         mkdir -p $(BUILD_DIR1) 
    66         (cd $(BUILD_DIR1); rm -f config.cache; \ 
    67                 SHELL="$(BASH)" \ 
    68                 $(PKG_BUILD_DIR)/configure \ 
    69                 --prefix=$(TOOLCHAIN_DIR) \ 
     57GCC_CONFIGURE_COMMON:= \ 
     58        SHELL="$(BASH)" \ 
     59        $(PKG_BUILD_DIR)/configure \ 
     60                --prefix=$(TOOLCHAIN_DIR)/usr \ 
    7061                --build=$(GNU_HOST_NAME) \ 
    7162                --host=$(GNU_HOST_NAME) \ 
    7263                --target=$(REAL_GNU_TARGET_NAME) \ 
     64                --with-gnu-ld \ 
     65                --enable-target-optspace \ 
     66                --disable-libmudflap \ 
     67                --disable-multilib \ 
     68                --disable-nls \ 
     69                $(SOFT_FLOAT_CONFIG_OPTION) \ 
     70                $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ 
     71 
     72ifneq ($(CONFIG_SSP_SUPPORT),) 
     73        GCC_CONFIGURE_COMMON+= \ 
     74                --enable-libssp 
     75else 
     76        GCC_CONFIGURE_COMMON+= \ 
     77                --disable-libssp 
     78endif 
     79 
     80ifneq ($(CONFIG_EXTRA_TARGET_ARCH),) 
     81        GCC_CONFIGURE_COMMON+= \ 
     82                --enable-biarch \ 
     83                --enable-targets=$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_NAME))-linux-$(TARGET_SUFFIX) 
     84endif 
     85 
     86ifeq ($(LIBC),uClibc) 
     87        GCC_CONFIGURE_COMMON+= \ 
     88                --disable-__cxa_atexit 
     89else 
     90        GCC_CONFIGURE_COMMON+= \ 
     91                --enable-__cxa_atexit 
     92endif 
     93 
     94GCC_CONFIGURE_STAGE0:= \ 
     95        $(GCC_CONFIGURE_COMMON) \ 
     96                --with-newlib \ 
     97                --without-headers \ 
     98                --enable-languages=c \ 
     99                --disable-libgomp \ 
     100                --disable-libssp \ 
     101                --disable-shared \ 
     102                --disable-threads \ 
     103 
     104GCC_CONFIGURE_STAGE1:= \ 
     105        $(GCC_CONFIGURE_COMMON) \ 
     106                --with-newlib \ 
     107                --with-sysroot=$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev \ 
    73108                --enable-languages=c \ 
    74109                --disable-shared \ 
    75                 --with-sysroot=$(BUILD_DIR_HOST)/uClibc_dev/ \ 
    76                 --disable-__cxa_atexit \ 
    77                 --enable-target-optspace \ 
    78                 --with-gnu-ld \ 
    79                 --disable-nls \ 
    80                 --disable-libmudflap \ 
    81                 --disable-multilib \ 
    82                 $(SSP) \ 
    83                 $(EXTRA_TARGET) \ 
    84                 $(SOFT_FLOAT_CONFIG_OPTION) \ 
    85                 $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ 
    86         ); 
    87 endef 
    88 define Stage1/Compile 
    89         export SHELL="$(BASH)"; $(MAKE) -C $(BUILD_DIR1) all-gcc 
    90 endef 
    91 define Stage1/Install 
    92         export SHELL="$(BASH)"; $(MAKE) -C $(BUILD_DIR1) install-gcc 
    93 endef 
    94  
    95 define Stage2/Configure 
    96         mkdir -p $(BUILD_DIR2) $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) 
    97         # Important!  Required for limits.h to be fixed. 
    98         rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include 
    99         ln -sf ../include $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include 
    100         rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib 
    101         ln -sf ../lib $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib 
    102         (cd $(BUILD_DIR2); rm -f config.cache; \ 
    103                 SHELL="$(BASH)" \ 
    104                 $(PKG_BUILD_DIR)/configure \ 
    105                 --prefix=$(TOOLCHAIN_DIR) \ 
    106                 --build=$(GNU_HOST_NAME) \ 
    107                 --host=$(GNU_HOST_NAME) \ 
    108                 --target=$(REAL_GNU_TARGET_NAME) \ 
     110                --disable-threads \ 
     111 
     112GCC_CONFIGURE_STAGE2:= \ 
     113        $(GCC_CONFIGURE_COMMON) \ 
    109114                --enable-languages=$(TARGET_LANGUAGES) \ 
    110115                --enable-shared \ 
    111                 --disable-__cxa_atexit \ 
    112                 --enable-target-optspace \ 
    113                 --with-gnu-ld \ 
    114                 --disable-nls \ 
    115                 --disable-libmudflap \ 
    116                 --disable-multilib \ 
    117                 $(SSP) \ 
    118                 $(EXTRA_TARGET) \ 
    119                 $(SOFT_FLOAT_CONFIG_OPTION) \ 
    120                 $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \ 
     116                --enable-threads \ 
     117                --with-slibdir=$(TOOLCHAIN_DIR)/lib \ 
     118 
     119GCC_MAKE:= \ 
     120        export SHELL="$(BASH)"; \ 
     121        $(MAKE) \ 
     122 
     123 
     124define Build/SetToolchainInfo 
     125        $(SED) 's,TARGET_CROSS=.*,TARGET_CROSS=$(REAL_GNU_TARGET_NAME)-,' $(TOOLCHAIN_DIR)/info.mk 
     126        $(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk 
     127endef 
     128 
     129 
     130define Stage0/Configure 
     131        mkdir -p $(PKG_BUILD_DIR0) 
     132        (cd $(PKG_BUILD_DIR0); rm -f config.cache; \ 
     133                $(GCC_CONFIGURE_STAGE0) \ 
     134        ); 
     135endef 
     136 
     137define Stage0/Compile 
     138        $(GCC_MAKE) -C $(PKG_BUILD_DIR0) all-gcc 
     139endef 
     140 
     141define Stage0/Install 
     142        $(GCC_MAKE) -C $(PKG_BUILD_DIR0) install-gcc 
     143endef 
     144 
     145 
     146define Stage1/Configure 
     147        mkdir -p $(PKG_BUILD_DIR1) 
     148        (cd $(PKG_BUILD_DIR1); rm -f config.cache; \ 
     149                $(GCC_CONFIGURE_STAGE1) \ 
     150        ); 
     151endef 
     152 
     153define Stage1/Compile 
     154        $(GCC_MAKE) -C $(PKG_BUILD_DIR1) all-build-libiberty all-gcc 
     155endef 
     156 
     157define Stage1/Install 
     158        $(GCC_MAKE) -C $(PKG_BUILD_DIR1) install-gcc 
     159        # XXX: glibc insists on linking against libgcc_eh 
     160        ( cd $(TOOLCHAIN_DIR)/usr/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(PKG_VERSION) ; \ 
     161                [ -e libgcc_eh.a ] || ln -sf libgcc.a libgcc_eh.a ; \ 
     162        ) 
     163endef 
     164 
     165 
     166define Stage2/Configure 
     167        mkdir -p $(PKG_BUILD_DIR2) $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME) 
     168        # Important!  Required for limits.h to be fixed. 
     169        rm -rf $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include 
     170        ln -sf ../include $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/sys-include 
     171        rm -rf $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib 
     172        ln -sf ../lib $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib 
     173        (cd $(PKG_BUILD_DIR2); rm -f config.cache; \ 
     174                $(GCC_CONFIGURE_STAGE2) \ 
    121175        ); 
    122176endef 
    123177 
    124178define Stage2/Compile 
    125         export SHELL="\$(BASH)"; \$(MAKE) -C \$(BUILD_DIR2) all 
     179        $(GCC_MAKE) -C $(PKG_BUILD_DIR2) all 
    126180endef 
    127181 
    128182define SetupExtraArch 
    129         for app in $(TOOLCHAIN_DIR)/bin/$(OPTIMIZE_FOR_CPU)*-{gcc,gcc-*,g++}; do \ 
     183        for app in $(TOOLCHAIN_DIR)/usr/bin/$(OPTIMIZE_FOR_CPU)*-{gcc,gcc-*,g++}; do \ 
    130184                [ -e $$$$app ] || continue; \ 
    131185                old_base=$$$$(basename $$$$app); \ 
     
    134188                        -e 's/@EXTRA_ARCH_OPTS@/$(call qstrip,$(CONFIG_EXTRA_TARGET_ARCH_OPTS))/' \ 
    135189                         ./files/alternate-arch-cc.in > \ 
    136                          $(TOOLCHAIN_DIR)/bin/$$$$new_base; \ 
    137                 chmod a+x $(TOOLCHAIN_DIR)/bin/$$$$new_base; \ 
     190                         $(TOOLCHAIN_DIR)/usr/bin/$$$$new_base; \ 
     191                chmod a+x $(TOOLCHAIN_DIR)/usr/bin/$$$$new_base; \ 
    138192        done 
    139193endef 
    140194 
    141195define Stage2/Install 
    142         $(MAKE) -C $(BUILD_DIR2) \ 
    143                 SHELL="$(BASH)" \ 
    144                 install 
     196        $(GCC_MAKE) -C $(PKG_BUILD_DIR2) install 
    145197        # Set up the symlinks to enable lying about target name. 
    146198        set -e; \ 
    147         (cd $(TOOLCHAIN_DIR); \ 
     199        (cd $(TOOLCHAIN_DIR)/usr; \ 
    148200                ln -sf $(REAL_GNU_TARGET_NAME) $(GNU_TARGET_NAME); \ 
    149201                cd bin; \ 
     
    156208endef 
    157209 
     210 
    158211define Build/Prepare 
     212        $(call Build/SetToolchainInfo) 
    159213        $(call Build/Prepare/Default) 
     214        ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) 
     215        $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/ 
    160216        $(SED) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(PKG_BUILD_DIR)/gcc/version.c 
    161217        $(SED) 's,\(bug_report_url.. = "\).*\(";\),\1<URL:https://dev.openwrt.org/>\2,' $(PKG_BUILD_DIR)/gcc/version.c 
    162218        (cd $(PKG_BUILD_DIR)/libstdc++-v3; autoconf;); 
    163219        $(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(PKG_BUILD_DIR)/libstdc++-v3/configure 
     220        $(call Stage0/Configure) 
     221        $(call Stage0/Compile) 
     222        $(call Stage0/Install) 
    164223endef 
    165224 
    166225define Build/Configure 
     226endef 
     227 
     228define Build/Compile 
    167229        $(call Stage1/Configure) 
    168 endef 
    169  
    170 define Build/Compile 
    171230        $(call Stage1/Compile) 
    172         $(if $(wildcard $(TOOLCHAIN_DIR)/bin/$(GNU_TARGET_NAME)-gcc),,$(call Stage1/Install)) 
     231        $(call Stage1/Install) 
    173232endef 
    174233 
     
    182241        rm -rf \ 
    183242                $(PKG_BUILD_DIR) \ 
    184                 $(BUILD_DIR1) \ 
    185                 $(BUILD_DIR2) \ 
    186                 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) \ 
    187                 $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gc* \ 
    188                 $(TOOLCHAIN_DIR)/bin/$(REAL_GNU_TARGET_NAME)-c* 
     243                $(PKG_BUILD_DIR0) \ 
     244                $(PKG_BUILD_DIR1) \ 
     245                $(PKG_BUILD_DIR2) \ 
     246                $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \ 
     247                $(TOOLCHAIN_DIR)/usr/$(REAL_GNU_TARGET_NAME) \ 
     248                $(TOOLCHAIN_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-gc* \ 
     249                $(TOOLCHAIN_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-c* 
    189250endef 
    190251 
  • trunk/toolchain/info.mk

    r8362 r13931  
    11TARGET_CROSS= 
    22GCC_VERSION=unknown 
    3 UCLIBC_VERSION=unknown 
    4 UCLIBC_PATCHVER= 
     3LIBC_TYPE=unknown 
     4LIBC_URL=unknown 
     5LIBC_VERSION=unknown 
     6LIBC_PATCHVER= 
  • trunk/toolchain/kernel-headers/Makefile

    r12933 r13931  
    11#  
    2 # Copyright (C) 2006 OpenWrt.org 
     2# Copyright (C) 2006-2008 OpenWrt.org 
    33# 
    44# This is free software, licensed under the GNU General Public License v2. 
     
    1212STAGING_DIR_HOST:=$(TOOLCHAIN_DIR) 
    1313BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN) 
     14 
    1415override QUILT:= 
    1516override CONFIG_AUTOREBUILD= 
     
    2122PKG_SOURCE:=$(LINUX_SOURCE) 
    2223PKG_SOURCE_URL:=$(LINUX_SITE) 
    23 PKG_BUILD_DIR := $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) 
     24PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) 
    2425PKG_MD5SUM:=$(LINUX_KERNEL_MD5SUM) 
    2526LINUX_DIR := $(PKG_BUILD_DIR) 
     
    2829include $(INCLUDE_DIR)/kernel-defaults.mk 
    2930 
    30 define Build/Configure/cris 
     31ifeq ($(strip $(BOARD)),uml) 
     32  LINUX_KARCH:=$(ARCH) 
     33endif 
     34 
     35KMAKE := $(MAKE) -C $(PKG_BUILD_DIR) \ 
     36        ARCH=$(LINUX_KARCH) \ 
     37        KBUILD_HAVE_NLS=no \ 
     38        CONFIG_SHELL=$(BASH) 
     39 
     40define Build/Prepare/pre/cris 
    3141        ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/include/asm-cris/arch 
    3242        ln -sf $(PKG_BUILD_DIR)/include/asm-cris/arch-v10 $(PKG_BUILD_DIR)/arch/cris/arch 
    3343endef 
    3444 
    35 define Build/Configure/powerpc 
     45define Build/Prepare/pre/powerpc 
    3646        if [ -d $(PKG_BUILD_DIR)/include/asm-ppc ]; then \ 
    3747                $(CP) $(PKG_BUILD_DIR)/include/asm-ppc/* $(PKG_BUILD_DIR)/include/asm-powerpc/; \ 
     
    4151endef 
    4252 
    43 ifneq (,$(findstring uml,$(BOARD))) 
    44   LINUX_KARCH:=$(ARCH) 
     53ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.18)),1) 
     54  define Build/Prepare/all 
     55        mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr 
     56        $(KMAKE) \ 
     57                CROSS_COMPILE=$(TARGET_CROSS) \ 
     58                INSTALL_HDR_PATH="$(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/" \ 
     59                headers_install 
     60  endef 
     61else 
     62  define Build/Prepare/all 
     63        mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include 
     64        cp -pLR \ 
     65                $(BUILD_DIR_TOOLCHAIN)/linux/include/asm \ 
     66                $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic \ 
     67                $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(LINUX_KARCH) \ 
     68                $(BUILD_DIR_TOOLCHAIN)/linux/include/linux \ 
     69                $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include/ 
     70  endef 
    4571endif 
    46  
    47 KMAKE := $(MAKE) -C $(PKG_BUILD_DIR) \ 
    48         ARCH=$(LINUX_KARCH) \ 
    49         KBUILD_HAVE_NLS=no \ 
    50         CONFIG_SHELL=$(BASH) 
    5172 
    5273define Build/Prepare 
     
    6182                        $(PKG_BUILD_DIR)/include/asm-$(LINUX_KARCH)/; \ 
    6283        fi 
    63         $(call Build/Configure/$(ARCH)) 
     84        $(call Build/Prepare/pre/$(ARCH)) 
     85        $(call Build/Prepare/all) 
    6486endef 
    6587 
     
    7092endef 
    7193 
     94define Build/Install/all 
     95        mkdir -p $(TOOLCHAIN_DIR)/usr/include 
     96        $(CP) \ 
     97                $(BUILD_DIR_TOOLCHAIN)/linux-dev/usr/include/* \ 
     98                $(TOOLCHAIN_DIR)/usr/include/ 
     99endef 
     100 
     101# XXX: the following is needed to build lzma-loader 
     102define Build/Install/post/lzma 
     103        $(CP) \ 
     104                $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-mips/asm.h \ 
     105                $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-mips/regdef.h \ 
     106                $(TOOLCHAIN_DIR)/usr/include/asm/ 
     107endef 
     108 
     109define Build/Install/post/mips 
     110        $(call Build/Install/post/lzma) 
     111endef 
     112 
     113define Build/Install/post/mipsel 
     114        $(call Build/Install/post/lzma) 
     115endef 
     116 
    72117define Build/Install 
     118        $(call Build/Install/all) 
     119        $(call Build/Install/post/$(ARCH)) 
     120endef 
     121 
     122define Build/Clean 
     123        rm -rf \ 
     124                $(PKG_BUILD_DIR) \ 
     125                $(BUILD_DIR_TOOLCHAIN)/linux \ 
     126                $(BUILD_DIR_TOOLCHAIN)/linux-dev 
    73127endef 
    74128 
  • trunk/toolchain/uClibc/Config.in

    r10284 r13931  
    22 
    33choice 
    4         prompt "uClibc Version" if TOOLCHAINOPTS 
     4        prompt "uClibc Version" 
     5        depends on TOOLCHAINOPTS && USE_UCLIBC 
    56        default UCLIBC_VERSION_0_9_29 
    67        help 
     
    2122config UCLIBC_EXTRA_VERSION 
    2223        string 
    23         prompt "Extra uClibc version" if TOOLCHAINOPTS 
     24        prompt "Extra uClibc version" 
     25        depends on TOOLCHAINOPTS && USE_UCLIBC 
    2426        default "snapshot"   if UCLIBC_VERSION_SNAPSHOT 
    2527        default ".2"         if UCLIBC_VERSION_0_9_28 
  • trunk/toolchain/uClibc/Config.version

    r11993 r13931  
    11config UCLIBC_VERSION 
    22        string 
     3        depends on USE_UCLIBC 
    34        default ""           if UCLIBC_VERSION_snapshot 
    45        default "0.9.28"     if UCLIBC_VERSION_0_9_28 
     
    67        default "0.9.29" 
    78 
    8  
  • trunk/toolchain/uClibc/Makefile

    r13144 r13931  
    5555  PKG_BUILD_DIR:=$(BUILD_DIR_HOST)/uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION) 
    5656endif 
     57 
    5758override CONFIG_AUTOREBUILD= 
    5859 
     
    7778) 
    7879 
    79 # Remove me when there are no 2.6.23 targets 
    80 ifeq ($(findstring 86,$(ARCH)),86) 
    81   ifneq ($(LINUX_2_6_23),y) 
    82         UCLIBC_TARGET_ARCH:=x86 
    83   endif 
    84 endif 
     80 
     81define Build/SetToolchainInfo 
     82        $(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk 
     83        $(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.uclibc.org/,' $(TOOLCHAIN_DIR)/info.mk 
     84        $(SED) 's,^\(LIBC_VERSION\)=.*,\1=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk 
     85        $(SED) 's,^\(LIBC_PATCHVER\)=.*,\1=$(PKG_EXTRAVERSION),' $(TOOLCHAIN_DIR)/info.mk 
     86endef 
    8587 
    8688define Build/Prepare/Snapshot 
     
    9597        $(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ 
    9698                $(PKG_BUILD_DIR)/.config 
    97 ifeq ($(CONFIG_SOFT_FLOAT),y) 
     99 ifeq ($(CONFIG_SOFT_FLOAT),y) 
    98100        $(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(PKG_BUILD_DIR)/.config 
    99 endif 
    100 ifeq ($(CONFIG_C99_MATH),y) 
     101 endif 
     102 ifeq ($(CONFIG_C99_MATH),y) 
    101103        $(SED) 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' $(PKG_BUILD_DIR)/.config 
    102 endif 
     104 endif 
    103105endef 
    104106 
    105107define Build/Prepare 
     108        $(call Build/SetToolchainInfo) 
    106109        @echo prepare uClibc version $(PKG_VERSION)$(PKG_EXTRAVERSION)   
    107 ifeq ($(PKG_VERSION_SNAPSHOT),y) 
     110 ifeq ($(PKG_VERSION_SNAPSHOT),y) 
    108111        $(call Build/Prepare/Snapshot) 
    109 else 
     112 else 
    110113        $(call Build/Prepare/Default) 
    111 endif 
     114        ln -snf $(PKG_NAME)-$(PKG_VERSION) $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) 
     115 endif 
    112116        $(CP) ./$(CONFIG_DIR)/$(ARCH)$(if $(wildcard $(CONFIG_DIR)/$(ARCH).$(BOARD)),.$(BOARD)) $(PKG_BUILD_DIR)/.config 
    113 ifeq ($(PKG_VERSION),0.9.28) 
     117 ifeq ($(PKG_VERSION),0.9.28) 
    114118        $(call Build/Prepare/V_0_9_28) 
    115 endif 
     119 endif 
    116120        $(SED) 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \ 
    117121                -e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=$(if $(CONFIG_SOFT_FLOAT),n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,y),g' \ 
     
    121125                -e 's,^.*UCLIBC_HAS_SHADOW.*,UCLIBC_HAS_SHADOW=$(if $(CONFIG_SHADOW_PASSWORDS),y,n),g' \ 
    122126                $(PKG_BUILD_DIR)/.config 
    123         mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/usr/include 
    124         mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/usr/lib 
    125         mkdir -p $(BUILD_DIR_HOST)/uClibc_dev/lib 
    126 #       if [ ! -f $(BUILD_DIR_HOST)/uClibc_dev/usr/include/linux/version.h ] ; then \ 
    127 #               cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ 
    128 #               cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(TOOLCHAIN_DIR)/include/ ; \ 
    129 #               cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/* $(PKG_BUILD_DIR)/include/ ; \ 
    130 #       fi; 
    131         if [ ! -f $(BUILD_DIR_HOST)/uClibc_dev/usr/include/linux/version.h ] ; then \ 
    132                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ 
    133                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ 
    134                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ 
    135                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(BUILD_DIR_HOST)/uClibc_dev/usr/include/; \ 
    136                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(TOOLCHAIN_DIR)/include/ ; \ 
    137                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(TOOLCHAIN_DIR)/include/ ; \ 
    138                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(TOOLCHAIN_DIR)/include/ ; \ 
    139                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(TOOLCHAIN_DIR)/include/ ; \ 
    140                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm $(PKG_BUILD_DIR)/include/ ; \ 
    141                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-$(UCLIBC_TARGET_ARCH) $(PKG_BUILD_DIR)/include/ ; \ 
    142                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/asm-generic $(PKG_BUILD_DIR)/include/ ; \ 
    143                 cp -pLR $(BUILD_DIR_TOOLCHAIN)/linux/include/linux $(PKG_BUILD_DIR)/include/ ; \ 
    144         fi; 
    145127        $(MAKE) -C $(PKG_BUILD_DIR)/extra/config conf KBUILD_HAVE_NLS= HOSTCFLAGS="-DKBUILD_NO_NLS" 
    146128        PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ 
    147                 PREFIX=$(BUILD_DIR_HOST)/uClibc_dev/ \ 
     129                PREFIX="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/" \ 
    148130                DEVEL_PREFIX=/usr/ \ 
    149                 RUNTIME_PREFIX=$(BUILD_DIR_HOST)/uClibc_dev/ \ 
     131                RUNTIME_PREFIX="$(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev/" \ 
    150132                HOSTCC="$(HOSTCC)" \ 
    151133                CPU_CFLAGS="$(TARGET_CFLAGS)" \ 
     
    158140UCLIBC_MAKE := PATH=$(TARGET_PATH) $(MAKE) -C $(PKG_BUILD_DIR) \ 
    159141        $(TARGET_CONFIGURE_OPTS) \ 
    160         DEVEL_PREFIX=/ \ 
     142        DEVEL_PREFIX=/usr/ \ 
    161143        RUNTIME_PREFIX=/ \ 
    162144        HOSTCC="$(HOSTCC)" \ 
     
    166148        $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(PKG_BUILD_DIR)/Rules.mak 
    167149        $(UCLIBC_MAKE) PREFIX= all 
    168         $(UCLIBC_MAKE) PREFIX=$(STAGING_DIR_HOST)/ install_runtime install_dev 
    169         $(SED) 's,UCLIBC_VERSION=.*,UCLIBC_VERSION=$(PKG_VERSION),' $(TOOLCHAIN_DIR)/info.mk 
    170         $(SED) 's,UCLIBC_PATCHVER=.*,UCLIBC_PATCHVER=$(PKG_EXTRAVERSION),' $(TOOLCHAIN_DIR)/info.mk 
    171         rm -rf $(TOOLCHAIN_DIR)/lib/libc.so 
    172         ln -s libc.so.0 $(TOOLCHAIN_DIR)/lib/libc.so 
     150        $(UCLIBC_MAKE) PREFIX="$(TOOLCHAIN_DIR)/" install_runtime install_dev 
     151        ln -sf ../../lib/libc.so.0 $(TOOLCHAIN_DIR)/usr/lib/libc.so 
     152#       ( cd $(TOOLCHAIN_DIR) ; \ 
     153#               for d in lib usr/lib ; do \ 
     154#                 for f in libc.so libpthread.so libgcc_s.so ; do \ 
     155#                   if [ -f $$$$d/$$$$f -a ! -L $$$$d/$$$$f ] ; then \ 
     156#                     $(SED) 's,/usr/lib/,,g;s,/lib/,,g' $$$$d/$$$$f ; \ 
     157#                   fi \ 
     158#                 done \ 
     159#               done \ 
     160#       ) 
    173161endef 
    174162 
    175163define Build/Install 
    176164        $(UCLIBC_MAKE) PREFIX= utils 
    177         $(INSTALL_DIR) $(TOOLCHAIN_DIR)/target-utils 
     165        $(INSTALL_DIR) $(TOOLCHAIN_DIR)/usr/bin 
    178166        $(INSTALL_BIN) \ 
    179167                $(PKG_BUILD_DIR)/utils/ldd \ 
     168                $(TOOLCHAIN_DIR)/usr/bin/ 
     169        $(INSTALL_DIR) $(TOOLCHAIN_DIR)/sbin 
     170        $(INSTALL_BIN) \ 
    180171                $(PKG_BUILD_DIR)/utils/ldconfig \ 
    181                 $(TOOLCHAIN_DIR)/target-utils/ 
     172                $(TOOLCHAIN_DIR)/sbin/ 
    182173endef 
    183174 
    184175define Build/Clean 
    185         rm -rf $(PKG_BUILD_DIR) $(BUILD_DIR_HOST)/uClibc_dev 
     176        rm -rf \ 
     177                $(PKG_BUILD_DIR) \ 
     178                $(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME) \ 
     179                $(BUILD_DIR_TOOLCHAIN)/$(LIBC)-dev 
    186180endef 
    187181 
Note: See TracChangeset for help on using the changeset viewer.