A number of updates

This commit is contained in:
Eric Andersen 2002-07-03 10:44:59 +00:00
parent 5c2d0eab68
commit 95f81a5a55
8 changed files with 273 additions and 37 deletions

View File

@ -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)

View 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)

View 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} | \

View 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

View 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
$(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*
$(STAGING_DIR)/bin/$(ARCH)-uclibc-gcc: $(STAGING_DIR)/lib/libc.a
$(MAKE) -C $(UCLIBC_DIR) install_toolchain
uclibc: $(LINUX_KERNEL) $(TARGET_DIR)/lib/libc.so.0
$(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)/usr/bin/ldd: $(TARGET_DIR)/lib/libc.so.0
$(MAKE) -C $(UCLIBC_DIR) PREFIX=$(TARGET_DIR) install_target_utils
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

View 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

View 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

Binary file not shown.