A number of updates
authorEric Andersen <andersen@codepoet.org>
Wed, 3 Jul 2002 10:44:59 +0000 (10:44 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 3 Jul 2002 10:44:59 +0000 (10:44 -0000)
Makefile
make/ext2root.mk
make/ncurses.mk
make/tinylogin.mk
make/uclibc.mk
make/user-mode-linux.mk
sources/busybox.patch
sources/skel.tar.gz

index 053a0f1cd369c5dfec70f050141ddcedd7cc306e..220feabee9f064ece1d2b50d8cdc6e64b8056ac4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -33,15 +33,18 @@ ARCH:=i386
 #ARCH:=arm
 #ARCH:=whatever
 
+# enable to build a native gcc toolchain with uclibc support
+USE_UCLIBC_TOOLCHAIN:=false
+
 # Enable this to use the uClibc daily snapshot instead of a released
 # version.  Daily snapshots may contain new features and bugfixes. Or
-# they may not even compile at all...
+# they may not even compile at all, depending on what Erik is doing...
 USE_UCLIBC_SNAPSHOT:=true
 
 # Enable this to use the busybox daily snapshot instead of a released
 # version.  Daily snapshots may contain new features and bugfixes. Or
 # they may not even compile at all....
-USE_BUSYBOX_SNAPSHOT:=false
+USE_BUSYBOX_SNAPSHOT:=true
 
 # Enable large file (files > 2 GB) support
 BUILD_WITH_LARGEFILE:=false
@@ -51,7 +54,11 @@ BUILD_WITH_LARGEFILE:=false
 # The list of stuff to build for the target filesystem
 #
 #############################################################
-TARGETS:=user-mode-linux uclibc busybox tinylogin
+ifeq ($(USE_UCLIBC_TOOLCHAIN),true)
+TARGETS=uclibc_toolchain
+endif
+
+TARGETS+=user-mode-linux busybox tinylogin #ncurses gdb strace valgrind
 
 # Pick your root filesystem type.
 TARGETS+=ext2root
@@ -71,10 +78,10 @@ PATCH_DIR=$(SOURCE_DIR)/patches
 BUILD_DIR:=$(BASE_DIR)/build
 TARGET_DIR:=$(BUILD_DIR)/root
 STAGING_DIR:=$(BUILD_DIR)/staging_dir
-TARGET_CC:=$(STAGING_DIR)/bin/gcc
-TARGET_CROSS:=$(STAGING_DIR)/usr/bin/$(ARCH)-uclibc-
+TARGET_CC:=$(STAGING_DIR)/usr/bin/gcc
+TARGET_CROSS:=$(STAGING_DIR)/bin/$(ARCH)-uclibc-
 TARGET_CC1:=$(TARGET_CROSS)gcc
-TARGET_PATH:=$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
+TARGET_PATH:=$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:/bin:/sbin:/usr/bin:/usr/sbin
 STRIP:=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
 IMAGE:=$(BASE_DIR)/root_fs
 ifneq ($(strip $(ARCH)),i386)
index 37a9da2c01a357b55c675c5b0bff7376dd4795cc..33ec01ba73d5febccc473f29483ab8932602e7f9 100644 (file)
@@ -35,12 +35,12 @@ genext2fs: $(GENEXT2_DIR)/genext2fs
 #
 #############################################################
 # FIXME -- calculate these numbers...
-SIZE=4000
+SIZE=8000
 INODES=1000
 
 ext2root: genext2fs #$(shell find $(TARGET_DIR) -type f)
-       -@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
-       -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
+       #-@find $(TARGET_DIR)/lib -type f -name \*.so\* | xargs $(STRIP) --strip-unneeded 2>/dev/null || true;
+       #-@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIP) 2>/dev/null || true;
        $(GENEXT2_DIR)/genext2fs -i $(INODES) -b $(SIZE) -d $(TARGET_DIR) -D $(SOURCE_DIR)/device_table.txt $(IMAGE)
 
 ext2root-source: $(DL_DIR)/$(GENEXT2_SOURCE)
index 8d612daa9d085f8c4ff6bf7ae92abf07d1d8d954..52a7a7d3f68e78621440bf771209e8f99d0bb2ea 100644 (file)
@@ -5,7 +5,7 @@
 #
 #############################################################
 # Copyright (C) 2002 by Ken Restivo <ken@246gt.com>
-# $Id: ncurses.mk,v 1.6 2002/06/10 15:32:56 andersen Exp $
+# $Id: ncurses.mk,v 1.7 2002/07/03 10:44:59 andersen Exp $
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU Library General Public License as
@@ -64,7 +64,7 @@ $(STAGING_DIR)/lib/libncurses.so: $(NCURSES_DIR)/lib/libncurses.so
 
 $(TARGET_DIR)/lib/libncurses.so: $(STAGING_DIR)/lib/libncurses.so
        cp -a $(STAGING_DIR)/lib/libncurses.so* $(TARGET_DIR)/lib/
-       cp -a $(STAGING_DIR)/usr/lib/terminfo $(TARGET_DIR)/usr/lib/
+       -cp -a $(STAGING_DIR)/usr/lib/terminfo $(TARGET_DIR)/usr/lib/
        for i in x/xterm x/xterm-color x/xterm-xfree86 v/vt100 v/vt200 a/ansi l/linux; do \
                cd $(STAGING_DIR)/usr/share/; \
                tar -cf - terminfo/$${i} | \
index 4068f31f0aa6a28815d961c5157da826cc2a8ea8..64292c73f75e4971af2d4c2d865dba790958d45b 100644 (file)
@@ -19,6 +19,7 @@ $(TINYLOGIN_DIR)/Config.h: $(DL_DIR)/$(TINYLOGIN_SOURCE)
        perl -i -p -e "s/\`id -u\` -ne 0/0 == 1/;" \
                -e "s/4755 --owner=root --group=root/755/" \
                $(TINYLOGIN_DIR)/install.sh
+       perl -i -p -e "s/^DODEBUG.*/DODEBUG=true/g;" $(TINYLOGIN_DIR)/Makefile
        # date test this one
        touch $(TINYLOGIN_DIR)/Config.h
 
index e8c38ef82f6021f13359605463106c6d307ffb09..45059712683b9e47264f34fc0ffdf80c5eb7fe33 100644 (file)
@@ -3,17 +3,36 @@
 # uClibc (the C library)
 #
 #############################################################
+# Copyright (C) 2001, 2002 by Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library 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
+
+ifeq ($(USE_UCLIBC_TOOLCHAIN),false)
 
 ifeq ($(USE_UCLIBC_SNAPSHOT),true)
 # Be aware that this changes daily....
 UCLIBC_DIR=$(BUILD_DIR)/uClibc
 UCLIBC_SOURCE=uClibc-snapshot.tar.bz2
 else
-UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.11
-UCLIBC_SOURCE:=uClibc-0.9.11.tar.bz2
+UCLIBC_DIR:=$(BUILD_DIR)/uClibc-0.9.12
+UCLIBC_SOURCE:=uClibc-0.9.12.tar.bz2
 endif
-#UCLIBC_URI:=http://www.uclibc.org/downloads
-UCLIBC_URI:=http://de.busybox.net/downloads/uClibc
+#UCLIBC_PATCH=$(SOURCE_DIR)/uClibc.patch
+UCLIBC_URI:=ftp://www.uclibc.org/uClibc
 ifeq ($(strip $(BUILD_WITH_LARGEFILE)),true)
 LARGEFILE=true
 else
@@ -26,46 +45,63 @@ endif
 $(DL_DIR)/$(UCLIBC_SOURCE):
        wget -P $(DL_DIR) --passive-ftp $(UCLIBC_URI)/$(UCLIBC_SOURCE)
 
-uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
+uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE) #$(UCLIBC_PATCH)
 
-$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE)
-       rm -rf $(UCLIBC_DIR)
-       bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(BUILD_DIR) -xvf - 
+$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) #$(UCLIBC_PATCH)
+       bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(BUILD_DIR) -xvf -
        touch $(UCLIBC_DIR)/.unpacked
 
-$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked
+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) \
-               --float=true \
                --kernel_dir=$(LINUX_DIR) \
-               --large_file=$(LARGEFILE) \
-               --ldso_path="/lib" \
+               --float=true \
+               --c99_math=true \
                --long_long=true \
-               --rpc_support=true \
+               --float=true \
                --shadow=true \
-               --shared_support=true \
                --threads=true \
-               --debug=true \
-               --file=$(UCLIBC_DIR)/extra/Configs/Config.$(ARCH) \
+               --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)/usr,g' \
+       perl -i -p -e 's,^SYSTEM_DEVEL_PREFIX.*,SYSTEM_DEVEL_PREFIX=$(STAGING_DIR),g' \
                $(UCLIBC_DIR)/Config
-       touch $(UCLIBC_DIR)/.configured
+       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)/.configured
+$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/Config
        $(MAKE) -C $(UCLIBC_DIR)
 
 $(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
-       $(MAKE) -C $(UCLIBC_DIR) install
+       $(MAKE) -C $(UCLIBC_DIR) install_dev install_runtime install_toolchain
+
+$(STAGING_DIR)/bin/$(ARCH)-uclibc-gcc: $(STAGING_DIR)/lib/libc.a
+       $(MAKE) -C $(UCLIBC_DIR) install_toolchain
+
+$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/bin/$(ARCH)-uclibc-gcc
+       $(MAKE) -C $(UCLIBC_DIR) DEVEL_PREFIX=$(TARGET_DIR) \
+               SYSTEM_DEVEL_PREFIX=$(TARGET_DIR) \
+               DEVEL_TOOL_PREFIX=$(TARGET_DIR)/usr \
+               install_runtime
 
-$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a
-       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(TARGET_DIR) \
-               DEVEL_PREFIX=/ install_runtime install_target_utils
-       $(STRIP) --strip-unneeded $(TARGET_DIR)/lib/*.so*
+$(TARGET_DIR)/usr/bin/ldd: $(TARGET_DIR)/lib/libc.so.0
+       $(MAKE) -C $(UCLIBC_DIR) PREFIX=$(TARGET_DIR) install_target_utils
 
-uclibc: $(LINUX_KERNEL) $(TARGET_DIR)/lib/libc.so.0
+uclibc: $(LINUX_KERNEL) $(STAGING_DIR)/lib/libc.a $(TARGET_DIR)/lib/libc.so.0 $(TARGET_DIR)/usr/bin/ldd
 
 uclibc-clean:
        rm -f $(TARGET_DIR)/lib/libc.so.0
@@ -74,3 +110,5 @@ uclibc-clean:
 
 uclibc-dirclean:
        rm -rf $(UCLIBC_DIR)
+
+endif
index a09f28a8de84d5cf3dfcb16062da3043cbde6806..9cffa8b03953cefc18f2b3a7afc4e107f7dd071e 100644 (file)
@@ -32,7 +32,7 @@ $(UMLINUX_DIR)/.set_arch: $(UMLINUX_DIR)/.patched
 
 $(UMLINUX_DIR)/.configured:  $(UMLINUX_DIR)/.set_arch  $(UMLINUX_KCONFIG)
        cp $(UMLINUX_KCONFIG) $(UMLINUX_DIR)/.config
-       make -C $(UMLINUX_DIR) oldconfig
+       make -C $(UMLINUX_DIR) oldconfig include/linux/version.h
        touch $(UMLINUX_DIR)/.configured
 
 $(UMLINUX_DIR)/.depend_done:  $(UMLINUX_DIR)/.configured
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..99040baf82801cb27bbdb13f8ce4121ff577a98e 100644 (file)
@@ -0,0 +1,190 @@
+--- busybox/Config.h   6 Apr 2002 04:22:15 -0000       1.116
++++ busybox/Config.h   30 May 2002 05:10:32 -0000
+@@ -7,8 +7,8 @@
+ //
+ //
+ // BusyBox Applications
+-//#define BB_ADJTIMEX
+-//#define BB_AR
++#define BB_ADJTIMEX
++#define BB_AR
+ #define BB_ASH
+ #define BB_BASENAME
+ #define BB_CAT
+@@ -37,12 +37,12 @@
+ //#define BB_DUMPKMAP
+ #define BB_ECHO
+ #define BB_ENV
+-//#define BB_EXPR
++#define BB_EXPR
+ //#define BB_FBSET
+ //#define BB_FDFLUSH
+ #define BB_FIND
+ #define BB_FREE
+-//#define BB_FREERAMDISK
++#define BB_FREERAMDISK
+ //#define BB_FSCK_MINIX
+ //#define BB_GETOPT
+ #define BB_GREP
+@@ -51,12 +51,12 @@
+ #define BB_HALT
+ #define BB_HEAD
+ //#define BB_HOSTID
+-//#define BB_HOSTNAME
++#define BB_HOSTNAME
+ //#define BB_HUSH
+ #define BB_ID
+-//#define BB_IFCONFIG
++#define BB_IFCONFIG
+ #define BB_INIT
+-//#define BB_INSMOD
++#define BB_INSMOD
+ #define BB_KILL
+ #define BB_KILLALL
+ #define BB_KLOGD
+@@ -68,11 +68,11 @@
+ //#define BB_LOADKMAP
+ #define BB_LOGGER
+ //#define BB_LOGNAME
+-//#define BB_LOSETUP
++#define BB_LOSETUP
+ #define BB_LS
+ #define BB_LSMOD
+ //#define BB_MAKEDEVS
+-//#define BB_MD5SUM
++#define BB_MD5SUM
+ #define BB_MKDIR
+ //#define BB_MKFIFO
+ //#define BB_MKFS_MINIX
+@@ -85,11 +85,11 @@
+ //#define BB_MSH
+ //#define BB_MT
+ #define BB_MV
+-//#define BB_NC
+-//#define BB_NSLOOKUP
++#define BB_NC
++#define BB_NSLOOKUP
+ #define BB_PIDOF
+-//#define BB_PING
+-//#define BB_PIVOT_ROOT
++#define BB_PING
++#define BB_PIVOT_ROOT
+ #define BB_POWEROFF
+ //#define BB_PRINTF
+ #define BB_PS
+@@ -101,8 +101,8 @@
+ #define BB_RESET
+ #define BB_RM
+ #define BB_RMDIR
+-//#define BB_RMMOD
+-//#define BB_ROUTE
++#define BB_RMMOD
++#define BB_ROUTE
+ //#define BB_RPM2CPIO
+ #define BB_SED
+ //#define BB_SETKEYCODES
+@@ -115,13 +115,13 @@
+ #define BB_TAIL
+ #define BB_TAR
+ //#define BB_TEE
+-//#define BB_TEST
++#define BB_TEST
+ //#define BB_TELNET
+ //#define BB_TFTP
+-//#define BB_TIME
++#define BB_TIME
+ #define BB_TOUCH
+ //#define BB_TR
+-//#define BB_TRACEROUTE
++#define BB_TRACEROUTE
+ #define BB_TRUE_FALSE
+ #define BB_TTY
+ //#define BB_UNIX2DOS
+@@ -133,10 +133,10 @@
+ //#define BB_UPDATE
+ #define BB_UPTIME
+ //#define BB_USLEEP
+-//#define BB_VI
++#define BB_VI
+ //#define BB_WATCHDOG
+ #define BB_WC
+-//#define BB_WGET
++#define BB_WGET
+ #define BB_WHICH
+ #define BB_WHOAMI
+ #define BB_XARGS
+@@ -217,7 +217,7 @@
+ #define BB_FEATURE_USE_INITTAB
+ //
+ //Enable init being called as /linuxrc
+-#define BB_FEATURE_LINUXRC
++//#define BB_FEATURE_LINUXRC
+ //
+ //Have init enable core dumping for child processes (for debugging only) 
+ //#define BB_FEATURE_INIT_COREDUMPS
+@@ -226,7 +226,7 @@
+ //#define BB_FEATURE_EXTRA_QUIET
+ //
+ // enable syslogd -R remotehost
+-#define BB_FEATURE_REMOTE_LOG
++//#define BB_FEATURE_REMOTE_LOG
+ //
+ // enable syslogd -C
+ //#define BB_FEATURE_IPC_SYSLOG
+@@ -277,7 +277,7 @@
+ #define BB_FEATURE_COMMAND_TAB_COMPLETION
+ //
+ // Attempts to match usernames in a ~-prefixed path
+-//#define BB_FEATURE_COMMAND_USERNAME_COMPLETION
++#define BB_FEATURE_COMMAND_USERNAME_COMPLETION
+ //
+ //Allow the shell to invoke all the compiled in BusyBox applets as if they
+ //were shell builtins.  Nice for staticly linking an emergency rescue shell,
+@@ -298,7 +298,7 @@
+ // current username and hostname.  On systems that don't have usernames
+ // or hostnames, this can look hideous.
+ // Only relevant if a shell is enabled.
+-//#define BB_FEATURE_SH_FANCY_PROMPT
++#define BB_FEATURE_SH_FANCY_PROMPT
+ //
+ // Uncomment this option to disable job control.  Job control lets you 
+ // run jobs in the background (which completely useless for is all you 
+@@ -314,7 +314,7 @@
+ //#define BB_FEATURE_FBSET_READMODE
+ //
+ // Support insmod/lsmod/rmmod for post 2.1 kernels
+-//#define BB_FEATURE_NEW_MODULE_INTERFACE
++#define BB_FEATURE_NEW_MODULE_INTERFACE
+ //
+ // Support insmod/lsmod/rmmod for pre 2.1 kernels
+ //#define BB_FEATURE_OLD_MODULE_INTERFACE
+@@ -332,16 +332,16 @@
+ //#define BB_FEATURE_MINIX2
+ //
+ // Enable ifconfig status reporting output -- this feature adds 7k.
+-//#define BB_FEATURE_IFCONFIG_STATUS
++#define BB_FEATURE_IFCONFIG_STATUS
+ //
+ // Enable ifconfig slip-specific options "keepalive" and "outfill"
+-//#define BB_FEATURE_IFCONFIG_SLIP
++#define BB_FEATURE_IFCONFIG_SLIP
+ //
+ // Enable ifconfig options "mem_start", "io_addr", and "irq".
+-//#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
++#define BB_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
+ //
+ // Enable ifconfig option "hw".  Currently works for only with "ether".
+-//#define BB_FEATURE_IFCONFIG_HW
++#define BB_FEATURE_IFCONFIG_HW
+ //
+ // Allows "broadcast +" to set broadcast automatically based on hostaddr
+ // and netmask, at a cost of about 100 bytes of code (i386).
+@@ -379,7 +379,7 @@
+ #define BB_FEATURE_FIND_NEWER
+ //
+ // Support for the -A -B and -C context flags in grep
+-//#define BB_FEATURE_GREP_CONTEXT
++#define BB_FEATURE_GREP_CONTEXT
+ //
+ // Support for the EGREP applet (alias to the grep applet)
+ //#define BB_FEATURE_GREP_EGREP_ALIAS
index a0c9d77ceccc1afa0479292f2e5ca52796dbe132..301c5cfa2852d476b11725d9a4a77f2d1c3a8ff0 100644 (file)
Binary files a/sources/skel.tar.gz and b/sources/skel.tar.gz differ