summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--make/ext2root.mk6
-rw-r--r--make/gcc_target.mk135
-rw-r--r--make/uclibc.mk51
-rw-r--r--make/uclibc_toolchain.mk96
-rw-r--r--make/user-mode-linux.mk1
-rw-r--r--sources/uClibc.config74
6 files changed, 255 insertions, 108 deletions
diff --git a/make/ext2root.mk b/make/ext2root.mk
index 096d10651..a6b8d26c5 100644
--- a/make/ext2root.mk
+++ b/make/ext2root.mk
@@ -42,10 +42,10 @@ GENEXT2_ADDTOROOTSIZE := 256
# by genext2fs
GENEXT2_MAXROOTSIZE := 8192
-GENEXT2_REALSIZE:=$(subst total,, $(shell du $(TARGET_DIR) -s -c -k | grep total ))
-GENEXT2_SIZE:=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE))
+GENEXT2_REALSIZE=$(subst total,, $(shell du $(TARGET_DIR) -s -c -k | grep total ))
+GENEXT2_SIZE=$(shell expr $(GENEXT2_REALSIZE) + $(GENEXT2_ADDTOROOTSIZE))
# We currently add about 400 device nodes, so add that into the total
-GENEXT2_INODES:=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400)
+GENEXT2_INODES=$(shell expr $(shell find $(TARGET_DIR) | wc -l) + 400)
#ifeq (1,$(shell expr $(GENEXT2_SIZE) \> $(GENEXT2_MAXROOTSIZE)))
# $(error "Filesystem size, $(GENEXT2_SIZE) KB is greater than the maximum $(GENEXT2_MAXROOTSIZE) KB")
diff --git a/make/gcc_target.mk b/make/gcc_target.mk
new file mode 100644
index 000000000..1d8c9fbd5
--- /dev/null
+++ b/make/gcc_target.mk
@@ -0,0 +1,135 @@
+# Makefile for to build a gcc/uClibc toolchain linked vs uClibc
+#
+# Copyright (C) 2002 Erik Andersen <andersen@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
+
+#############################################################
+#
+# You should probably leave this stuff alone unless you are
+# hacking on the toolchain...
+#
+#############################################################
+GNU_TARGET_NAME:=$(ARCH)-linux
+MAKE:=make
+
+#############################################################
+#
+# Where we can find things....
+#
+# for various dependancy reasons, these need to live
+# here at the top... Easier to find things here anyways...
+#
+#############################################################
+BINUTILS_DIR2:=$(BUILD_DIR)/binutils-target
+GCC_BUILD_DIR3:=$(BUILD_DIR)/gcc-target
+
+
+#############################################################
+#
+# build binutils
+#
+#############################################################
+$(BINUTILS_DIR2)/.configured:
+ mkdir -p $(BINUTILS_DIR2)
+ (cd $(BINUTILS_DIR2); PATH=$$PATH:$(STAGING_DIR)/bin CC=$(TARGET_CROSS)gcc \
+ $(BINUTILS_DIR)/configure --enable-shared \
+ --target=$(GNU_TARGET_NAME) --prefix=/usr \
+ --enable-targets=$(GNU_TARGET_NAME) \
+ --program-prefix="");
+ touch $(BINUTILS_DIR2)/.configured
+
+$(BINUTILS_DIR2)/binutils/objdump: $(BINUTILS_DIR2)/.configured
+ $(MAKE) tooldir=$(TARGET_DIR) -C $(BINUTILS_DIR2);
+
+$(TARGET_DIR)/$(GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR2)/binutils/objdump
+ $(MAKE) DESTDIR=$(TARGET_DIR) prefix=$(TARGET_DIR)/usr \
+ bindir=$(TARGET_DIR)/usr/bin -C $(BINUTILS_DIR2) install
+ rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share
+
+$(TARGET_DIR)/usr/lib/libg.a:
+ $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ar rv $(TARGET_DIR)/usr/lib/libg.a;
+
+binutils_target: gcc_final $(TARGET_DIR)/$(GNU_TARGET_NAME)/bin/ld $(TARGET_DIR)/usr/lib/libg.a
+
+binutils_target-clean:
+ rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
+ -$(MAKE) -C $(BINUTILS_DIR2) clean
+
+binutils_target-dirclean:
+ rm -rf $(BINUTILS_DIR2)
+
+
+
+
+#############################################################
+#
+# uClibc just needs its header files and whatnot installed.
+#
+#############################################################
+
+$(TARGET_DIR)/lib/libc.a: $(STAGING_DIR)/lib/libc.a
+ $(MAKE) DEVEL_PREFIX=$(TARGET_DIR)/usr SYSTEM_DEVEL_PREFIX=$(TARGET_DIR) \
+ DEVEL_TOOL_PREFIX=$(TARGET_DIR) -C $(UCLIBC_DIR) \
+ install_dev
+ rm -rf $(TARGET_DIR)/include
+
+uclibc_target: gcc_final $(TARGET_DIR)/lib/libc.a
+
+uclibc_target-clean:
+ rm -f $(TARGET_DIR)/include
+
+uclibc_target-dirclean:
+ rm -f $(TARGET_DIR)/include
+
+
+
+#############################################################
+#
+# Next build target gcc compiler
+#
+#############################################################
+$(GCC_BUILD_DIR3)/.configured:
+ mkdir -p $(GCC_BUILD_DIR3)
+ (cd $(GCC_BUILD_DIR3); PATH=$$PATH:$(STAGING_DIR)/bin AR=$(TARGET_CROSS)ar \
+ RANLIB=$(TARGET_CROSS)ranlib LD=$(TARGET_CROSS)ld CC=$(TARGET_CROSS)gcc \
+ $(GCC_DIR)/configure \
+ --target=$(GNU_TARGET_NAME) --prefix=/usr --includedir=$(STAGING_DIR) \
+ --enable-target-optspace --disable-nls --with-gnu-ld \
+ --enable-shared --enable-languages=c,c++ );
+ touch $(GCC_BUILD_DIR3)/.configured
+
+$(GCC_BUILD_DIR3)/.compiled: $(GCC_BUILD_DIR3)/.configured
+ PATH=$$PATH:$(STAGING_DIR)/bin $(MAKE) -C $(GCC_BUILD_DIR3)
+ touch $(GCC_BUILD_DIR3)/.compiled
+
+$(GCC_BUILD_DIR3)/.installed: $(GCC_BUILD_DIR3)/.compiled
+ PATH=$$PATH:$(STAGING_DIR)/bin $(MAKE) DESTDIR=$(TARGET_DIR) prefix=$(TARGET_DIR)/usr \
+ -C $(GCC_BUILD_DIR3) install;
+ touch $(GCC_BUILD_DIR3)/.installed
+
+$(GCC_BUILD_DIR3)/.stripped: $(GCC_BUILD_DIR3)/.installed
+ -strip --strip-all -R .note -R .comment $(TARGET_DIR)/bin/*
+ touch $(BUILD_DIR)/.stripped
+
+gcc_target: uclibc_target binutils_target $(GCC_BUILD_DIR3)/.stripped
+
+gcc_target-clean:
+ rm -rf $(GCC_BUILD_DIR3)
+ rm -f $(TARGET_DIR)/bin/$(GNU_TARGET_NAME)*
+
+gcc_target-dirclean:
+ rm -rf $(GCC_BUILD_DIR3)
+
diff --git a/make/uclibc.mk b/make/uclibc.mk
index 3b8418fcc..41e8f4093 100644
--- a/make/uclibc.mk
+++ b/make/uclibc.mk
@@ -29,8 +29,8 @@ UCLIBC_DIR=$(BUILD_DIR)/uClibc
UCLIBC_SOURCE=uClibc-snapshot.tar.bz2
UCLIBC_SITE:=ftp://www.uclibc.org/uClibc
else
-UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.15
-UCLIBC_SOURCE:=uClibc-0.9.15.tar.bz2
+UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.16
+UCLIBC_SOURCE:=uClibc-0.9.16.tar.bz2
UCLIBC_SITE:=http://www.kernel.org/pub/linux/libs/uclibc
endif
#UCLIBC_PATCH=$(SOURCE_DIR)/uClibc.patch
@@ -39,9 +39,6 @@ LARGEFILE=true
else
LARGEFILE=false
endif
-ifneq ($(CROSS),)
-CROSSARG:=--cross="$(CROSS)"
-endif
$(DL_DIR)/$(UCLIBC_SOURCE):
wget -P $(DL_DIR) --passive-ftp $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
@@ -56,34 +53,18 @@ ifeq ($(LINUX_DIR),)
LINUX_DIR:=$(BUILD_DIR)/linux
endif
-$(UCLIBC_DIR)/Config: $(UCLIBC_DIR)/.unpacked
- cp $(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) $(UCLIBC_DIR)/Config~;
- echo "TARGET_ARCH=$(ARCH)" >> $(UCLIBC_DIR)/Config~
- $(UCLIBC_DIR)/extra/Configs/uClibc_config_fix.pl \
- --arch=$(ARCH) \
- $(CROSSARG) --c99_math=true \
- --devel_prefix=$(STAGING_DIR) \
- --kernel_dir=$(LINUX_DIR) \
- --float=true \
- --c99_math=true \
- --float=true \
- --shadow=true \
- --threads=true \
- --rpc_support=true \
- --large_file=true \
- --mmu=true \
- --debug=false \
- --ldso_path="/lib" \
- --shared_support=true \
- --file=$(UCLIBC_DIR)/Config~ \
- > $(UCLIBC_DIR)/Config;
- perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=$(STAGING_DIR),g' \
- $(UCLIBC_DIR)/Config
- perl -i -p -e 's,^DEVEL_TOOL_PREFIX.*,DEVEL_TOOL_PREFIX=$(STAGING_DIR)/usr,g' \
- $(UCLIBC_DIR)/Config
- perl -i -p -e 's,^HAS_WCHAR.*,HAS_WCHAR=true,g' $(UCLIBC_DIR)/Config
-
-$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/Config
+$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
+ perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=$(ARCH)\nCROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR)/Rules.mak
+ cp $(SOURCE_DIR)/uClibc.config $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"$(STAGING_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX=.*,SYSTEM_DEVEL_PREFIX=\"$(STAGING_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^DEVEL_TOOL_PREFIX=.*,DEVEL_TOOL_PREFIX=\"$(STAGING_DIR)/usr\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH=\"/lib\",g' $(UCLIBC_DIR)/.config
+ $(MAKE) -C $(UCLIBC_DIR) oldconfig
+ touch $(UCLIBC_DIR)/.configured
+
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured
$(MAKE) -C $(UCLIBC_DIR)
$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
@@ -105,8 +86,8 @@ uclibc: $(LINUX_KERNEL) $(STAGING_DIR)/lib/libc.a $(TARGET_DIR)/lib/libc.so.0 $(
uclibc-clean:
rm -f $(TARGET_DIR)/lib/libc.so.0
- -make -C $(UCLIBC_DIR) clean
- rm -f $(UCLIBC_DIR)/Config
+ -$(MAKE) -C $(UCLIBC_DIR) clean
+ rm -f $(UCLIBC_DIR)/.config
uclibc-dirclean:
rm -rf $(UCLIBC_DIR)
diff --git a/make/uclibc_toolchain.mk b/make/uclibc_toolchain.mk
index f883ff82b..178b25293 100644
--- a/make/uclibc_toolchain.mk
+++ b/make/uclibc_toolchain.mk
@@ -26,13 +26,6 @@ ifeq ($(USE_UCLIBC_TOOLCHAIN),true)
# C compiler for the build system
HOSTCC:=gcc
-# Set this to `false' if you are building for a CPU does not have
-# a memory management unit (MMU) -- i.e. an uClinux system.. If
-# you are targeting a regular Linux system, leave this "true".
-# Set Most people will leave this set to "true".
-HAS_MMU:=true
-
-
#############################################################
#
# You should probably leave this stuff alone unless you are
@@ -42,26 +35,6 @@ HAS_MMU:=true
GNU_TARGET_NAME:=$(ARCH)-linux
MAKE:=make
-NATIVE_ARCH:= ${shell uname -m | sed \
- -e 's/i.86/i386/' \
- -e 's/sparc.*/sparc/' \
- -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/' \
- }
-#ifeq ($(strip $(ARCH)),$(strip $(NATIVE_ARCH)))
-#CROSSARG=
-#else
-CROSSARG=--cross=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
-#endif
-ifneq ($(HAS_MMU),true)
-NOMMU:=nommu
-endif
-
-
#############################################################
#
# Where we can find things....
@@ -73,6 +46,7 @@ endif
BINUTILS_SITE:=ftp://ftp.gnu.org/gnu/binutils/
BINUTILS_SOURCE:=binutils-2.12.1.tar.bz2
BINUTILS_DIR:=$(BUILD_DIR)/binutils-2.12.1
+BINUTILS_DIR1:=$(BUILD_DIR)/binutils-build
ifeq ($(USE_UCLIBC_SNAPSHOT),true)
# Be aware that this changes daily....
@@ -80,8 +54,8 @@ UCLIBC_DIR=$(BUILD_DIR)/uClibc
UCLIBC_SOURCE=uClibc-snapshot.tar.bz2
UCLIBC_SITE:=ftp://www.uclibc.org/uClibc
else
-UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.15
-UCLIBC_SOURCE:=uClibc-0.9.15.tar.bz2
+UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.16
+UCLIBC_SOURCE:=uClibc-0.9.16.tar.bz2
UCLIBC_SITE:=http://www.kernel.org/pub/linux/libs/uclibc
endif
@@ -147,9 +121,6 @@ $(BINUTILS_DIR)/.patched: $(BINUTILS_DIR)/.unpacked
echo "Aborting. Reject files found."; \
exit 1; \
fi
- touch $(BINUTILS_DIR)/.patched
-
-$(BINUTILS_DIR)/.configured: $(BINUTILS_DIR)/.patched
@if `echo "true" | grep -r true`; then true; else \
echo "ERROR! Your grep doesn't support the -r argument."; \
exit 1; \
@@ -157,17 +128,21 @@ $(BINUTILS_DIR)/.configured: $(BINUTILS_DIR)/.patched
(cd $(BINUTILS_DIR); perl -i -p -e "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\"\
,#define ELF_DYNAMIC_INTERPRETER \"/lib/ld-uClibc.so.0\",;" \
`grep -lr "#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\"" $(BINUTILS_DIR)`);
- (cd $(BINUTILS_DIR); CC=$(HOSTCC) ./configure --disable-shared \
+ touch $(BINUTILS_DIR)/.patched
+
+$(BINUTILS_DIR1)/.configured: $(BINUTILS_DIR)/.patched
+ mkdir -p $(BINUTILS_DIR1)
+ (cd $(BINUTILS_DIR1); CC=$(HOSTCC) $(BINUTILS_DIR)/configure --disable-shared \
--target=$(GNU_TARGET_NAME) --prefix=$(STAGING_DIR) \
--enable-targets=$(GNU_TARGET_NAME) \
--program-transform-name=s,^,$(ARCH)-uclibc-,);
- touch $(BINUTILS_DIR)/.configured
+ touch $(BINUTILS_DIR1)/.configured
-$(BINUTILS_DIR)/binutils/objdump: $(BINUTILS_DIR)/.configured
- $(MAKE) -C $(BINUTILS_DIR);
+$(BINUTILS_DIR1)/binutils/objdump: $(BINUTILS_DIR1)/.configured
+ $(MAKE) -C $(BINUTILS_DIR1);
-$(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR)/binutils/objdump
- $(MAKE) -C $(BINUTILS_DIR) install
+$(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld: $(BINUTILS_DIR1)/binutils/objdump
+ $(MAKE) -C $(BINUTILS_DIR1) install
rm -rf $(STAGING_DIR)/info $(STAGING_DIR)/man $(STAGING_DIR)/share
$(STAGING_DIR)/lib/libg.a:
@@ -177,10 +152,10 @@ binutils: linux_headers $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin/ld $(STAGING_DIR)/
binutils-clean:
rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)*
- -$(MAKE) -C $(BINUTILS_DIR) clean
+ -$(MAKE) -C $(BINUTILS_DIR1) clean
binutils-dirclean:
- rm -rf $(BINUTILS_DIR)
+ rm -rf $(BINUTILS_DIR1)
@@ -259,42 +234,25 @@ $(UCLIBC_DIR)/.unpacked: $(BUILD_DIR)/.setup $(DL_DIR)/$(UCLIBC_SOURCE)
touch $(UCLIBC_DIR)/.unpacked
$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
- cp $(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) $(UCLIBC_DIR)/Config~;
- echo "TARGET_ARCH=$(ARCH)" >> $(UCLIBC_DIR)/Config~
- $(UCLIBC_DIR)/extra/Configs/uClibc_config_fix.pl \
- --arch=$(ARCH) \
- $(CROSSARG) --c99_math=true \
- --devel_prefix=$(STAGING_DIR) \
- --kernel_dir=$(LINUX_DIR) \
- --float=true \
- --c99_math=true \
- --float=true \
- --shadow=true \
- --threads=true \
- --rpc_support=true \
- --large_file=true \
- --mmu=$(HAS_MMU) \
- --debug=false \
- --ldso_path="/lib" \
- --shared_support=$(HAS_MMU) \
- --file=$(UCLIBC_DIR)/Config~ \
- > $(UCLIBC_DIR)/Config;
- perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=$(STAGING_DIR),g' \
- $(UCLIBC_DIR)/Config
- perl -i -p -e 's,^DEVEL_TOOL_PREFIX.*,DEVEL_TOOL_PREFIX=$(STAGING_DIR)/usr,g' \
- $(UCLIBC_DIR)/Config
- perl -i -p -e 's,^HAS_WCHAR.*,HAS_WCHAR=false,g' $(UCLIBC_DIR)/Config
+ perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=$(ARCH)\nCROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR)/Rules.mak
+ cp $(SOURCE_DIR)/uClibc.config $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"$(STAGING_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX=.*,SYSTEM_DEVEL_PREFIX=\"$(STAGING_DIR)\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^DEVEL_TOOL_PREFIX=.*,DEVEL_TOOL_PREFIX=\"$(STAGING_DIR)/usr\",g' $(UCLIBC_DIR)/.config
+ perl -i -p -e 's,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH=\"/lib\",g' $(UCLIBC_DIR)/.config
+ $(MAKE) -C $(UCLIBC_DIR) oldconfig
# Note that since the target compiler does not yet exist, we will not
# be able to properly generate include/bits/syscall.h so we will need
# to run part again later...
- $(MAKE) -C $(UCLIBC_DIR) headers uClibc_config install_dev;
+ $(MAKE) -C $(UCLIBC_DIR) headers install_dev;
touch $(UCLIBC_DIR)/.configured
# Now that we have a working target compiler, rebuild the header files for the
# target so things like include/bits/syscall.h can actually be built this time
# around...
$(UCLIBC_DIR)/.config_final: $(UCLIBC_DIR)/.configured
- $(MAKE) -C $(UCLIBC_DIR) headers uClibc_config install_dev;
+ $(MAKE) -C $(UCLIBC_DIR) headers install_dev;
touch $(UCLIBC_DIR)/.config_final
$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.config_final
@@ -316,7 +274,7 @@ uclibc: gcc_initial $(STAGING_DIR)/lib/libc.a $(TARGET_DIR)/lib/libc.so.0 $(TARG
uclibc-clean:
-$(MAKE) -C $(UCLIBC_DIR) clean
- rm -f $(UCLIBC_DIR)/Config
+ rm -f $(UCLIBC_DIR)/.config
uclibc-dirclean:
rm -rf $(UCLIBC_DIR)
@@ -391,11 +349,9 @@ $(GCC_BUILD_DIR2)/.installed: $(GCC_BUILD_DIR2)/.compiled
#Cleanup then mess when --program-transform-name mysteriously fails
$(GCC_BUILD_DIR2)/.fixedup: $(GCC_BUILD_DIR2)/.installed
-ifeq ($(strip $(ARCH)),$(strip $(NATIVE_ARCH)))
-mv $(STAGING_DIR)/bin/gcc $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin;
-mv $(STAGING_DIR)/bin/protoize $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin;
-mv $(STAGING_DIR)/bin/unprotoize $(STAGING_DIR)/$(GNU_TARGET_NAME)/bin;
-endif
-mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-cpp $(STAGING_DIR)/bin/$(ARCH)-uclibc-cpp
-mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-gcc $(STAGING_DIR)/bin/$(ARCH)-uclibc-gcc
-mv $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-c++ $(STAGING_DIR)/bin/$(ARCH)-uclibc-c++
diff --git a/make/user-mode-linux.mk b/make/user-mode-linux.mk
index 90224d08a..f7dddccc7 100644
--- a/make/user-mode-linux.mk
+++ b/make/user-mode-linux.mk
@@ -4,6 +4,7 @@
#
#############################################################
UMLINUX_DIR=$(BUILD_DIR)/linux-2.4.19
+LINUX_DIR=$(UMLINUX_DIR)
UMLINUX_SOURCE=linux-2.4.19.tar.bz2
UMLINUX_SITE=http://ftp.us.kernel.org/pub/linux/kernel/v2.4
UMLINUX_PATCH_1:=uml-patch-2.4.19-5.bz2
diff --git a/sources/uClibc.config b/sources/uClibc.config
new file mode 100644
index 000000000..2a36c5331
--- /dev/null
+++ b/sources/uClibc.config
@@ -0,0 +1,74 @@
+#
+# Automatically generated make config: don't edit
+#
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+CONFIG_386=y
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+UCLIBC_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/usr/src/linux"
+C_SYMBOL_PREFIX=""
+
+#
+# General Library Settings
+#
+DOPIC=y
+HAVE_SHARED=y
+BUILD_UCLIBC_LDSO=y
+LDSO_LDD_SUPPORT=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+MALLOC_930716=y
+HAS_SHADOW=y
+UCLIBC_HAS_REGEX=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+
+#
+# Networking Support
+#
+# UCLIBC_HAS_IPV6 is not set
+UCLIBC_HAS_RPC=y
+# UCLIBC_HAS_FULL_RPC is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+# USE_OLD_VFPRINTF is not set
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PATH="/lib"
+DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc"
+SYSTEM_DEVEL_PREFIX="$(DEVEL_PREFIX)"
+DEVEL_TOOL_PREFIX="$(DEVEL_PREFIX)/usr"
+
+#
+# uClibc hacking options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set