summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2003-07-16 04:23:28 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2003-07-16 04:23:28 +0000
commitf14eac4eb220c1115a52c75746ca501cf0d0df4c (patch)
treea6b3c37c657365afaaf18bac7de66285c44a5022
parentb9c9c7e740c3d62333a7a8a2d6395efe520dc409 (diff)
downloadptxdist-f14eac4eb220c1115a52c75746ca501cf0d0df4c.tar.gz
ptxdist-f14eac4eb220c1115a52c75746ca501cf0d0df4c.tar.xz
big fat update!
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunk@71 33e552b5-05e3-0310-8538-816dae2090ed
-rw-r--r--CREDITS2
-rw-r--r--ChangeLog73
-rw-r--r--Makefile15
-rw-r--r--config/Config.in573
-rwxr-xr-xconfig/uClibc/Extract80
-rw-r--r--config/uClibc/extra/Configs/Config.alpha613
-rw-r--r--config/uClibc/extra/Configs/Config.arm657
-rw-r--r--config/uClibc/extra/Configs/Config.cris631
-rw-r--r--config/uClibc/extra/Configs/Config.h8300635
-rw-r--r--config/uClibc/extra/Configs/Config.i386690
-rw-r--r--config/uClibc/extra/Configs/Config.i960622
-rw-r--r--config/uClibc/extra/Configs/Config.in485
-rw-r--r--config/uClibc/extra/Configs/Config.in.arch95
-rw-r--r--config/uClibc/extra/Configs/Config.m68k622
-rw-r--r--config/uClibc/extra/Configs/Config.mips614
-rw-r--r--config/uClibc/extra/Configs/Config.mipsel614
-rw-r--r--config/uClibc/extra/Configs/Config.powerpc613
-rw-r--r--config/uClibc/extra/Configs/Config.sh674
-rw-r--r--config/uClibc/extra/Configs/Config.sparc613
-rw-r--r--config/uClibc/extra/Configs/Config.v850633
-rw-r--r--rules/Rules.make145
-rw-r--r--rules/Virtual.make26
-rw-r--r--rules/autoconf-2.13.make21
-rw-r--r--rules/autoconf-2.57.make23
-rw-r--r--rules/bash.make45
-rw-r--r--rules/busybox.make51
-rw-r--r--rules/distcc.make103
-rw-r--r--rules/e2fsprogs.make28
-rw-r--r--rules/glibc.make567
-rw-r--r--rules/gmp.make8
-rw-r--r--rules/gmp3.make114
-rw-r--r--rules/grub.make34
-rw-r--r--rules/kaffe.make342
-rw-r--r--rules/kernel.make431
-rw-r--r--rules/ksymoops.make6
-rw-r--r--rules/liboop.make6
-rw-r--r--rules/lilo.make113
-rw-r--r--rules/lsh.make6
-rw-r--r--rules/mtd.make38
-rw-r--r--rules/ncurses.make6
-rw-r--r--rules/nettle.make6
-rw-r--r--rules/nfs-utils.make56
-rw-r--r--rules/openssh.make81
-rw-r--r--rules/openssl.make40
-rw-r--r--rules/pdksh.make43
-rw-r--r--rules/portmap.make25
-rw-r--r--rules/pppd.make119
-rw-r--r--rules/proftpd.make6
-rw-r--r--rules/rootfs.make6
-rw-r--r--rules/rtai.make8
-rw-r--r--rules/tcpwrapper.make20
-rw-r--r--rules/template3
-rw-r--r--rules/tinylogin.make113
-rw-r--r--rules/u-boot-mkimage.make7
-rw-r--r--rules/uclibc.make217
-rw-r--r--rules/utelnetd.make15
-rw-r--r--rules/xchain-binutils.make111
-rw-r--r--rules/xchain-gccstage1.make245
-rw-r--r--rules/xchain-gccstage2.make99
-rw-r--r--rules/xchain-gdb.make14
-rw-r--r--rules/xchain-glibc.make336
-rw-r--r--rules/xchain-kaffe.make108
-rw-r--r--rules/xchain-kernel.make380
-rw-r--r--rules/xchain-uclibc.make104
-rw-r--r--rules/xchain-zlib.make97
-rw-r--r--rules/zlib.make93
-rwxr-xr-xscripts/config.guess1388
-rwxr-xr-xscripts/mkprefix6
68 files changed, 14228 insertions, 1185 deletions
diff --git a/CREDITS b/CREDITS
index 98bb794a8..a00f0c4d4 100644
--- a/CREDITS
+++ b/CREDITS
@@ -19,3 +19,5 @@ S: Vor den Grashöfen 1
S: 38162 Cremlingen
S: Germany
+N: Marc Kleine-Budde
+E: kleine-budde@gmx.de \ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
index 8bedf216a..0be8f507c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,76 @@
+2003-04-28 Marc Kleine-Budde <kleine-budde@gmx.de>
+ * openssl.make: openssl.prepare: deps on gccstage2.install if
+ xcompiler is selected
+ * openssl.make: added support for 386 and i586 targets
+
+2003-04-27 Marc Kleine-Budde <kleine-budde@gmx.de>
+ * Config.in: added 586 target
+ * e2fsprogs.make: target clean cleans now builddir
+ * grub.make: the crosscompiler is now used
+ * grub.make: fix typo: --disable-enable-cs89x0
+
+2003-04-25 Marc Kleine-Budde <kleine-budde@gmx.de>
+ * xchain-kernel.make: introduced xchain_kernel_extact_deps, only
+ depending on MTD if wanted (saves us downloding MTD if not needed)
+ * xchain-gccstage1.make: changed GCC_PREFIX to PTXCONF_GNU_TARGET
+ * xchain-gccstage2.make: xchain-gccstage2_prepare: made threads in
+ gcc depending on glibc threads
+ * xchain-gccstage2.make: xchain-gccstage2_compile: removed -Os
+ from CXXFLAGS_FOR_TARGET, because gcc doesn't like opts.
+ [see: http://www.linuxfromscratch.org/view/3.3/chapter06/gcc.html]
+
+2003-04-24 Marc Kleine-Budde <kleine-budde@gmx.de>
+
+ * xchain-glibc.make: glibc.targetinstall: changed the names of the
+ libs, they have the same name as beeing installed by glibc's make
+ install
+ * bash.make: bash-prepare: added deps to gccstage2 if defined
+ xchain
+ * e2fsprogs.make: e2fsprogs-prepare: added deps to gccstage2 if
+ defined xchain
+ * Makefile: target clean and rootclean, are deleting now
+ * xchain-glibc.make: glibc_get: changed dep from glibc-base.get to
+ glibc.get, to get the patches too
+
+2003-04-23 Marc Kleine-Budde <kleine-budde@gmx.de>
+
+ * xchain-kernel.make: xchain-kernel.prepare: removed touch of
+ autoconf.h, that's done already in xchain-kernel.extract
+ * xchain-gccstage1.make: xchain-gccstage1.prepare: removed touch
+ of autoconf, and 'construction' of version.h, that's done already
+ in xchain-kernel.extract
+ * xchain-glibc.make: glibc-prepare: removed optimisation from
+ GLIBC_CFLAGS (like -mpcu)
+ [see: http://www.linuxfromscratch.org/view/3.3/chapter05/gcc.html]
+ * Config.in: make GRUB dependend on X86
+
+2003-04-22 Marc Kleine-Budde <kleine-budde@gmx.de>
+
+ * openssh.make: changed URL, points now to existing sources
+ * openssl.make: changed URL, points now to existing sources
+
+2003-04-20 Marc Kleine-Budde <kleine-budde@gmx.de>
+
+ * Config.in: added Kernel image format vmlinux
+ * xchain-kernel.make: handles now vmlinux kernel format
+ * xchain-kernel.make: added arch to KERNEL_TARGET_PATH for zImage
+ and bzImage
+ * xchain-kernel.make: removed double rule
+ $(STATEDIR)/xchain-kernel.get
+ * xchain-kernel.make: xchain-kernel.extract: version.h is now
+ automatically generated by kernel's make
+ * xchain-kernel.make: kernel.prepare: ARCH in kernel's Makefile is
+ now always setted to PTXCONF_ARCH
+ * xchain-kernel.make: kernel.prepare: CROSS_COMPILE in kernel's
+ Makefile is now always setted to PTXCONF_GNU_TARGET
+ * xchain-kernel.make: kernel.targetinstall: copying the kernel to
+ rootdir is now arch independent, using KERNEL_TAGET_PATH
+ * bootdisk.make: copying the kernel to bootdisk is now arch
+ independent, using KERNEL_TARGET_PATH
+ * bootdisk.make: added link from menu.lst to grub.conf, cause new
+ grub version use grub.conf
+
+2003-04-19 Robert Schwebel <r.schwebel@pengutronix.de>
* Rules.make: added GNU_HOST to get rid of hardcoded x86 compilers
* config system: ARM architecture dependency fixed
diff --git a/Makefile b/Makefile
index c02813268..3cb52764b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.7 2003/06/26 16:10:36 robert Exp $
+# $Id: Makefile,v 1.8 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Robert Schwebel <r.schwebel@pengutronix.de>
# (c) 2002 by Jochen Striepe <ptxdist@tolot.escape.de>
@@ -19,6 +19,7 @@ TAR=tar
TOPDIR=$(shell /bin/pwd)
BASENAME=$(shell /usr/bin/basename $(TOPDIR))
BUILDDIR=$(TOPDIR)/build
+XCHAIN_BUILDDIR=$(BUILDDIR)/xchain
ROOTDIR=$(TOPDIR)/root
SRCDIR=$(TOPDIR)/src
PTXSRCDIR=$(TOPDIR)/src_ptx
@@ -63,7 +64,7 @@ help:
@echo " make world Make-everything-and-be-happy"
@echo
@echo "Calling these targets affects the whole system. If you want to"
- @echo "do something for a packet do 'make packet-<action>'."
+ @echo "do something for a packet do 'make packet_<action>'."
@echo
@echo "Available packages and versions: "
@echo "$(PACKAGES)"
@@ -77,15 +78,15 @@ compile: $(PACKAGES_COMPILE)
install: $(PACKAGES_INSTALL)
dep_output_clean:
- if [ -e $(DEP_OUTPUT) ]; then rm -f $(DEP_OUTPUT); fi
+# if [ -e $(DEP_OUTPUT) ]; then rm -f $(DEP_OUTPUT); fi
touch $(DEP_OUTPUT)
dep_tree:
- scripts/makedeptree $(DEP_OUTPUT) | $(DOT) -Tps > $(DEP_TREE_PS)
+ @sort $(DEP_OUTPUT) | uniq | scripts/makedeptree | $(DOT) -Tps > $(DEP_TREE_PS)
dep_world: $(PACKAGES_TARGETINSTALL)
- echo $@ : $^ | sed -e "s/_/./g" >> $(DEP_OUTPUT)
-
+ @echo $@ : $^ | sed -e "s/_/./g" >> $(DEP_OUTPUT)
+
world: dep_output_clean dep_world dep_tree
# menuconfig:
@@ -136,7 +137,7 @@ rayonic_config:
@cp $(call latestconfig, kernel*rayonic) .kernelconfig
# ----------------------------------------------------------------------------
-clean: rootclean
+clean: rootclean
@echo
@echo -n "cleaning build dir............... "
@for i in $$(ls -I CVS $(BUILDDIR)); do echo -n $$i' '; rm -rf $(BUILDDIR)/"$$i"; done
diff --git a/config/Config.in b/config/Config.in
index b1f53fbcb..7b9095b59 100644
--- a/config/Config.in
+++ b/config/Config.in
@@ -25,61 +25,156 @@ choice
config ARCH_ARM
bool "ARM"
help
- This is support for the ARM processor architecture.
+ This is support for the ARM processor architecture.
+
+ config ARCH_ARM_NOMMU
+ bool "ARM-nommu"
+ help
+ This is support for the ARM processor architecture w/o MMU.
config ARCH_X86
- bool "x86"
+ bool "X86"
help
- This is support for the Intel x86 architecture.
+ This is support for the Intel x86 architecture.
+
+ config ARCH_PPC
+ bool "PPC"
+
+ config ARCH_SPARC
+ bool "SPARC"
+
+ config ARCH_MIPS
+ bool "MIPS"
+
+ config ARCH_CRIS
+ bool "CRIS"
+
+ config ARCH_PARISC
+ bool "PARISC"
+endchoice
+
+choice
+ prompt "ARM architecture"
+ depends on ARCH_ARM || ARCH_ARM_NOMMU
+
+ config ARM_ARCH_PXA
+ bool "pxa"
+ depends on ARCH_ARM
+
+ config ARM_ARCH_NETARM
+ bool "net+arm"
+ depends on ARCH_ARM_NOMMU
+
+ config ARM_ARCH_ATMEL
+ bool "atmel"
+ depends on ARCH_ARM_NOMMU
endchoice
-config ARCH
- string
- default "arm" if ARCH_ARM
- default "i386" if ARCH_X86
choice
prompt "Code Optimization"
- default OPT_ARM4
+ default OPT_ARM4 if ARCH_ARM
+ default OPT_PPC if ARCH_PPC
+ config OPT_ARM4
+ bool "arm4"
+ depends on ARCH_ARM
+ config OPT_ARM_NOMMU
+ bool "arm7tdmi"
+ depends on ARCH_ARM_NOMMU
config OPT_I386
bool "386"
depends on ARCH_X86
-
config OPT_I486
bool "486"
depends on ARCH_X86
-
config OPT_I586
bool "586"
depends on ARCH_X86
-
config OPT_I686
bool "686"
depends on ARCH_X86
-
- config OPT_ARM4
- bool "arm4"
- depends on ARCH_ARM
+ config OPT_PPC
+ bool "generic PPC"
+ depends on ARCH_PPC
+ config OPT_PPC405
+ bool "PPC 405"
+ depends on ARCH_PPC
+ config OPT_SPARC
+ bool "sparc"
+ depends on ARCH_SPARC
+ config OPT_MIPS
+ bool "mips"
+ depends on ARCH_MIPS
+ config OPT_CRIS
+ bool "cris"
+ depends on ARCH_CRIS
+ config OPT_PA8X00
+ bool "PA8x00"
+ depends on ARCH_PARISC
endchoice
-config GNU_TARGET
+config ARCH_NOMMU
+ bool
+ default y if ARCH_ARM_NOMMU
+
+config ARCH
string
- default "i386-linux" if OPT_I386
- default "i486-linux" if OPT_I486
- default "i586-linux" if OPT_I586
- default "i686-linux" if OPT_I686
- default "arm-linux" if OPT_ARM4
+ default "arm" if ARCH_ARM
+ default "armnommu" if ARCH_ARM_NOMMU
+ default "i386" if ARCH_X86
+ default "ppc" if ARCH_PPC
+ default "sparc" if ARCH_SPARC
+ default "mips" if ARCH_MIPS
+ default "cris" if ARCH_CRIS
+ default "parisc" if ARCH_PARISC
-choice
- prompt "ARM architecture"
- depends on ARCH_ARM
+config ARCH_USERSPACE
+ string
+ default "arm" if ARCH_ARM
+ default "arm" if ARCH_ARM_NOMMU
+ default "i386" if ARCH_X86
+ default "powerpc" if ARCH_PPC
+ default "sparc" if ARCH_SPARC
+ default "mips" if ARCH_MIPS
+ default "cris" if ARCH_CRIS
+ default "parisc" if ARCH_PARISC
- config ARM_ARCH_PXA
- bool "pxa"
- depends on ARCH_ARM
-endchoice
+config ARM_PROC
+ string
+ default "armv" if ARCH_ARM || ARCH_ARM_NOMMU
+config ARM_ARCH
+ string
+ default "pxa" if ARM_ARCH_PXA
+ default "netarm" if ARM_ARCH_NETARM
+ default "atmel" if ARM_ARCH_ATMEL
+
+config GNU_TARGET
+ string
+ default "arm-linux" if ARCH_ARM && GLIBC
+ default "arm-elf" if ARCH_ARM_NOMMU && GLIBC
+ default "i386-linux" if OPT_I386 && GLIBC
+ default "i486-linux" if OPT_I486 && GLIBC
+ default "i586-linux" if OPT_I586 && GLIBC
+ default "i686-linux" if OPT_I686 && GLIBC
+ default "powerpc-linux" if ARCH_PPC && GLIBC
+ default "sparc-linux" if OPT_SPARC && GLIBC
+ default "mips-linux" if ARCH_MIPS && GLIBC
+ default "cris-linux" if ARCH_CRIS && GLIBC
+ default "hppa-linux" if ARCH_PARISC && GLIBC
+
+ default "arm-uclibc-linux" if ARCH_ARM && UCLIBC
+ default "arm-elf" if ARCH_ARM_NOMMU && UCLIBC
+ default "i386-uclibc-linux" if OPT_I386 && UCLIBC
+ default "i486-uclibc-linux" if OPT_I486 && UCLIBC
+ default "i586-uclibc-linux" if OPT_I586 && UCLIBC
+ default "i686-uclibc-linux" if OPT_I686 && UCLIBC
+ default "powerpc-uclibc-linux" if ARCH_PPC && UCLIBC
+ default "sparc-uclibc-linux" if OPT_SPARC && UCLIBC
+ default "mips-uclibc-linux" if ARCH_MIPS && UCLIBC
+ default "cris-uclibc-linux" if ARCH_CRIS && UCLIBC
+ default "hppa-uclibc-linux" if ARCH_PARISC && UCLIBC
config PREFIX
prompt "Install PREFIX"
@@ -97,6 +192,25 @@ config BUILD_CROSSCHAIN
prompt "Build Cross Toolchain"
default y if ARCH_ARM
default n if ARCH_X86
+ default y if ARCH_SPARC
+ default y if ARCH_MIPS
+ default y if ARCH_CRIS
+ default y if ARCH_PARISC
+choice
+ prompt "GCC (GNU Compiler Collection) Version"
+ default GCC_3_2_3 if ARCH_X86 || ARCH_SPARC || ARCH_MIPS || ARCH_CRIS || ARCH_PARISC
+ depends on BUILD_CROSSCHAIN
+
+ config GCC_2_95_3
+ bool
+ prompt "2.95.3"
+ depends on ARCH_X86 || ARCH_ARM || ARCH_SPARC || ARCH_PPC || ARCH_ARM_NOMMU
+
+ config GCC_3_2_3
+ bool
+ prompt "3.2.3"
+ depends on ARCH_X86 || ARCH_SPARC || ARCH_MIPS || ARCH_CRIS || ARCH_PARISC || ARCH_PPC || !ARCH_ARM_NOMMU
+endchoice
config BUILD_CROSSCHAIN_GDB
bool
@@ -171,7 +285,7 @@ config ROOTFS_ETC
default y
config ETC_NAME
- prompt "Name of dir in ./etc/ to be used"
+ prompt "Name of dir in $PTXDIST/etc to be used"
string
default "innokom"
depends on ROOTFS_ETC
@@ -200,25 +314,41 @@ comment "Core System "
##############################################################################
menu "Kernel "
-#source "config/config-kernel.in"
config DONT_COMPILE_KERNEL
bool
prompt "Don't compile kernel"
default n
+config KERNEL_CONFIG
+ string
+ default "kernel-2.4."
+ prompt "Name of config in $PTXDIST/config/kernel to be used"
+
choice
prompt "Kernel Version"
- default KERNEL_2_4_19
+ default KERNEL_2_4_19
config KERNEL_2_4_18
bool
prompt "2.4.18"
+ depends on !ARCH_ARM_NOMMU
config KERNEL_2_4_19
bool
prompt "2.4.19"
-
+ depends on !ARCH_ARM_NOMMU
+
+ config KERNEL_2_4_20
+ bool
+ prompt "2.4.20"
+ depends on ARCH_SPARC || ARCH_X86 || ARCH_MIPS || ARCH_CRIS || ARCH_PPC
+ depends on !ARCH_ARM_NOMMU
+
+ config KERNEL_2_4_21
+ bool
+ prompt "2.4.21"
+ depends on ARCH_SPARC || ARCH_X86 || ARCH_MIPS || ARCH_CRIS || ARCH_PPC || ARCH_ARM_NOMMU
endchoice
config KERNEL_XSCALE
@@ -242,32 +372,37 @@ config KERNEL_INSTALL
bool
prompt "Install kernel into /boot on target"
default n
+ depends on !DONT_COMPILE_KERNEL
choice
prompt "Kernel Image"
default KERNEL_IMAGE_BZ
+ depends on !DONT_COMPILE_KERNEL
config KERNEL_IMAGE_BZ
bool
prompt "bzImage"
+ depends on ARCH_X86
config KERNEL_IMAGE_Z
bool
prompt "zImage"
+ depends on ARCH_X86
config KERNEL_IMAGE_U
bool
prompt "uImage"
+ depends on ARCH_ARM
config KERNEL_IMAGE_VMLINUX
bool
prompt "vmlinux"
-
endchoice
config RTAI
bool
prompt "Realtime Extension: RTAI"
+ depends on KERNEL_2_4_20 || KERNEL_2_4_19 || KERNEL_2_4_18
default n
choice
@@ -322,14 +457,18 @@ choice
config GLIBC
bool
prompt "GLIBC"
+ depends on !ARCH_NOMMU
config UCLIBC
bool
prompt "uClibc"
endchoice
+comment "C Library options"
+
choice
prompt "C-Lib Version"
+ default GLIBC_2_2_5
config GLIBC_2_2_5
bool
@@ -348,41 +487,51 @@ choice
depends on GLIBC
depends on ARCH_X86
- config UCLIBC_0_9_9
+ config UCLIBC_0_9_19
bool
- prompt "0.9.9"
+ prompt "0.9.19"
depends on UCLIBC
-endchoice
+ config UCLIBC_0_9_20
+ bool
+ prompt "0.9.20"
+ depends on UCLIBC
+endchoice
config GLIBC_PTHREADS
bool
prompt "Compile glibc with pthreads"
+ default y
depends on GLIBC
config GLIBC_FLOATINGPOINT
bool
prompt "Enable glibc floating point support"
+ default y
depends on GLIBC
config GLIBC_LIBIO
bool
prompt "Build in GNU libio instead of GNU stdio"
+ default n
depends on GLIBC
config GLIBC_SHARED
bool
prompt "Build shared library"
+ default y
depends on GLIBC
config GLIBC_PROFILED
bool
prompt "Include profiling support"
+ default n
depends on GLIBC
config GLIBC_OMITFP
bool
prompt "Build undebuggable optimized library"
+ default n
depends on GLIBC
config GLIBC_BOUNDED
@@ -390,11 +539,20 @@ config GLIBC_BOUNDED
prompt "Build with runtime bounds checking"
depends on GLIBC
+comment "Install options"
+ depends on GLIBC
+
config GLIBC_THREAD_DB
bool
prompt "Install libthread_db on the target"
depends on GLIBC
+config GLIBC_DL
+ bool
+ prompt "Install libdl on the target"
+ default y if BASH
+ depends on GLIBC
+
config GLIBC_CRYPT
bool
prompt "Install libcrypt on the target"
@@ -450,36 +608,57 @@ config GLIBC_NSL
prompt "Install libnsl"
depends on GLIBC
-config UCLIBC_DEBUG
+source "config/uClibc/extra/Configs/Config.alpha"
+source "config/uClibc/extra/Configs/Config.arm"
+source "config/uClibc/extra/Configs/Config.cris"
+source "config/uClibc/extra/Configs/Config.h8300"
+source "config/uClibc/extra/Configs/Config.i386"
+source "config/uClibc/extra/Configs/Config.i960"
+source "config/uClibc/extra/Configs/Config.m68k"
+source "config/uClibc/extra/Configs/Config.mips"
+source "config/uClibc/extra/Configs/Config.mipsel"
+source "config/uClibc/extra/Configs/Config.powerpc"
+source "config/uClibc/extra/Configs/Config.sh"
+source "config/uClibc/extra/Configs/Config.sparc"
+source "config/uClibc/extra/Configs/Config.v850"
+
+comment "Install options"
+ depends on UCLIBC
+
+config UCLIBC_CRYPT
bool
- prompt "Enable debugging"
+ prompt "Install libcrypt on the target"
depends on UCLIBC
-
-config UCLIBC_HAS_MMU
- bool
- prompt "Target has MMU"
- depends on UCLIBC
-config UCLIBC_SHADOWPASS
+config UCLIBC_DL
bool
- prompt "Enable shadow passwords"
+ prompt "Install libdl on the target"
depends on UCLIBC
-config UCLIBC_REGEX
+config UCLIBC_M
bool
- prompt "Enable POSIX regular expressions"
+ prompt "Install libm on the target"
depends on UCLIBC
-
-config UCLIBC_RPC
+
+config UCLIBC_NSL
+ bool
+ prompt "Install libnsl on the target"
+ depends on UCLIBC
+
+config UCLIBC_PTHREAD
bool
- prompt "Enable RPC"
+ prompt "Install libpthread on the target"
depends on UCLIBC
-config UCLIBC_SHARED
+config UCLIBC_RESOLV
bool
- prompt "Make shared library"
+ prompt "Install libresolv on the target"
depends on UCLIBC
+config UCLIBC_UTIL
+ bool
+ prompt "Install libutil on the target"
+ depends on UCLIBC
endmenu
# ============================================================================
@@ -657,9 +836,14 @@ source "config/busybox/sysdeps/linux/Config.in"
endmenu
-menu "TinyLogin "
-#source "foo/bar/baz"
-endmenu
+# ----------------------------------------------------------------------------
+
+#menu "TinyLogin "
+
+#config TINYLOGIN
+# bool
+# prompt "Compile Tinylogin"
+#endmenu
# ----------------------------------------------------------------------------
@@ -672,91 +856,76 @@ config MTD_UTILS
config MTD_EINFO
bool
prompt "einfo"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_ERASE
bool
prompt "erase"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_ERASEALL
bool
prompt "eraseall"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_FCP
bool
prompt "fcp"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_FTL_CHECK
bool
prompt "ftl_check"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_FTL_FORMAT
bool
prompt "ftl_format"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_JFFS2READER
bool
prompt "jffs2reader"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_LOCK
bool
prompt "lock"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_MTDDEBUG
bool
prompt "mtd_debug"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_NANDDUMP
bool
prompt "nanddump"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_NANDTEST
bool
prompt "nandtest"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_NANDWRITE
bool
prompt "nandwrite"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_NFTL_FORMAT
bool
prompt "nftl_format"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_NFTLDUMP
bool
prompt "nftldump"
- depends on KERNEL_MTD
depends on MTD_UTILS
config MTD_UNLOCK
bool
prompt "unlock"
- depends on KERNEL_MTD
depends on MTD_UTILS
endmenu
@@ -765,6 +934,22 @@ endmenu
comment "Network Tools"
##############################################################################
+menu "ppp "
+
+config PPP
+ bool
+ prompt "Compile ppp"
+#
+# FIXME: enable/disable
+#
+# plugins
+# ms-chap
+# crypt
+#
+endmenu
+
+# ----------------------------------------------------------------------------
+
menu "udhcp "
config UDHCP
@@ -841,20 +1026,8 @@ config LSH_WRITEKEY
prompt "Install lsh-writekey"
depends on LSH
-config ZLIB
- bool
- default y if OPENSSH
- default n if !OPENSSH
-
-config OPENSSL
- bool
- depends on ZLIB
- default y if OPENSSH
- default n if !OPENSSH
-
config OPENSSH
bool
- depends on GLIBC_NSL
prompt "OpenSSH"
endmenu
@@ -1015,6 +1188,10 @@ endmenu
# ----------------------------------------------------------------------------
+##############################################################################
+comment "Disk and file "
+##############################################################################
+
menu "Disk and file utils "
config E2FSPROGS
@@ -1081,9 +1258,241 @@ config GRUB_BOOTDISK
prompt "make bootdisk in $PTXDIST/bootdisk"
depends on GRUB
+config LILO
+ bool "LILO"
+ depends on ARCH_X86
+
config PTXFLASH
bool
prompt "Install ptxflash utility"
+endmenu
+
+
+
+##############################################################################
+comment "Applications "
+##############################################################################
+menu "Kaffe "
+
+config KAFFE
+ bool
+ prompt "Compile Kaffe"
+
+comment "Target Options"
+ depends on KAFFE
+
+ choice
+ prompt "Engine"
+ default KAFFE_ENG_JIT3
+ depends on KAFFE
+
+ config KAFFE_ENG_INTRP
+ bool Interpreter
+
+ config KAFFE_ENG_JIT
+ bool JIT
+ depends on ARCH_ARM || ARCH_X86 || ARCH_SPARC || ARCH_ARM || ARCH_ALPHA || ARCH_MIPS
+
+ config KAFFE_ENG_JIT3
+ bool JITv3
+ depends on ARCH_ARM || ARCH_X86 || ARCH_SPARC || ARCH_ARM || ARCH_ALPHA || ARCH_MIPS
+ endchoice
+
+ choice
+ prompt "Threading System"
+ default KAFFE_THREAD_J
+ depends on KAFFE
+
+ config KAFFE_THREAD_P
+ bool unix-pthreads
+
+ config KAFFE_THREAD_J
+ bool unix-jthreads
+ endchoice
+
+ choice
+ prompt "API"
+ default KAFFE_API_SE
+ depends on KAFFE
+
+ config KAFFE_API_CLDC
+ bool CLDC
+
+ config KAFFE_API_SE
+ bool J2SE
+ endchoice
+
+ config KAFFE_ENABLE_JIKES
+ bool
+ default n
+ prompt "Use Jikes or other Java compiler"
+ depends on KAFFE_API_SE
+ depends on KAFFE
+
+ config KAFFE_JIKES
+ string
+ default "jikes" if KAFFE_API_SE
+ default "javac" if KAFFE_API_CLDC
+ prompt "java compiler (see help)"
+ depends on KAFFE_API_SE && KAFFE_ENABLE_JIKES || KAFFE_API_CLDC
+ depends on KAFFE
+ help
+ The compiler must be in the $PATH or an absoloute path to the compiler must be supplied.
+ If compiling the CLDC API jikes is not working, please use Sun's javac.
+
+ config KAFFE_JIKES_WO_DEBUG
+ bool
+ default n
+ prompt "Compile Java Class Libs without debugging symbols (see help)"
+ depends on KAFFE_API_SE && KAFFE_ENABLE_JIKES || KAFFE_API_CLDC
+ depends on KAFFE
+ help
+ Works only with Sun's javac.
+#############################################################################
+comment "Debugging Options"
+ depends on KAFFE
+
+ config KAFFE_DEB_DEB
+ bool
+ default n
+ prompt "Enable run-time debugging machinery"
+ depends on KAFFE
+
+ config KAFFE_DEB_X
+ bool
+ default n
+ prompt "Enable debugging symbol generation for jitted code (xdebugging)"
+ depends on KAFFE
+
+ config KAFFE_DEB_PROFILING
+ bool
+ default n
+ prompt "Compile with gprof(1) profiling support"
+ depends on KAFFE
+
+ config KAFFE_DEB_XPROFILING
+ bool
+ default n
+ prompt "Enable profiling for C and jitted code (xprofiling)"
+ depends on KAFFE
+
+ config KAFFE_DEB_STATS
+ bool
+ default n
+ prompt "Gather statistics on vm execution"
+ depends on KAFFE
+##############################################################################
+comment "Features"
+ depends on KAFFE
+
+ config KAFFE_FEAT_GCJ
+ bool
+ default n
+ prompt "Enable GCJ support"
+ depends on KAFFE
+
+ choice
+ prompt "AWT Engine"
+ default KAFFE_AWT_X
+ depends on KAFFE_API_SE
+ depends on KAFFE
+
+ config KAFFE_AWT_NO
+ bool none
+
+ config KAFFE_AWT_X
+ bool XFree
+
+ config KAFFE_AWT_QT
+ bool QT
+ endchoice
+
+ config KAFFE_FEAT_FEEDBACK
+ bool
+ default n
+ prompt "Enable generation of feedback data"
+ depends on KAFFE
+
+ config KAFFE_FEAT_JAVAMATH
+ bool
+ default n
+ prompt "Enable pure java java.math.* package"
+ depends on KAFFE_API_SE
+ depends on KAFFE
+
+ config KAFFE_FEAT_DISABLE_SOUND
+ bool
+ default n
+ prompt "Disable javax.sound support"
+ depends on KAFFE_API_SE
+ depends on KAFFE
+ config KAFFE_FEAT_DISABLE_ALSA
+ bool
+ default n
+ prompt "Don't use ALSA for sound"
+ depends on KAFFE_API_SE && !KAFFE_FEAT_DISABLE_SOUND
+ depends on KAFFE
+
+ config KAFFE_FEAT_DISABLE_ESD
+ bool
+ default n
+ prompt "Don't use esd for sound"
+ depends on KAFFE_API_SE && !KAFFE_FEAT_DISABLE_SOUND
+ depends on KAFFE
+
+ config KAFFE_FEAT_DISABLE_SUNCOMPAT
+ bool
+ default n
+ prompt "Don't include Sun compatibility scripts"
+ depends on KAFFE
+
+ config KAFFE_FEAT_CLDC_GMP
+ bool
+ default n
+ prompt "Enable native java/math/BigInteger in CLDC (see help)"
+ depends on KAFFE_API_CLDC
+ depends on KAFFE
+ help
+ Note:
+ This is not tested!
+ Use on your own risk!
+##############################################################################
+comment "Linking options"
+ depends on KAFFE
+
+ config KAFFE_LINK_VM
+ bool
+ prompt "Force the creation of a static virtual machine (staticvm)"
+ depends on !KAFFE_LINK_LIB && !KAFFE_LINK_BIN
+ depends on KAFFE
+
+ config KAFFE_LINK_LIB
+ bool
+ prompt "Force the use of static libraries rather than shared (staticlib)"
+ depends on !KAFFE_LINK_BIN
+ depends on KAFFE
+
+ config KAFFE_LINK_GMP
+ bool
+ prompt "Link libgmp static into kaffe-bin"
+ depends on KAFFE_FEAT_CLDC_GMP
+ depends on KAFFE
+
+ config KAFFE_LINK_BIN
+ bool
+ prompt "Force the creation of a static virtual machine binary (staticbin)"
+ depends on KAFFE
+
+
+ config KAFFE_TARGETINSTALL_GMP
+ bool
+ default y if KAFFE_API_SE && !KAFFE_FEAT_JAVAMATH || \
+ KAFFE_FEAT_CLDC_GMP && !(KAFFE_LINK_GMP || KAFFE_LINK_BIN)
+ depends on KAFFE
endmenu
+##############################################################################
+
+
+
diff --git a/config/uClibc/Extract b/config/uClibc/Extract
new file mode 100755
index 000000000..e69217ea2
--- /dev/null
+++ b/config/uClibc/Extract
@@ -0,0 +1,80 @@
+#!/usr/bin/perl
+
+#
+# first extract all configuration files from the original source tree
+#
+
+@configfiles = `find ../../build/uClibc* -name "Config.*" | grep -v default`;
+
+while($_ = shift @configfiles) {
+ chomp $_;
+ my $filename = $_; $filename =~ s/(.*\/uClibc.*?)\/(.*$)/$2/;
+ my $dir = $filename; $dir =~ s/(.*\/)(.*$)/$1/;
+ system("mkdir -p $dir");
+ system("../../scripts/mkprefix -v -p UCLIBC_ < $_ > $filename");
+}
+
+
+#
+# fix some entries
+#
+
+print "---------------------------------------------------------------------\n";
+print "Fixing some stuff...\n";
+print "---------------------------------------------------------------------\n";
+
+%depends = ("alpha","ARCH_ALPHA",
+ "arm", "(ARCH_ARM || ARCH_ARM_NOMMU)",
+ "cris", "ARCH_CRIS",
+ "h8300", "ARCH_H8300",
+ "i386", "ARCH_X86",
+ "i960", "ARCH_I960",
+ "m68k", "ARCH_M68K",
+ "mips", "ARCH_MIPS",
+ "mipsel", "ARCH_MIPSEL",
+ "powerpc", "ARCH_PPC",
+ "sh", "ARCH_SH",
+ "sparc", "ARCH_SPARC",
+ "v850", "ARCH_V850");
+
+@fixfiles = `find . -name "Config.*"|grep -v .in`;
+
+
+while($file = shift @fixfiles) {
+
+ open (FILE, "$file");
+ @file = <FILE>;
+ close FILE;
+
+ for (@file) {
+
+ if (/^\s*source\s+\"(.*)\"/) {
+
+ open(TEMP, "$1");
+ @contens = <TEMP>;
+ close TEMP;
+
+ $_ = join('',(@contens));
+ }
+ }
+
+ my $arch = $file; $arch =~ s/.*Config\.(.*)$/$1/g;
+ chomp ($arch);
+
+ for (@file) { $_ =~ s/^\s*mainmenu (.*$)/\# mainmenu $1/g;}
+
+ open (FILE, ">$file");
+ print FILE @file;
+ close FILE;
+
+
+ open (FILE, "$file");
+ @file = <FILE>;
+ close FILE;
+
+ for (@file) { $_ =~ s/^(\s*menu\s+.*)$/$1\n\tdepends on UCLIBC && $depends{$arch}/g;}
+
+ open (FILE, ">$file");
+ print FILE @file;
+ close FILE;
+}
diff --git a/config/uClibc/extra/Configs/Config.alpha b/config/uClibc/extra/Configs/Config.alpha
new file mode 100644
index 000000000..38edb9194
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.alpha
@@ -0,0 +1,613 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_ALPHA
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.arm b/config/uClibc/extra/Configs/Config.arm
new file mode 100644
index 000000000..f051c15b3
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.arm
@@ -0,0 +1,657 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool
+ default y
+
+choice
+ prompt "Target Processor Type"
+ default UCLIBC_CONFIG_GENERIC_ARM
+ help
+ This is the processor type of your CPU. This information is used for
+ optimizing purposes. To build a library that will run on all ARMCPU
+ types (albeit not optimally fast), you can specify "Generic Arm" here.
+ If you pick anything other than "Generic Arm", there is no guarantee
+ that uClibc will even run on anything other than the selected processor
+ type.
+
+ Here are the settings recommended for greatest speed:
+ - "Generic Arm" select this if your compiler is already setup to
+ optimize things properly.
+ - "arm7tdmi" an MMU-less ARM core such as those distributed
+ by Atmel, Samsung, and others.
+ - "StrongARM" for Intel's StrongARM cores, such as the
+ StrongARM 110/1100/1110.
+ - "XScale" for Intel's XScale processors
+
+ If you don't know what to do, choose "Generic Arm".
+
+config UCLIBC_CONFIG_GENERIC_ARM
+ bool "Generic Arm"
+
+config UCLIBC_CONFIG_ARM7TDMI
+ bool "arm7tdmi"
+
+config UCLIBC_CONFIG_STRONGARM
+ bool "StrongARM"
+
+config UCLIBC_CONFIG_XSCALE
+ bool "XScale"
+
+endchoice
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y if UCLIBC_CONFIG_ARM7TDMI
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && (ARCH_ARM || ARCH_ARM_NOMMU)
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.cris b/config/uClibc/extra/Configs/Config.cris
new file mode 100644
index 000000000..19ae60c31
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.cris
@@ -0,0 +1,631 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+ default "-mcrislinux"
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+ default "-mlinux"
+
+
+choice
+ prompt "Target Architecture Type"
+ default UCLIBC_CONFIG_CRIS
+ help
+ This is the architecture type of your CPU. This information is used for
+ optimizing purposes.
+
+ These are the possible settings:
+ - CRIS Generic support for Axis' CRIS architecture.
+
+config UCLIBC_CONFIG_CRIS
+ bool "CRIS"
+
+endchoice
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_CRIS
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.h8300 b/config/uClibc/extra/Configs/Config.h8300
new file mode 100644
index 000000000..05a78bb5c
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.h8300
@@ -0,0 +1,635 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_H8300
+
+choice
+ prompt "Target Processor"
+ default UCLIBC_CONFIG_H8300H
+ help
+ This is the processor type of your CPU.
+
+config UCLIBC_CONFIG_H8300H
+ bool "H8300H"
+
+config UCLIBC_CONFIG_H8S
+ bool "H8S (edosk2674)"
+
+endchoice
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ bool
+ default y
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_H8300
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_H8300
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_H8300
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_H8300
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_H8300
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.i386 b/config/uClibc/extra/Configs/Config.i386
new file mode 100644
index 000000000..943f18b2e
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.i386
@@ -0,0 +1,690 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+choice
+ prompt "Target Processor Type"
+ default UCLIBC_CONFIG_GENERIC_386
+ help
+ This is the processor type of your CPU. This information is used for
+ optimizing purposes. To build a library that will run on all x86 CPU
+ types (albeit not optimally fast), you can specify "386" here. If
+ you pick anything other than "386", there is no guarantee that uClibc
+ will even run on anything other than the selected processor type.
+
+ Here are the settings recommended for greatest speed:
+ - "Generic 386" select this if your compiler is already setup to
+ optimize things properly.
+ - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
+ 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
+ will run on a 386 class machine.
+ - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
+ SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
+ - "586" for Intel Pentium and other generic Pentium CPUs
+ - "Pentium-MMX" for the Intel Pentium MMX.
+ - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II.
+ - "Pentium-III" for the Intel Pentium III
+ and Celerons based on the Coppermine core.
+ - "Pentium-4" for the Intel Pentium 4.
+ - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
+ - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
+ - "Crusoe" for the Transmeta Crusoe series.
+ - "Winchip-C6" for original IDT Winchip.
+ - "Winchip-2" for IDT Winchip 2.
+ - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
+ - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
+
+ If you don't know what to do, choose "386".
+
+config UCLIBC_CONFIG_GENERIC_386
+ bool "Generic 386"
+
+config UCLIBC_CONFIG_386
+ bool "386"
+
+config UCLIBC_CONFIG_486
+ bool "486"
+
+config UCLIBC_CONFIG_586
+ bool "Pentium/586/K5/5x86/6x86/6x86MX/Winchip-2A/Winchip-3"
+
+config UCLIBC_CONFIG_586MMX
+ bool "Pentium-MMX"
+
+config UCLIBC_CONFIG_686
+ bool "Pentium-Pro/Celeron/Pentium-II"
+
+config UCLIBC_CONFIG_PENTIUMIII
+ bool "Pentium-III/Celeron(Coppermine)"
+
+config UCLIBC_CONFIG_PENTIUM4
+ bool "Pentium-4"
+
+config UCLIBC_CONFIG_K6
+ bool "K6/K6-II/K6-III"
+
+config UCLIBC_CONFIG_K7
+ bool "Athlon/Duron/K7"
+
+config UCLIBC_CONFIG_CRUSOE
+ bool "Crusoe"
+
+config UCLIBC_CONFIG_WINCHIPC6
+ bool "Winchip-C6"
+
+config UCLIBC_CONFIG_WINCHIP2
+ bool "Winchip-2"
+
+config UCLIBC_CONFIG_CYRIXIII
+ bool "CyrixIII/VIA-C3"
+
+endchoice
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_X86
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
diff --git a/config/uClibc/extra/Configs/Config.i960 b/config/uClibc/extra/Configs/Config.i960
new file mode 100644
index 000000000..3e7c80dd8
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.i960
@@ -0,0 +1,622 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_HAVE_ELF
+ bool
+ default n
+
+config UCLIBC_ARCH_CFLAGS
+ string
+ default "-mh -mint32 -fsigned-char"
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ bool
+ default y
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_I960
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.in b/config/uClibc/extra/Configs/Config.in
new file mode 100644
index 000000000..2bdfce6db
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.in
@@ -0,0 +1,485 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
diff --git a/config/uClibc/extra/Configs/Config.in.arch b/config/uClibc/extra/Configs/Config.in.arch
new file mode 100644
index 000000000..847b97f1b
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.in.arch
@@ -0,0 +1,95 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
diff --git a/config/uClibc/extra/Configs/Config.m68k b/config/uClibc/extra/Configs/Config.m68k
new file mode 100644
index 000000000..75ce3725e
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.m68k
@@ -0,0 +1,622 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+ default "-Wa,--bitwise-or -I$(KERNEL_SOURCE)/include"
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_M68K
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.mips b/config/uClibc/extra/Configs/Config.mips
new file mode 100644
index 000000000..da21ce48e
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.mips
@@ -0,0 +1,614 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+ default "-mno-split-addresses"
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_MIPS
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.mipsel b/config/uClibc/extra/Configs/Config.mipsel
new file mode 100644
index 000000000..641730beb
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.mipsel
@@ -0,0 +1,614 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+ default "-mno-split-addresses"
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_MIPSEL
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.powerpc b/config/uClibc/extra/Configs/Config.powerpc
new file mode 100644
index 000000000..7674e6ee2
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.powerpc
@@ -0,0 +1,613 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_PPC
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.sh b/config/uClibc/extra/Configs/Config.sh
new file mode 100644
index 000000000..4ac1dc6ad
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.sh
@@ -0,0 +1,674 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_HAVE_DOT_HIDDEN
+ bool
+ default y
+
+config UCLIBC_UCLIBC_COMPLETELY_PIC
+ bool
+ default y
+
+choice
+ prompt "Target Processor Type"
+ default UCLIBC_CONFIG_SH4
+ help
+ This is the processor type of your CPU. This information is used for
+ optimizing purposes, as well as to determine if your CPU has an MMU,
+ an FPU, etc. If you pick the wrong CPU type, there is no guarantee
+ that uClibc will work at all....
+
+ Here are the available choices:
+ - "SH2" Hitachi SH2
+ - "SH3" Hitachi SH3
+ - "SH4" Hitachi SH4
+ - "SH5" Hitachi SH5
+
+config UCLIBC_CONFIG_SH2
+ bool "SH2"
+
+config UCLIBC_CONFIG_SH3
+ bool "SH3"
+
+config UCLIBC_CONFIG_SH4
+ bool "SH4"
+
+config UCLIBC_CONFIG_SH5
+ bool "SH5"
+
+endchoice
+
+choice
+ prompt "Target Processor Endianness"
+ default UCLIBC_ARCH_LITTLE_ENDIAN
+ help
+ This is the endianness you wish to build use. Choose either Big
+ Endian, or Little Endian.
+
+config UCLIBC_ARCH_LITTLE_ENDIAN
+ bool "Little Endian"
+
+config UCLIBC_ARCH_BIG_ENDIAN
+ bool "Big Endian"
+
+endchoice
+
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y if UCLIBC_CONFIG_SH2
+
+config UCLIBC_ARCH_HAS_NO_FPU
+ bool
+ default y if UCLIBC_CONFIG_SH2 || UCLIBC_CONFIG_SH3
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_SH
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.sparc b/config/uClibc/extra/Configs/Config.sparc
new file mode 100644
index 000000000..c723e9b04
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.sparc
@@ -0,0 +1,613 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_SPARC
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/config/uClibc/extra/Configs/Config.v850 b/config/uClibc/extra/Configs/Config.v850
new file mode 100644
index 000000000..30a515246
--- /dev/null
+++ b/config/uClibc/extra/Configs/Config.v850
@@ -0,0 +1,633 @@
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+# mainmenu "uClibc C Library Configuration"
+
+menu "Target Architecture Features and Options"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_ARCH_CFLAGS
+ string
+
+config UCLIBC_ARCH_LDFLAGS
+ string
+
+config UCLIBC_LIBGCC_CFLAGS
+ string
+
+config UCLIBC_HAVE_ELF
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_NO_MMU
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_NO_FPU
+ bool
+ default y
+
+config UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ bool
+ default y
+
+config UCLIBC_HAVE_NO_PIC
+ bool
+ default y
+
+config UCLIBC_CROSS
+ string
+ default "v850e-elf-"
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+
+config UCLIBC_UCLIBC_HAS_MMU
+ bool "Target CPU has a memory management unit (MMU)"
+ default y
+ depends !ARCH_HAS_NO_MMU
+ help
+ If your target CPU does not have a memory management unit (MMU),
+ then answer N here. Normally, Linux runs on systems with an MMU.
+ If you are building a uClinux system, answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_FLOATS
+ bool "Enable floating point number support"
+ default y
+ help
+ This option allows you to entirely omit all floating point number
+ support from uClibc. This will cause floating point functions like
+ strtod() to be omitted from uClibc. Other floating point functions,
+ such as printf() and scanf() will still be included in the library,
+ but will not contain support for floating point numbers.
+
+ Answering N to this option can reduce the size of uClibc. Most people
+ will answer Y.
+
+config UCLIBC_HAS_FPU
+ bool "Target CPU has a floating point unit (FPU)"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_ARCH_HAS_NO_FPU
+ default y
+ help
+ If your target CPU does not have a Floating Point Unit (FPU) or a
+ kernel FPU emulator, but you still wish to support floating point
+ functions, then uClibc will need to be compiled with soft floating
+ point support (-msoft-float). If your target CPU does not have an
+ FPU or an FPU emulator within the Linux kernel, then you should
+ answer N.
+
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_SOFT_FLOAT
+ bool
+ depends on UCLIBC_UCLIBC_HAS_FLOATS && !UCLIBC_HAS_FPU
+ default y
+
+config UCLIBC_DO_C99_MATH
+ bool "Enable full C99 math library support"
+ depends on UCLIBC_UCLIBC_HAS_FLOATS
+ default n
+ help
+ If you want the uClibc math library to contain the full set C99
+ math library features, then answer Y. If you leave this set to
+ N the math library will contain only the math functions that were
+ listed as part of the traditional POSIX/IEEE 1003.1b-1993 standard.
+ Leaving this option set to N will save around 35k on an x86 system.
+
+ If your applications require the newer C99 math library functions,
+ then answer Y.
+
+config UCLIBC_WARNINGS
+ string "Compiler Warnings"
+ default "-Wall"
+ help
+ Set this to the set of gcc warnings you wish to see while compiling.
+
+config UCLIBC_KERNEL_SOURCE
+ string "Linux kernel header location"
+ default "/usr/src/linux"
+ help
+ The kernel source you use to compile with should be the same as the
+ Linux kernel you run your apps on. uClibc doesn't even try to achieve binary
+ compatibility across kernel versions. So don't expect, for example, uClibc
+ compiled with Linux kernel 2.0.x to implement lchown properly, since 2.0.x
+ can't do that. Similarly, if you compile uClibc vs Linux 2.4.x kernel headers,
+ but then run on Linux 2.0.x, lchown will be compiled into uClibc, but won't
+ work at all. You have been warned.
+
+config UCLIBC_UCLIBC_UCLINUX_BROKEN_MUNMAP
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_EXCLUDE_BRK
+ bool
+ depends on !UCLIBC_UCLIBC_HAS_MMU
+ default y
+
+config UCLIBC_C_SYMBOL_PREFIX
+ string
+ default "_" if UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+ default "" if !UCLIBC_ARCH_HAS_C_SYMBOL_PREFIX
+
+
+endmenu
+
+#
+# For a description of the syntax of this configuration file,
+# see extra/config/Kconfig-language.txt
+#
+config UCLIBC_HAVE_DOT_CONFIG
+ bool
+ default y
+
+
+menu "General Library Settings"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_DOPIC
+ bool "Generate Position Independent Code (PIC)"
+ default y
+ depends !HAVE_NO_PIC
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_HAVE_SHARED
+ bool "Enable support for shared libraries"
+ depends on UCLIBC_DOPIC
+ default y
+ help
+ If you wish to build uClibc with support for shared libraries then
+ answer Y here. If you only want to build uClibc as a static library,
+ then answer N.
+
+config UCLIBC_ADD_LIBGCC_FUNCTIONS
+ bool "Add unresolved libgcc symbols to uClibc"
+ depends on UCLIBC_HAVE_SHARED
+ default n
+ help
+ If you answer Y here, all unresolved functions provided by the libgcc
+ library that are used by uClibc will be added directly into the
+ uClibc library. If your gcc compiler only provides a static libgcc
+ library, then enabling this option can reduce the size of your
+ binaries by preventing these functions from being staticly linked
+ into every binary. If you have compiled uClibc as PIC code, one
+ potential size effect of this option is that you may end up adding
+ non-PIC libgcc code into your shared uClibc library, resulting in a
+ non shareable text segment (thereby wasting a bunch of ram). If your
+ compiler supports a shared libgcc library, you should certainly leave
+ this option disabled. Regardless, the safest answer is N.
+
+config UCLIBC_BUILD_UCLIBC_LDSO
+ bool "Compile native shared library loader"
+ depends on UCLIBC_HAVE_SHARED
+ default y
+ help
+ uClibc has a native shared library loader for some architectures.
+ If you answer Y here, the uClibc native shared library loader will
+ be built for your target architecture. If this option is available,
+ to you, then you almost certainly want to answer Y.
+
+config UCLIBC_FORCE_SHAREABLE_TEXT_SEGMENTS
+ bool "Only load shared libraries which can share their text segment"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO && UCLIBC_UCLIBC_COMPLETELY_PIC && !UCLIBC_ADD_LIBGCC_SYMBOLS
+ default n
+ help
+ If you answer Y here, the uClibc native shared library loader will
+ only load shared libraries, which do not need to modify any non-writable
+ segments. These libraries haven't set the DT_TEXTREL tag in the dynamic
+ section (==> objdump). So all your libraries must be compiled with
+ -fPIC or -fpic, and all assembler function must be written as position
+ independent code (PIC).
+ Enabling this option will makes uClibc's shared library loader a
+ little bit smaller and guarantee that no memory will be wasted by badly
+ coded shared libraries.
+
+config UCLIBC_LDSO_LDD_SUPPORT
+ bool "Native shared library loader 'ldd' support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default y
+ help
+ Enable this to enable all the code needed to support traditional ldd,
+ which executes the shared library loader to resolve all dependencies
+ and then provide a list of shared libraries that are required for an
+ application to function. Disabling this option will makes uClibc's
+ shared library loader a little bit smaller. Most people will answer Y.
+
+config UCLIBC_UCLIBC_CTOR_DTOR
+ bool "Support global constructors and destructors"
+ default y
+ help
+ If you wish to build uClibc with support for global constructor
+ (ctor) and global destructor (dtor) support, then answer Y here.
+ When ctor/dtor support is enabled, binaries linked with uClibc must
+ also be linked with crtbegin.o and crtend.o which are provided by gcc
+ (the "*startfile:" and "*endfile:" settings in your gcc specs file
+ may need to be adjusted to include these files). This support will
+ also add a small amount of additional size to each binary compiled vs
+ uClibc. If you will be using uClibc with C++, or if you need the gcc
+ __attribute__((constructor)) and __attribute__((destructor)) to work,
+ then you definitely want to answer Y here. If you don't need ctors
+ or dtors and want your binaries to be as small as possible, then
+ answer N.
+
+config UCLIBC_UCLIBC_PROFILING
+ bool "Support gprof profiling"
+ default y
+ help
+ If you wish to build uClibc with support for application profiling
+ using the gprof tool, then you should enable this feature. Then in
+ addition to building uClibc with profiling support, you will also
+ need to recompile all your shared libraries with the profiling
+ enabled version of uClibc. To add profiling support to your
+ applications, you must compile things using the gcc options
+ "-fprofile-arcs -pg". Then when you run your applications, a
+ gmon.out file will be generated which can then be analyzed by
+ 'gprof'.
+
+ These exist a number of less invasive alternatives that do not
+ require your to specially instrument your application, and recompile
+ and relink everything.
+
+ Many people have had good results using the combination of Valgrind
+ to generate profiling information and KCachegrind for analysis:
+ http://developer.kde.org/~sewardj/
+ http://kcachegrind.sourceforge.net/
+
+ The OProfile system-wide profiler is another alternative:
+ http://oprofile.sourceforge.net/
+
+ Prospect is another alternative based on OProfile:
+ http://prospect.sourceforge.net/
+
+ And the Linux Trace Toolkit (LTT) is also a fine tool:
+ http://www.opersys.com/LTT/
+
+ If none of these tools do what you need, you can of course enable
+ this option, rebuild everything, and use 'gprof'. There is both a
+ size and performance penelty to profiling your applications this way,
+ so most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_THREADS
+ bool "POSIX Threading Support"
+ default y
+ help
+ If you want to compile uClibc with pthread support, then answer Y.
+ This will increase the size of uClibc by adding a bunch of locking
+ to critical data structures, and adding extra code to ensure that
+ functions are properly reentrant.
+
+ If your applications require pthreads, answer Y.
+
+config UCLIBC_PTHREADS_DEBUG_SUPPORT
+ bool "Build pthreads debugging support"
+ default n
+ depends on UCLIBC_UCLIBC_HAS_THREADS
+ help
+ Say Y here if you wish to be able to debug applications that use
+ uClibc's pthreads library. By enabling this option, a library
+ named libthread_db will be built. This library will be dlopen()'d
+ by gdb and will allow gdb to debug the threads in your application.
+
+ IMPORTANT NOTE! Because gdb must dlopen() the libthread_db library,
+ you must compile gdb with uClibc in order for pthread debugging to
+ work properly.
+
+ If you are doing development and want to debug applications using
+ uClibc's pthread library, answer Y. Otherwise, answer N.
+
+config UCLIBC_UCLIBC_HAS_LFS
+ bool "Large File Support"
+ default y
+ help
+ If you wish to build uClibc with support for accessing large files
+ (i.e. files greater then 2 GiB) then answer Y. Do not enable this
+ if you are using an older UCLIBC_Linux kernel (UCLIBC_2.UCLIBC_0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
+choice
+ prompt "Malloc Implementation"
+ default "malloc-930716"
+ help
+ "malloc" use mmap for all allocations and so works very well on MMU-less
+ systems that do not support the brk() system call. It is pretty smart
+ about reusing already allocated memory, and minimizing memory wastage.
+
+ "malloc-930716" is derived from libc-5.3.12 and uses the brk() system call
+ for all memory allocations. This makes it very fast. It is also pretty
+ smart about reusing already allocated memory, and minimizing memory wastage.
+ Because this uses brk() it will not work on uClinux MMU-less systems.
+
+ If unsure, answer "malloc".
+
+config UCLIBC_MALLOC
+ bool "malloc"
+
+config UCLIBC_MALLOC_930716
+ bool "malloc-930716"
+ depends on UCLIBC_UCLIBC_HAS_MMU
+
+endchoice
+
+config UCLIBC_UCLIBC_DYNAMIC_ATEXIT
+ bool "Dynamic atexit() Support"
+ default y
+ help
+
+ When this option is enabled, uClibc will support an infinite number,
+ of atexit() and on_exit() functions, limited only by your available
+ memory. This can be important when uClibc is used with C++, since
+ global destructors are implemented via atexit(), and it is quite
+ possible to exceed the default number when this option is disabled.
+ Enabling this option adds a few bytes, and more significantly makes
+ atexit and on_exit depend on malloc, which can be bad when compiling
+ static executables.
+
+ Unless you use uClibc with C++, you should probably answer N.
+
+
+config UCLIBC_HAS_SHADOW
+ bool "Shadow Password Support"
+ default y
+ help
+ Answer N if you do not need shadow password support.
+ Most people will answer Y.
+
+config UCLIBC_UCLIBC_HAS_REGEX
+ bool "Regular Expression Support"
+ default y
+ help
+ POSIX regular expression code is really big -- 27k all by itself.
+ If you don't use regular expressions, turn this off and save space.
+ Of course, if you only staticly link, leave this on, since it will
+ only be included in your apps if you use regular expressions.
+
+config UCLIBC_UNIX98PTY_ONLY
+ bool "Support only Unix 98 PTYs"
+ default y
+ help
+ If you want to support only Unix 98 PTYs enable this. Some older
+ applications may need this disabled. For most current programs,
+ you can generally answer Y.
+
+config UCLIBC_ASSUME_DEVPTS
+ bool "Assume that /dev/pts is a devpts or devfs file system"
+ default y
+ help
+ Enable this if /dev/pts is on a devpts or devfs filesystem. Both
+ these filesystems automatically manage permissions on the /dev/pts
+ devices. You may need to mount your devpts or devfs filesystem on
+ /dev/pts for this to work.
+
+ Most people should answer Y.
+
+config UCLIBC_UCLIBC_HAS_TM_EXTENSIONS
+ bool "Support 'struct tm' timezone extension fields"
+ default y
+ help
+ Enabling this option adds fields to 'struct tm' in time.h for
+ tracking the number of seconds east of UTC, and an abbreviation for
+ the current timezone. These fields are not specified by the SuSv3
+ standard, but they are commonly used in both GNU and BSD application
+ code.
+
+ To strictly follow the SuSv3 standard, leave this disabled.
+ Most people will probably want to answer Y.
+
+endmenu
+
+
+
+menu "Networking Support"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_UCLIBC_HAS_IPV6
+ bool "IP version 6 Support"
+ default n
+ help
+ If you want to include support for the next version of the Internet
+ Protocol (IP version 6) then answer Y.
+
+ Most people should answer N.
+
+config UCLIBC_UCLIBC_HAS_RPC
+ bool "Remote Procedure Call (RPC) support"
+ default n
+ help
+ If you want to include RPC support, enable this. RPC is rarely used
+ for anything except for the NFS filesystem. Unless you plan to use NFS,
+ you can probably leave this set to N and save some space. If you need
+ to use NFS then you should answer Y.
+
+config UCLIBC_UCLIBC_HAS_FULL_RPC
+ bool "Full RPC support"
+ depends on UCLIBC_UCLIBC_HAS_RPC
+ default y if !UCLIBC_HAVE_SHARED
+ help
+ Normally we enable just enough RPC support for things like rshd and
+ nfs mounts to work. If you find you need the rest of the RPC stuff,
+ then enable this option. Most people can safely answer N.
+
+endmenu
+
+
+menu "String and Stdio Support"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_UCLIBC_HAS_WCHAR
+ bool "Wide Character Support"
+ default n
+ help
+ Answer Y to enable wide character support. This will make uClibc
+ much larger.
+
+ Most people will answer N.
+
+config UCLIBC_UCLIBC_HAS_LOCALE
+ bool "Locale Support (experimental/incomplete)"
+ depends on UCLIBC_UCLIBC_HAS_WCHAR
+ default n
+ help
+ Answer Y to enable locale support. This will make uClibc much
+ bigger. uClibc's locale support is still under development, and
+ should be finished in the next several weeks (November 2002).
+
+ Most people will wisely answer N.
+
+config UCLIBC_USE_OLD_VFPRINTF
+ bool "Use the old vfprintf implementation"
+ default n
+ help
+ Set to true to use the old vfprintf instead of the new. This is roughly
+ C89 compliant, but doesn't deal with qualifiers on %n and doesn't deal with
+ %h correctly or %hh at all on the integer conversions. But on i386 it is
+ over 1.5k smaller than the new code. Of course, the new code fixes the
+ above mentioned deficiencies and adds custom specifier support similar to
+ glibc, as well as handling positional args. This will be rewritten at some
+ point to bring it to full C89 standards compliance.
+
+ Most people will answer N.
+
+endmenu
+
+menu "Library Installation Options"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_SHARED_LIB_LOADER_PATH
+ string "Shared library loader path"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default "$(DEVEL_PREFIX)/lib"
+ help
+ When using shared libraries, this path is the location where the
+ shared library will be invoked. This value will be compiled into
+ every binary compiled with uClibc.
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_SYSTEM_LDSO
+ string "System shared library loader"
+ depends on UCLIBC_HAVE_SHARED && !UCLIBC_BUILD_UCLIBC_LDSO
+ default "/lib/ld-linux.so.2"
+ help
+ If you are using shared libraries, but do not want/have a native
+ uClibc shared library loader, please specify the name of your
+ target system's shared library loader here...
+
+ BIG FAT WARNING:
+ If you do not have a shared library loader with the correct name
+ sitting in the directory this points to, your binaries will not
+ run.
+
+config UCLIBC_DEVEL_PREFIX
+ string "uClibc development environment directory"
+ default "/usr/$(TARGET_ARCH)-linux-uclibc"
+ help
+ DEVEL_PREFIX is the directory into which the uClibc development
+ environment will be installed. The result will look something
+ like the following:
+ $(DEVEL_PREFIX)/
+ lib/ <contains all runtime and static libs>
+ include/ <Where all the header files go>
+ This value is used by the 'make install' Makefile target. Since this
+ directory is compiled into the uclibc cross compiler spoofer, you
+ have to recompile uClibc if you change this value...
+
+config UCLIBC_SYSTEM_DEVEL_PREFIX
+ string "uClibc development environment system directory"
+ default "$(DEVEL_PREFIX)"
+ help
+ SYSTEM_DEVEL_PREFIX is the directory prefix used when installing
+ bin/arch-uclibc-gcc, bin/arch-uclibc-ld, etc. This is only used by
+ the 'make install' target, and is not compiled into anything. This
+ defaults to $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs will
+ want to set this to "/usr" instead.
+
+config UCLIBC_DEVEL_TOOL_PREFIX
+ string "uClibc development environment tool directory"
+ default "$(DEVEL_PREFIX)/usr"
+ help
+ DEVEL_TOOL_PREFIX is the directory prefix used when installing
+ bin/gcc, bin/ld, etc. This is only used by the 'make install'
+ target, and is not compiled into anything. This defaults to
+ $(DEVEL_PREFIX)/usr, but makers of .rpms and .debs may want to
+ set this to something else.
+
+endmenu
+
+menu "uClibc hacking options"
+ depends on UCLIBC && ARCH_V850
+
+config UCLIBC_DODEBUG
+ bool "Build uClibc with debugging symbols"
+ default n
+ help
+ Say Y here if you wish to compile uClibc with debugging symbols.
+ This will allow you to use a debugger to examine uClibc internals
+ while applications are running. This increases the size of the
+ library considerably and should only be used when doing development.
+ If you are doing development and want to debug uClibc, answer Y.
+
+ Otherwise, answer N.
+
+config UCLIBC_DOASSERTS
+ bool "Build uClibc with run-time assertion testing"
+ default n
+ help
+ Say Y here to include runtime assertion tests.
+ This enables runtime assertion testing in some code, which can
+ increase the size of the library and incur runtime overhead.
+ If you say N, then this testing will be disabled.
+
+config UCLIBC_SUPPORT_LD_DEBUG
+ bool "Build the shared library loader with debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to enable all the extra code needed to debug the uClibc
+ native shared library loader. The level of debugging noise that is
+ generated depends on the LD_DEBUG environment variable... Just set
+ LD_DEBUG to something like: 'LD_DEBUG=token1,token2,.. prog' to
+ debug your application. Diagnostic messages will then be printed to
+ the stderr.
+
+ For now these debugging tokens are available:
+ detail provide more information for some options
+ move display copy processing
+ symbols display symbol table processing
+ reloc display relocation processing; detail shows the relocation patch
+ nofixups never fixes up jump relocations
+ bindings displays the resolve processing (function calls); detail shows the relocation patch
+ all Enable everything!
+
+ The additional environment variable:
+ LD_DEBUG_OUTPUT=file
+ redirects the diagnostics to an output file created using
+ the specified name and the process id as a suffix.
+
+ An excellent start is simply:
+ $ LD_DEBUG=binding,move,symbols,reloc,detail ./appname
+ or to log everything to a file named 'logfile', try this
+ $ LD_DEBUG=all LD_DEBUG_OUTPUT=logfile ./appname
+
+ If you are doing development and want to debug uClibc's shared library
+ loader, answer Y. Mere mortals answer N.
+
+config UCLIBC_SUPPORT_LD_DEBUG_EARLY
+ bool "Build the shared library loader with early debugging support"
+ depends on UCLIBC_BUILD_UCLIBC_LDSO
+ default n
+ help
+ Answer Y here to if you find the uClibc shared library loader is
+ crashing or otherwise not working very early on. This is typical
+ only when starting a new port when you haven't figured out how to
+ properly get the values for argc, argv, environ, etc. This method
+ allows a degree of visibility into the very early shared library
+ loader initialization process. If you are doing development and want
+ to debug the uClibc shared library loader early initialization,
+ answer Y. Mere mortals answer N.
+
+config UCLIBC_UCLIBC_MALLOC_DEBUGGING
+ bool "Build malloc with debugging support"
+ depends MALLOC
+ default n
+ help
+ Answer Y here to compile extra debugging support code into malloc.
+ Malloc debugging output may then be enabled at runtime using
+ the MALLOC_DEBUG environment variable. Because this increases
+ the size of malloc appreciably (due to strings etc), you
+ should say N unless you need to debug a malloc problem.
+
+endmenu
+
+
diff --git a/rules/Rules.make b/rules/Rules.make
index a0b17153f..78b57a71d 100644
--- a/rules/Rules.make
+++ b/rules/Rules.make
@@ -1,27 +1,144 @@
# -*-makefile-*-
-PASSIVEFTP = --passive-ftp
-SUDO ?= sudo
-PTXUSER = $(shell echo $$USER)
-GNU_HOST = $(shell uname -m)-linux
-HOSTCC = gcc
-CROSSSTRIP = $(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-strip
-DOT = dot
-DEP_OUTPUT = depend.out
-DEP_TREE_PS = deptree.ps
+PASSIVEFTP = --passive-ftp
+SUDO = sudo
+PTXUSER = $(shell echo $$USER)
+GNU_HOST = $(shell $(TOPDIR)/scripts/config.guess)
+HOSTCC = gcc
+HOSTCC_ENV = CC=$(HOSTCC)
+CROSSSTRIP = $(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-strip
+CROSS_STRIP = $(CROSSSTRIP)
+DOT = dot
+DEP_OUTPUT = depend.out
+DEP_TREE_PS = deptree.ps
#
# some convenience functions
#
+#
# print out header information
+#
targetinfo=echo ; \
-echo `echo target: $(1) |sed -e "s/./-/g"` ; \
-echo target: $(1) ; \
-echo `echo target: $(1) |sed -e "s/./-/g"` ; \
-echo ; \
+TG=`echo $(1) | sed -e "s,/.*/,,g"` ; \
+LINE=`echo target: $$TG |sed -e "s/./-/g"` ; \
+echo $$LINE ; \
+echo target: $$TG ; \
+echo $$LINE ; \
+echo ; \
echo $@ : $^ | sed -e "s@$(TOPDIR)@@g" -e "s@/src/@@g" -e "s@/state/@@g" >> $(DEP_OUTPUT)
-# find out latest configuration
+
+#
+# extract the given source to sourcedir
+#
+extract = \
+ DEST="$(2)"; \
+ DEST=$${DEST:-$(BUILDDIR)}; \
+ case "$(1)" in \
+ *gz) \
+ EXTRACT=gzip \
+ ;; \
+ *bz2) \
+ EXTRACT=bzip2 \
+ ;; \
+ *) \
+ false \
+ ;; \
+ esac; \
+ [ -d $$DEST ] || mkdir -p $$DEST; \
+ $$EXTRACT -dc $(1) | $(TAR) -C $$DEST -xf -
+
+#
+# download the given URL
+#
+get = \
+ SRC="$(2)"; \
+ SRC=$${SRC:-$(SRCDIR)}; \
+ [ -d $$SRC ] || mkdir -p $$SRC; \
+ wget -P $$SRC $(PASSIVEFTP) $(1)
+
+#
+# cleanup the given directory
+#
+clean = \
+ [ -d $(1) ] && rm -rf $(1) || true
+
+#
+# find latest config
+#
latestconfig=`find $(TOPDIR)/config -name $(1)* -print | sort | tail -1`
+
+#
+# crossenvironment - glibc or uClibc depending on selected option
+#
+CROSS_ENV_AR = AR=$(PTXCONF_GNU_TARGET)-ar
+CROSS_ENV_AS = AS=$(PTXCONF_GNU_TARGET)-as
+CROSS_ENV_LD = LD=$(PTXCONF_GNU_TARGET)-gcc
+CROSS_ENV_NM = NM=$(PTXCONF_GNU_TARGET)-nm
+CROSS_ENV_CC = CC=$(PTXCONF_GNU_TARGET)-gcc
+CROSS_ENV_CXX = CXX=$(PTXCONF_GNU_TARGET)-c++
+CROSS_ENV_OBJCOPY = OBJCOPY=$(PTXCONF_GNU_TARGET)-objcopy
+CROSS_ENV_OBJDUMP = OBJDUMP=$(PTXCONF_GNU_TARGET)-objdump
+CROSS_ENV_RANLIB = RANLIB=$(PTXCONF_GNU_TARGET)-ranlib
+CROSS_ENV_STRIP = STRIP=$(PTXCONF_GNU_TARGET)-strip
+
+CROSS_ENV = $(CROSS_ENV_AR)
+CROSS_ENV += $(CORSS_ENV_AS)
+CROSS_ENV += $(CROSS_ENV_CXX)
+CROSS_ENV += $(CROSS_ENV_CC)
+CROSS_ENV += $(CROSS_ENV_LD)
+CROSS_ENV += $(CROSS_ENV_NM)
+CROSS_ENV += $(CROSS_ENV_OBJCOPY)
+CROSS_ENV += $(CROSS_ENV_OBJDUMP)
+CROSS_ENV += $(CROSS_ENV_RANLIB)
+CROSS_ENV += $(CROSS_ENV_STRIP)
+
+#
+# CORSS_LIB_DIR = into this dir, the libs for the target system, are installed
+#
+CROSS_LIB_DIR = $(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)
+
+#
+# distcc, perhaps we will use this feature in far future :)
+# for more info see:
+# http://distcc.samba.org
+#
+DISTCC_ENV = CC='distcc $(PTXCONF_GNU_TARGET)-gcc'
+DISTCC_MAKE = CC='distcc $(PTXCONF_GNU_TARGET)-gcc' -j16
+
+
+#
+# prepare the search path
+#
+CROSS_PATH = $(PTXCONF_PREFIX)/bin:$$PATH
+
+
+#
+# same as PTXCONF_GNU_TARGET, but w/o -linux
+# e.g. i486 instead of i486-linux
+#
+SHORT_TARGET = `echo $(PTXCONF_GNU_TARGET) | perl -i -p -e 's/(.*?)-.*/$$1/'`
+
+#
+# change this if you have some wired configuration :)
+#
+SH = /bin/sh
+WGET = wget
+MAKE = make
+PATCH = patch
+TAR = tar
+GZIP = gzip
+BZIP2 = bzip2
+CAT = cat
+RM = rm
+MKDIR = mkdir
+CD = cd
+MV = mv
+CP = cp
+LN = ln
+PERL = perl
+GREP = grep
+INSTALL = install
+
# vim: syntax=make
diff --git a/rules/Virtual.make b/rules/Virtual.make
new file mode 100644
index 000000000..ac698d197
--- /dev/null
+++ b/rules/Virtual.make
@@ -0,0 +1,26 @@
+# -*-makefile-*-
+# $Id: Virtual.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+ifdef PTXCONF_GLIBC
+DYNAMIC_LINKER = /lib/ld.so.1
+endif
+ifdef PTXCONF_UCLIBC
+DYNAMIC_LINKER = /lib/ld-uClibc.so.0
+endif
+
+virtual-xchain_install: $(STATEDIR)/virtual-xchain.install
+
+ifdef PTXCONF_BUILD_CROSSCHAIN
+virtual-xchain_install_deps = $(STATEDIR)/xchain-gccstage2.install
+endif
+
+$(STATEDIR)/virtual-xchain.install: $(virtual-xchain_install_deps)
+ @$(call targetinfo, virtual-xchain.install)
+ touch $@ \ No newline at end of file
diff --git a/rules/autoconf-2.13.make b/rules/autoconf-2.13.make
index f798d7b13..3a9ef95de 100644
--- a/rules/autoconf-2.13.make
+++ b/rules/autoconf-2.13.make
@@ -1,4 +1,5 @@
-# $Id: autoconf-2.13.make,v 1.2 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: autoconf-2.13.make,v 1.3 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -10,7 +11,7 @@
#
# We provide this package
#
-PACKAGES += autoconf213
+#PACKAGES += autoconf213
#
# Paths and names
@@ -19,7 +20,6 @@ AUTOCONF213 = autoconf-2.13
AUTOCONF213_URL = ftp://ftp.gnu.org/pub/gnu/autoconf/$(AUTOCONF213).tar.gz
AUTOCONF213_SOURCE = $(SRCDIR)/$(AUTOCONF213).tar.gz
AUTOCONF213_DIR = $(BUILDDIR)/$(AUTOCONF213)
-AUTOCONF213_EXTRACT = gzip -dc
# ----------------------------------------------------------------------------
# Get
@@ -32,7 +32,8 @@ $(STATEDIR)/autoconf213.get: $(AUTOCONF213_SOURCE)
touch $@
$(AUTOCONF213_SOURCE):
- wget -P $(SRCDIR) $(PASSIVEFTP) $(AUTOCONF213_URL)
+ @$(call targetinfo, $(AUTOCONF213_SOURCE))
+ @$(call get, $(AUTOCONF213_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -42,7 +43,8 @@ autoconf213_extract: $(STATEDIR)/autoconf213.extract
$(STATEDIR)/autoconf213.extract: $(STATEDIR)/autoconf213.get
@$(call targetinfo, autoconf213.extract)
- $(AUTOCONF213_EXTRACT) $(AUTOCONF213_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(AUTOCONF213_DIR))
+ @$(call extract, $(AUTOCONF213_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -51,10 +53,13 @@ $(STATEDIR)/autoconf213.extract: $(STATEDIR)/autoconf213.get
autoconf213_prepare: $(STATEDIR)/autoconf213.prepare
+AUTOCONF213_ENV = $(HOSTCC_ENV)
+
$(STATEDIR)/autoconf213.prepare: $(STATEDIR)/autoconf213.extract
@$(call targetinfo, autoconf213.prepare)
- cd $(AUTOCONF213_DIR) && \
- CFLAGS=$(CFLAGS) ./configure --prefix=$(PTXCONF_PREFIX)/$(AUTOCONF213)
+ cd $(AUTOCONF213_DIR) && \
+ $(AUTOCONF213_ENV) \
+ ./configure --prefix=$(PTXCONF_PREFIX)/$(AUTOCONF213)
touch $@
# ----------------------------------------------------------------------------
@@ -65,7 +70,7 @@ autoconf213_compile: $(STATEDIR)/autoconf213.compile
$(STATEDIR)/autoconf213.compile: $(STATEDIR)/autoconf213.prepare
@$(call targetinfo, autoconf213.compile)
- make -C $(AUTOCONF213_DIR) $(MAKEPARMS)
+ make -C $(AUTOCONF213_DIR)
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/autoconf-2.57.make b/rules/autoconf-2.57.make
index 4edb64f64..0b9244b25 100644
--- a/rules/autoconf-2.57.make
+++ b/rules/autoconf-2.57.make
@@ -1,4 +1,5 @@
-# $Id: autoconf-2.57.make,v 1.2 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: autoconf-2.57.make,v 1.3 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -10,7 +11,7 @@
#
# We provide this package
#
-PACKAGES += autoconf257
+#PACKAGES += autoconf257
#
# Paths and names
@@ -19,7 +20,6 @@ AUTOCONF257 = autoconf-2.57
AUTOCONF257_URL = ftp://ftp.gnu.org/pub/gnu/autoconf/$(AUTOCONF257).tar.gz
AUTOCONF257_SOURCE = $(SRCDIR)/$(AUTOCONF257).tar.gz
AUTOCONF257_DIR = $(BUILDDIR)/$(AUTOCONF257)
-AUTOCONF257_EXTRACT = gzip -dc
# ----------------------------------------------------------------------------
# Get
@@ -28,11 +28,12 @@ AUTOCONF257_EXTRACT = gzip -dc
autoconf257_get: $(STATEDIR)/autoconf257.get
$(STATEDIR)/autoconf257.get: $(AUTOCONF257_SOURCE)
+ @$(call targetinfo, autoconf257.get)
touch $@
$(AUTOCONF257_SOURCE):
- @$(call targetinfo, autoconf257.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(AUTOCONF257_URL)
+ @$(call targetinfo, $(AUTOCONF257_SOURCE))
+ @$(call get, $(AUTOCONF257_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -42,7 +43,8 @@ autoconf257_extract: $(STATEDIR)/autoconf257.extract
$(STATEDIR)/autoconf257.extract: $(STATEDIR)/autoconf257.get
@$(call targetinfo, autoconf257.extract)
- $(AUTOCONF257_EXTRACT) $(AUTOCONF257_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(AUTOCONF257_DIR))
+ @$(call extract, $(AUTOCONF257_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -51,10 +53,13 @@ $(STATEDIR)/autoconf257.extract: $(STATEDIR)/autoconf257.get
autoconf257_prepare: $(STATEDIR)/autoconf257.prepare
+AUTOCONF257_ENV = $(HOSTCC_ENV)
+
$(STATEDIR)/autoconf257.prepare: $(STATEDIR)/autoconf257.extract
@$(call targetinfo, autoconf257.prepare)
- cd $(AUTOCONF257_DIR) && \
- CFLAGS=$(CFLAGS) ./configure --prefix=$(PTXCONF_PREFIX)/$(AUTOCONF257)
+ cd $(AUTOCONF257_DIR) && \
+ $(AUTOCONF257_ENV) \
+ ./configure --prefix=$(PTXCONF_PREFIX)/$(AUTOCONF257)
touch $@
# ----------------------------------------------------------------------------
@@ -65,7 +70,7 @@ autoconf257_compile: $(STATEDIR)/autoconf257.compile
$(STATEDIR)/autoconf257.compile: $(STATEDIR)/autoconf257.prepare
@$(call targetinfo, autoconf257.compile)
- make -C $(AUTOCONF257_DIR) $(MAKEPARMS)
+ make -C $(AUTOCONF257_DIR)
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/bash.make b/rules/bash.make
index 88d195741..3cb5c88f0 100644
--- a/rules/bash.make
+++ b/rules/bash.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: bash.make,v 1.4 2003/07/09 14:49:52 bsp Exp $
+# $Id: bash.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -22,7 +22,6 @@ BASH = bash-2.05b
BASH_URL = ftp://ftp.gnu.org/pub/gnu/bash/$(BASH).tar.gz
BASH_SOURCE = $(SRCDIR)/$(BASH).tar.gz
BASH_DIR = $(BUILDDIR)/$(BASH)
-BASH_EXTRACT = gzip -dc
# ----------------------------------------------------------------------------
# Get
@@ -31,11 +30,12 @@ BASH_EXTRACT = gzip -dc
bash_get: $(STATEDIR)/bash.get
$(STATEDIR)/bash.get: $(BASH_SOURCE)
+ @$(call targetinfo, bash.get)
touch $@
$(BASH_SOURCE):
- @$(call targetinfo, bash.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(BASH_URL)
+ @$(call targetinfo, $(BASH_SOURCE))
+ @$(call get, $(BASH_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -45,7 +45,8 @@ bash_extract: $(STATEDIR)/bash.extract
$(STATEDIR)/bash.extract: $(STATEDIR)/bash.get
@$(call targetinfo, bash.extract)
- $(BASH_EXTRACT) $(BASH_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean $(BASH_DIR))
+ @$(call extract, $(BASH_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -58,12 +59,10 @@ BASH_AUTOCONF = --build=$(GNU_HOST)
BASH_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
BASH_AUTOCONF += --target=$(PTXCONF_GNU_TARGET)
BASH_AUTOCONF += --disable-sanity-checks
-BASH_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
-BASH_ENVIRONMENT= PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(PTXCONF_PREFIX)/bin:$$PATH
-BASH_ENVIRONMENT+= ac_cv_func_setvbuf_reversed=no bash_cv_have_mbstate_t=yes
-BASH_MAKEVARS = AR=$(PTXCONF_GNU_TARGET)-ar
-BASH_MAKEVARS += RANLIB=$(PTXCONF_GNU_TARGET)-ranlib
-BASH_MAKEVARS += CC=$(PTXCONF_GNU_TARGET)-gcc
+BASH_AUTOCONF += --prefix=/usr --bindir=/bin
+BASH_PATH = PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(CROSS_PATH)
+BASH_ENV = ac_cv_func_setvbuf_reversed=no bash_cv_have_mbstate_t=yes
+BASH_ENV += $(CROSS_ENV)
# FIXME: "disable" does not compile with bash-2.05b (at least not on ARM)
BASH_AUTOCONF += --enable-dparen-arithmetic
@@ -190,18 +189,15 @@ endif
#
# dependencies
#
-bash_prepare_deps = $(STATEDIR)/bash.extract
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-bash_prepare_deps += $(STATEDIR)/xchain-gccstage2.install
-endif
-
+bash_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/bash.extract
$(STATEDIR)/bash.prepare: $(bash_prepare_deps)
@$(call targetinfo, bash.prepare)
- mkdir -p $(BUILDDIR)/$(BASH)
- cd $(BUILDDIR)/$(BASH) && \
- $(BASH_ENVIRONMENT) \
- $(BASH_DIR)/configure $(BASH_AUTOCONF)
+ cd $(BASH_DIR) && \
+ $(BASH_PATH) $(BASH_ENV) \
+ ./configure $(BASH_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -212,7 +208,7 @@ bash_compile: $(STATEDIR)/bash.compile
$(STATEDIR)/bash.compile: $(STATEDIR)/bash.prepare
@$(call targetinfo, bash.compile)
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH make -C $(BASH_DIR) $(MAKEPARMS)
+ $(BASH_PATH) make -C $(BASH_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -231,9 +227,12 @@ $(STATEDIR)/bash.install: $(STATEDIR)/bash.compile
bash_targetinstall: $(STATEDIR)/bash.targetinstall
-$(STATEDIR)/bash.targetinstall: $(STATEDIR)/bash.install
+$(STATEDIR)/bash.targetinstall: $(STATEDIR)/bash.compile
@$(call targetinfo, bash.targetinstall)
- cd $(BASH_DIR) && install -m 0755 -s bash $(ROOTDIR)/bin/bash
+ mkdir -p $(ROOTDIR)/bin
+ install $(BASH_DIR)/bash $(ROOTDIR)/bin/bash
+ ln -sf bash $(ROOTDIR)/bin/sh
+ $(CROSS_STRIP) -R .note -R .comment $(ROOTDIR)/bin/bash
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/busybox.make b/rules/busybox.make
index 4567a158e..a1b73027f 100644
--- a/rules/busybox.make
+++ b/rules/busybox.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: busybox.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# $Id: busybox.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -11,7 +11,7 @@
#
# We provide this package
#
-ifeq (y,$(PTXCONF_BUSYBOX))
+ifdef PTXCONF_BUSYBOX
PACKAGES += busybox
endif
@@ -22,7 +22,6 @@ BUSYBOX = busybox-0.61.pre-ptx9
BUSYBOX_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(BUSYBOX).tar.gz
BUSYBOX_SOURCE = $(SRCDIR)/$(BUSYBOX).tar.gz
BUSYBOX_DIR = $(BUILDDIR)/$(BUSYBOX)
-BUSYBOX_EXTRACT = gzip -dc
# ----------------------------------------------------------------------------
# Get
@@ -33,12 +32,12 @@ busybox_get: $(STATEDIR)/busybox.get
busybox_get_deps = $(BUSYBOX_SOURCE)
$(STATEDIR)/busybox.get: $(busybox_get_deps)
+ @$(call targetinfo, busybox.get)
touch $@
$(BUSYBOX_SOURCE):
- @$(call targetinfo, busybox.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(BUSYBOX_URL)
- @exit
+ @$(call targetinfo, $(BUSYBOX_SOURCE))
+ @$(call get, $(BUSYBOX_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -48,7 +47,8 @@ busybox_extract: $(STATEDIR)/busybox.extract
$(STATEDIR)/busybox.extract: $(STATEDIR)/busybox.get
@$(call targetinfo, busybox.extract)
- $(BUSYBOX_EXTRACT) $(BUSYBOX_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(BUSYBOX_DIR))
+ @$(call extract, $(BUSYBOX_SOURCE))
# #
# # fix: turn off debugging in init.c
# #
@@ -62,47 +62,36 @@ $(STATEDIR)/busybox.extract: $(STATEDIR)/busybox.get
busybox_prepare: $(STATEDIR)/busybox.prepare
-BUSYBOX_ENVIRONMENT =
-BUSYBOX_MAKEVARS =
-BUSYBOX_ENVIRONMENT += PATH=$(PTXCONF_PREFIX)/bin:$$PATH
-BUSYBOX_MAKEVARS += CROSS=$(PTXCONF_GNU_TARGET)-
+BUSYBOX_PATH = PATH=$(CROSS_PATH)
+BUSYBOX_MAKEVARS = CROSS=$(PTXCONF_GNU_TARGET)- HOSTCC=$(HOSTCC)
#
# dependencies
#
-busybox_prepare_deps = $(STATEDIR)/busybox.extract
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-busybox_prepare_deps += $(STATEDIR)/xchain-gccstage2.install
-endif
+busybox_prepare_deps = $(STATEDIR)/virtual-xchain.install $(STATEDIR)/busybox.extract
$(STATEDIR)/busybox.prepare: $(busybox_prepare_deps)
@$(call targetinfo, busybox.prepare)
# FIXME: is this necessary?
touch $(BUSYBOX_DIR)/busybox.links
- $(BUSYBOX_ENVIRONMENT) make -C $(BUSYBOX_DIR) distclean $(BUSYBOX_MAKEVARS)
+ $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) distclean $(BUSYBOX_MAKEVARS)
grep -e PTXCONF_BB_ .config > $(BUSYBOX_DIR)/.config
perl -i -p -e 's/PTXCONF_BB_//g' $(BUSYBOX_DIR)/.config
- $(BUSYBOX_ENVIRONMENT) make -C $(BUSYBOX_DIR) oldconfig $(BUSYBOX_MAKEVARS)
- $(BUSYBOX_ENVIRONMENT) make -C $(BUSYBOX_DIR) dep $(BUSYBOX_MAKEVARS)
+ $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) oldconfig $(BUSYBOX_MAKEVARS)
+ $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) dep $(BUSYBOX_MAKEVARS)
touch $@
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
-busybox_compile_deps = $(STATEDIR)/busybox.prepare
-ifeq (y, $(PTXCONF_GLIBC))
-busybox_compile_deps += $(STATEDIR)/glibc.install
-endif
-ifeq (y, $(PTXCONF_UCLIBC))
-busybox_compile_deps += $(STATEDIR)/uclibc.install
-endif
-
busybox_compile: $(STATEDIR)/busybox.compile
+busybox_compile_deps = $(STATEDIR)/busybox.prepare
+
$(STATEDIR)/busybox.compile: $(busybox_compile_deps)
@$(call targetinfo, busybox.compile)
- $(BUSYBOX_ENVIRONMENT) make -C $(BUSYBOX_DIR) $(BUSYBOX_MAKEVARS)
+ $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) $(BUSYBOX_MAKEVARS)
touch $@
# ----------------------------------------------------------------------------
@@ -121,12 +110,12 @@ $(STATEDIR)/busybox.install: $(STATEDIR)/busybox.compile
busybox_targetinstall: $(STATEDIR)/busybox.targetinstall
-$(STATEDIR)/busybox.targetinstall: $(STATEDIR)/busybox.install
+$(STATEDIR)/busybox.targetinstall: $(STATEDIR)/busybox.compile
@$(call targetinfo, busybox.targetinstall)
rm -f $(BUSYBOX_DIR)/busybox.links
- $(BUSYBOX_ENVIRONMENT) make -C $(BUSYBOX_DIR) install \
+ $(BUSYBOX_PATH) make -C $(BUSYBOX_DIR) install \
PREFIX=$(ROOTDIR) $(BUSYBOX_MAKEVARS)
- $(CROSSSTRIP) -S $(ROOTDIR)/bin/busybox
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/bin/busybox
touch $@
# ----------------------------------------------------------------------------
@@ -137,4 +126,4 @@ busybox_clean:
-rm -rf $(STATEDIR)/busybox*
-rm -rf $(BUSYBOX_DIR)
-# vim: syntax=make
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/distcc.make b/rules/distcc.make
new file mode 100644
index 000000000..a192fd68e
--- /dev/null
+++ b/rules/distcc.make
@@ -0,0 +1,103 @@
+# -*-makefile-*-
+# $Id: distcc.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# Paths and names
+#
+DISTCC_VERSION = 2.8
+DISTCC = distcc-$(DISTCC_VERSION)
+DISTCC_SUFFIX = tar.bz2
+DISTCC_URL = http://distcc.samba.org/ftp/distcc/$(DISTCC).$(DISTCC_SUFFIX)
+DISTCC_SOURCE = $(SRCDIR)/$(DISTCC).$(DISTCC_SUFFIX)
+DISTCC_DIR = $(BUILDDIR)/$(DISTCC)
+DISTCC_EXTRACT = bzip2 -dc
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+distcc_get: $(STATEDIR)/distcc.get
+
+$(STATEDIR)/distcc.get: $(DISTCC_SOURCE)
+ @$(call targetinfo, distcc.get)
+ touch $@
+
+$(DISTCC_SOURCE):
+ @$(call targetinfo, $(DISTCC_SOURCE))
+ @$(call get, $(DISTCC_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+distcc_extract: $(STATEDIR)/distcc.extract
+
+$(STATEDIR)/distcc.extract: $(STATEDIR)/distcc.get
+ @$(call targetinfo, distcc.extract)
+ @$(call extract, $(DISTCC_SOURCE))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+distcc_prepare: $(STATEDIR)/distcc.prepare
+
+DISTCC_ENV = CC=$(HOSTCC)
+
+DISTCC_AUTOCONF = --prefix=$(PTXCONF_PREFIX)
+
+$(STATEDIR)/distcc.prepare: $(STATEDIR)/distcc.extract
+ @$(call targetinfo, distcc.prepare)
+ cd $(DISTCC_DIR) && $(DISTCC_ENV) \
+ ./configure $(DISTCC_AUTOCONF)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+distcc_compile: $(STATEDIR)/distcc.compile
+
+$(STATEDIR)/distcc.compile: $(STATEDIR)/distcc.prepare
+ @$(call targetinfo, distcc.compile)
+ make -C $(DISTCC_DIR)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+distcc_install: $(STATEDIR)/distcc.install
+
+$(STATEDIR)/distcc.install: $(STATEDIR)/distcc.compile
+ @$(call targetinfo, distcc.install)
+ make -C $(DISTCC_DIR) install
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+distcc_targetinstall: $(STATEDIR)/distcc.targetinstall
+
+$(STATEDIR)/distcc.targetinstall: $(STATEDIR)/distcc.install
+ @$(call targetinfo, distcc.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+distcc_clean:
+ rm -rf $(STATEDIR)/distcc.*
+ rm -rf $(DISTCC_DIR)
+
+# vim: syntax=make
diff --git a/rules/e2fsprogs.make b/rules/e2fsprogs.make
index 13d816207..2104841a7 100644
--- a/rules/e2fsprogs.make
+++ b/rules/e2fsprogs.make
@@ -31,10 +31,11 @@ E2FSPROGS_EXTRACT = gzip -dc
e2fsprogs_get: $(STATEDIR)/e2fsprogs.get
$(STATEDIR)/e2fsprogs.get: $(E2FSPROGS_SOURCE)
+ @$(call targetinfo, e2fsprogs.get)
touch $@
$(E2FSPROGS_SOURCE):
- @$(call targetinfo, e2fsprogs.get)
+ @$(call targetinfo, $(E2FSPROGS_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(E2FSPROGS_URL)
# ----------------------------------------------------------------------------
@@ -54,19 +55,17 @@ $(STATEDIR)/e2fsprogs.extract: $(STATEDIR)/e2fsprogs.get
e2fsprogs_prepare: $(STATEDIR)/e2fsprogs.prepare
-
E2FSPROGS_AUTOCONF = --prefix=$(PTXCONF_PREFIX)
E2FSPROGS_AUTOCONF += --enable-fsck
E2FSPROGS_AUTOCONF += --build=$(GNU_HOST)
E2FSPROGS_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
-E2FSPROGS_ENVIRONMENT = PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(PTXCONF_PREFIX)/bin:$$PATH
-E2FSPROGS_MAKEVARS = AR=$(PTXCONF_GNU_TARGET)-ar
-E2FSPROGS_MAKEVARS += RANLIB=$(PTXCONF_GNU_TARGET)-ranlib
-E2FSPROGS_MAKEVARS += CC=$(PTXCONF_GNU_TARGET)-gcc
+E2FSPROGS_PATH = PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(CROSS_PATH):$$PATH
+E2FSPROGS_ENV = $(CROSS_ENV)
-$(STATEDIR)/e2fsprogs.prepare: $(STATEDIR)/e2fsprogs.extract
+$(STATEDIR)/e2fsprogs.prepare: $(STATEDIR)/virtual-xchain.install $(STATEDIR)/e2fsprogs.extract
@$(call targetinfo, e2fsprogs.prepare)
- cd $(E2FSPROGS_DIR) && \
+ cd $(E2FSPROGS_DIR) \
+ $(E2FSPROGS_PATH) $(E2FSPROGS_ENV) && \
./configure $(E2FSPROGS_AUTOCONF)
touch $@
@@ -77,17 +76,12 @@ $(STATEDIR)/e2fsprogs.prepare: $(STATEDIR)/e2fsprogs.extract
e2fsprogs_compile: $(STATEDIR)/e2fsprogs.compile
e2fsprogs_compile_deps = $(STATEDIR)/e2fsprogs.prepare
-ifeq (y, $(PTXCONF_GLIBC))
e2fsprogs_compile_deps += $(STATEDIR)/glibc.install
-endif
-ifeq (y, $(PTXCONF_UCLIBC))
-e2fsprogs_compile_deps += $(STATEDIR)/uclibc.install
-endif
$(STATEDIR)/e2fsprogs.compile: $(e2fsprogs_compile_deps)
@$(call targetinfo, e2fsprogs.compile)
# FIXME: not tested on non-x86
- $(E2FSPROGS_ENVIRONMENT) make -C $(E2FSPROGS_DIR) $(E2FSPROGS_MAKEVARS)
+ $(E2FSPROGS_PATH) make -C $(E2FSPROGS_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -98,7 +92,7 @@ e2fsprogs_install: $(STATEDIR)/e2fsprogs.install
$(STATEDIR)/e2fsprogs.install: $(STATEDIR)/e2fsprogs.compile
@$(call targetinfo, e2fsprogs.install)
- make -C $(E2FSPROGS_DIR) install
+ $(E2FSPROGS_PATH) make -C $(E2FSPROGS_DIR) install
touch $@
# ----------------------------------------------------------------------------
@@ -111,11 +105,11 @@ $(STATEDIR)/e2fsprogs.targetinstall: $(STATEDIR)/e2fsprogs.install
@$(call targetinfo, e2fsprogs.targetinstall)
ifeq (y, $(PTXCONF_E2FSPROGS_MKFS))
install $(E2FSPROGS_DIR)/misc/mke2fs $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/mke2fs
+ $(CROSSSTRIP) -R .note -R .comment $(ROOTDIR)/sbin/mke2fs
endif
ifeq (y, $(PTXCONF_E2FSPROGS_E2FSCK))
install $(E2FSPROGS_DIR)/e2fsck/e2fsck.shared $(ROOTDIR)/sbin/e2fsck
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/e2fsck
+ $(CROSSSTRIP) -R .note -R .comment $(ROOTDIR)/sbin/e2fsck
endif
touch $@
diff --git a/rules/glibc.make b/rules/glibc.make
new file mode 100644
index 000000000..70264e9b4
--- /dev/null
+++ b/rules/glibc.make
@@ -0,0 +1,567 @@
+# -*-makefile-*-
+# $Id: glibc.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Auerswald GmbH & Co. KG, Schandelah, Germany
+# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_GLIBC
+PACKAGES += glibc
+endif
+
+
+#
+# Paths and names
+#
+ifeq (y, $(PTXCONF_GLIBC_2_3_2))
+GLIBC_VERSION = 2.3.2
+endif
+ifeq (y, $(PTXCONF_GLIBC_2_2_5))
+GLIBC_VERSION = 2.2.5
+endif
+ifeq (y, $(PTXCONF_GLIBC_2_2_4))
+GLIBC_VERSION = 2.2.4
+endif
+ifeq (y, $(PTXCONF_GLIBC_2_2_3))
+GLIBC_VERSION = 2.2.3
+endif
+
+GLIBC = glibc-$(GLIBC_VERSION)
+GLIBC_URL = ftp://ftp.gnu.org/gnu/glibc/$(GLIBC).tar.gz
+GLIBC_SOURCE = $(SRCDIR)/$(GLIBC).tar.gz
+GLIBC_DIR = $(BUILDDIR)/$(GLIBC)
+
+GLIBC_BUILDDIR = $(BUILDDIR)/$(GLIBC)-build
+XCHAIN_GLIBC_BUILDDIR = $(BUILDDIR)/xchain-$(GLIBC)-build
+
+GLIBC_THREADS = glibc-linuxthreads-$(GLIBC_VERSION)
+GLIBC_THREADS_URL = ftp://ftp.gnu.org/gnu/glibc/$(GLIBC_THREADS).tar.gz
+GLIBC_THREADS_SOURCE = $(SRCDIR)/$(GLIBC_THREADS).tar.gz
+GLIBC_THREADS_DIR = $(GLIBC_DIR)
+GLIBC_THREADS_EXTRACT = gzip -dc
+
+GLIBC_PTXPATCH = glibc-$(GLIBC_VERSION)-ptx3.diff
+GLIBC_PTXPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PTXPATCH)
+GLIBC_PTXPATCH_SOURCE = $(SRCDIR)/$(GLIBC_PTXPATCH)
+GLIBC_PTXPATCH_DIR = $(GLIBC_DIR)
+GLIBC_PTXPATCH_EXTRACT = cat
+
+GLIBC_MKBPATCH = glibc-2.2.5-mkb1.patch
+GLIBC_MKBPATCH_SOURCE = $(SRCDIR)/$(GLIBC_MKBPATCH)
+GLIBC_MKBPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_MKBPATCH)
+
+# \t before comment ('#')
+# stackdirection for cris architecture
+# see:
+# http://sources.redhat.com/ml/libc-alpha/2002-06/msg00006.html
+# http://sources.redhat.com/ml/libc-alpha/2002-06/msg00007.html
+# --- only for cris ---
+GLIBC_CRISPATCH = glibc-2.2.5-cris-mkb1.patch
+GLIBC_CRISPATCH_SOURCE = $(SRCDIR)/$(GLIBC_CRISPATCH)
+GLIBC_CRISPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_CRISPATCH)
+
+#
+# fix varous bugs - borrowed from gentoo
+#
+
+# Fix for http://www.cert.org/advisories/CA-2003-10.html
+GLIBC_XDRPATCH = glibc-xdr_security.patch
+GLIBC_XDRPATCH_SOURCE = $(SRCDIR)/$(GLIBC_XDRPATCH)
+GLIBC_XDRPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_XDRPATCH)
+
+# This patch apparently eliminates compiler warnings for some versions of gcc.
+# For information about the string2 patch, see:
+# http://lists.gentoo.org/pipermail/gentoo-dev/2001-June/001559.html
+GLIBC_STRINGHPATCH = glibc-2.2.4-string2.h.diff
+GLIBC_STRINGHPATCH_SOURCE = $(SRCDIR)/$(GLIBC_STRINGHPATCH)
+GLIBC_STRINGHPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_STRINGHPATCH)
+
+# This next one is a new patch to fix thread signal handling. See:
+# http://sources.redhat.com/ml/libc-hacker/2002-02/msg00120.html
+GLIBC_THREADSIGPATCH = glibc-2.2.5-threadsig.diff
+GLIBC_THREADSIGPATCH_SOURCE = $(SRCDIR)/$(GLIBC_THREADSIGPATCH)
+GLIBC_THREADSIGPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_THREADSIGPATCH)
+
+# This next patch fixes a test that will timeout due to ReiserFS' slow handling of sparse files
+GLIBC_TIMEOUTPATCH = glibc-2.2.2-test-lfs-timeout.patch
+GLIBC_TIMEOUTPATCH_SOURCE = $(SRCDIR)/$(GLIBC_TIMEOUTPATCH)
+GLIBC_TIMEOUTPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_TIMEOUTPATCH)
+
+# A buffer overflow vulnerability exists in multiple implementations of DNS
+# resolver libraries. This affects glibc-2.2.5 and earlier. See bug #4923
+# and: http://www.cert.org/advisories/CA-2002-19.html
+GLIBC_DNSPATCH = glibc-2.2.5-dns-network-overflow.diff
+GLIBC_DNSPATCH_SOURCE = $(SRCDIR)/$(GLIBC_DNSPATCH)
+GLIBC_DNSPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_DNSPATCH)
+
+# Security update for sunrpc
+GLIBC_SUNRPCPATCH = glibc-2.2.5-sunrpc-overflow.diff
+GLIBC_SUNRPCPATCH_SOURCE = $(SRCDIR)/$(GLIBC_SUNRPCPATCH)
+GLIBC_SUNRPCPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_SUNRPCPATCH)
+
+# This patch fixes the nvidia-glx probs, openoffice and vmware probs and such..
+# http://sources.redhat.com/ml/libc-hacker/2002-02/msg00152.html
+# --- only for X86 and PPC ---
+GLIBC_DIVDI3PATCH = glibc-2.2.5-divdi3.diff
+GLIBC_DIVDI3PATCH_SOURCE = $(SRCDIR)/$(GLIBC_DIVDI3PATCH)
+GLIBC_DIVDI3PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_DIVDI3PATCH)
+
+# This patch fixes the absence of sqrtl on PPC
+# http://sources.redhat.com/ml/libc-hacker/2002-05/msg00012.html
+# --- only for PPC ---
+GLIBC_SRQTPATCH = glibc-2.2.5-ppc-sqrtl.diff
+GLIBC_SRQTPATCH_SOURCE = $(SRCDIR)/$(GLIBC_SRQTPATCH)
+GLIBC_SRQTPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_SRQTPATCH)
+
+# http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0228.html
+# --- only gcc.major = 3 gcc.minor >= 2 ---
+GLIBC_DIVBYZEROPATCH = glibc-2.2.5.divbyzero.patch
+GLIBC_DIVBYZEROPATCH_SOURCE = $(SRCDIR)/$(GLIBC_DIVBYZEROPATCH)
+GLIBC_DIVBYZEROPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_DIVBYZEROPATCH)
+
+GLIBC_RESTRICTPATCH = glibc-2.2.5.restrict_arr.patch
+GLIBC_RESTRICTPATCH_SOURCE = $(SRCDIR)/$(GLIBC_RESTRICTPATCH)
+GLIBC_RESTRICTPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_RESTRICTPATCH)
+
+# Some patches to fixup build on alpha
+# --- only for ALPHA ---
+# GLIBC_ALPHAGCC3PATCH_SOURCE = $(SRCDIR)/glibc-2.2.5-alpha-gcc3-fix.diff
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+# GLIBC_ALPHAPCDYNPATCH_SOURCE = $(SRCDIR)/glibc-2.2.5-alpha-pcdyn-fix.diff
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+# GLIBC_ALPHAGCCPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+
+# Some patches to fixup build on sparc
+# --- only SPARC and SPARC64 ---
+# GLIBC_SPARCMATHINLINEPATCH_SOURCE= $(SRCDIR)/glibc-2.2.5-sparc-mathinline.patch
+# GLIBC_SPARCMISCPATCH_SOURCE = $(SRCDIR)/glibc-2.2.5-sparc-misc.diff
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+
+# Some patches to fixup build on sparc
+# --- only SPARC64 ---
+# GLIBC_SPARC64PATCH_SOURCE = $(SRCDIR)/glibc-2.2.5-sparc64-fixups.diff
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+
+# Some patches to fixup build on sparc
+# --- only SPARC and SPARC64 ---
+# GLIBC_SPARC32SEMCTLPATCH_SOURCE = $(SRCDIR)/glibc-2.2.5-sparc32-semctl.patch
+# GLIBC_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PATCH)
+
+# For ppc405, there is no fpu. The following hack disables a
+# build-error causing code. See thread:
+# http://sources.redhat.com/ml/crossgcc/2002-05/msg00131.html
+GLIBC_PPCNOFPU1PATCH = glibc-ppc-nofpu.patch1
+GLIBC_PPCNOFPU1PATCH_SOURCE = $(SRCDIR)/$(GLIBC_PPCNOFPU1PATCH)
+GLIBC_PPCNOFPU1PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PPCNOFPU1PATCH)
+
+GLIBC_PPCNOFPU2PATCH = glibc-ppc-nofpu.patch2
+GLIBC_PPCNOFPU2PATCH_SOURCE = $(SRCDIR)/$(GLIBC_PPCNOFPU2PATCH)
+GLIBC_PPCNOFPU2PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PPCNOFPU2PATCH)
+
+GLIBC_PPCNOFPU3PATCH = glibc-ppc-nofpu.patch3
+GLIBC_PPCNOFPU3PATCH_SOURCE = $(SRCDIR)/$(GLIBC_PPCNOFPU3PATCH)
+GLIBC_PPCNOFPU3PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PPCNOFPU3PATCH)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+glibc_get: $(STATEDIR)/glibc.get
+
+glibc_get_deps = $(GLIBC_SOURCE)
+glibc_get_deps += $(GLIBC_PTXPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_MKBPATCH_SOURCE)
+ifdef PTXCONF_ARCH_CRIS
+glibc_get_deps += $(GLIBC_CRISPATCH_SOURCE)
+endif
+glibc_get_deps += $(GLIBC_XDRPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_STRINGHPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_TIMEOUTPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_DNSPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_SUNRPCPATCH_SOURCE)
+ifdef PTXCONF_ARCH_X86
+glibc_get_deps += $(GLIBC_DIVDI3PATCH_SOURCE)
+endif
+ifdef PTXCONF_ARCH_PPC
+glibc_get_deps += $(GLIBC_DIVDI3PATCH_SOURCE)
+glibc_get_deps += $(GLIBC_SRQTPATCH_SOURCE)
+endif
+ifdef PTXCONF_GCC_3_2_3
+glibc_get_deps += $(GLIBC_DIVBYZEROPATCH_SOURCE)
+glibc_get_deps += $(GLIBC_RESTRICTPATCH_SOURCE)
+endif
+ifdef PTXCONF_OPT_PPC405
+glibc_get_deps += $(GLIBC_PPCNOFPU1PATCH_SOURCE)
+glibc_get_deps += $(GLIBC_PPCNOFPU2PATCH_SOURCE)
+glibc_get_deps += $(GLIBC_PPCNOFPU3PATCH_SOURCE)
+endif
+
+ifdef PTXCONF_GLIBC_PTHREADS
+glibc_get_deps += $(GLIBC_THREADS_SOURCE)
+glibc_get_deps += $(GLIBC_THREADSIGPATCH_SOURCE)
+endif
+
+$(STATEDIR)/glibc.get: $(glibc_get_deps)
+ @$(call targetinfo, glibc.get)
+ touch $@
+
+$(GLIBC_SOURCE):
+ @$(call targetinfo, $(GLIBC_SOURCE))
+ @$(call get, $(GLIBC_URL))
+
+$(GLIBC_THREADS_SOURCE):
+ @$(call targetinfo, $(GLIBC_THREADS_SOURCE))
+ @$(call get, $(GLIBC_THREADS_URL))
+
+$(GLIBC_PTXPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_PTXPATCH_SOURCE))
+ @$(call get, $(GLIBC_PTXPATCH_URL))
+
+$(GLIBC_MKBPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_MKBPATCH_SOURCE))
+ @$(call get, $(GLIBC_MKBPATCH_URL))
+
+$(GLIBC_CRISPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_CRISPATCH_SOURCE))
+ @$(call get, $(GLIBC_CRISPATCH_URL))
+
+$(GLIBC_XDRPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_XDRPATCH_SOURCE))
+ @$(call get, $(GLIBC_XDRPATCH_URL))
+
+$(GLIBC_STRINGHPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_STRINGHPATCH_SOURCE))
+ @$(call get, $(GLIBC_STRINGHPATCH_URL))
+
+$(GLIBC_TIMEOUTPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_TIMEOUTPATCH_SOURCE))
+ @$(call get, $(GLIBC_TIMEOUTPATCH_URL))
+
+$(GLIBC_DNSPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_DNSPATCH_SOURCE))
+ @$(call get, $(GLIBC_DNSPATCH_URL))
+
+$(GLIBC_SUNRPCPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_SUNRPCPATCH_SOURCE))
+ @$(call get, $(GLIBC_SUNRPCPATCH_URL))
+
+$(GLIBC_DIVDI3PATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_DIVDI3PATCH_SOURCE))
+ @$(call get, $(GLIBC_DIVDI3PATCH_URL))
+
+$(GLIBC_SRQTPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_SRQTPATCH_SOURCE))
+ @$(call get, $(GLIBC_SRQTPATCH_URL))
+
+$(GLIBC_DIVBYZEROPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_DIVBYZEROPATCH_SOURCE))
+ @$(call get, $(GLIBC_DIVBYZEROPATCH_URL))
+
+$(GLIBC_RESTRICTPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_RESTRICTPATCH_SOURCE))
+ @$(call get, $(GLIBC_RESTRICTPATCH_URL))
+
+$(GLIBC_PPCNOFPU1PATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_PPCNOFPU1PATCH_SOURCE))
+ @$(call get, $(GLIBC_PPCNOFPU1PATCH_URL))
+
+$(GLIBC_PPCNOFPU2PATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_PPCNOFPU2PATCH_SOURCE))
+ @$(call get, $(GLIBC_PPCNOFPU2PATCH_URL))
+
+$(GLIBC_PPCNOFPU3PATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_PPCNOFPU3PATCH_SOURCE))
+ @$(call get, $(GLIBC_PPCNOFPU3PATCH_URL))
+
+$(GLIBC_THREADSIGPATCH_SOURCE):
+ @$(call targetinfo, $(GLIBC_THREADSIGPATCH_SOURCE))
+ @$(call get, $(GLIBC_THREADSIGPATCH_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+glibc_extract: $(STATEDIR)/glibc.extract
+
+glibc_extract_deps = $(STATEDIR)/glibc-base.extract
+ifeq (y, $(PTXCONF_GLIBC_PTHREADS))
+glibc_extract_deps += $(STATEDIR)/glibc-threads.extract
+endif
+
+$(STATEDIR)/glibc.extract: $(glibc_extract_deps)
+ @$(call targetinfo, glibc.extract)
+ touch $@
+
+$(STATEDIR)/glibc-base.extract: $(STATEDIR)/glibc.get
+ @$(call targetinfo, glibc-base.extract)
+ @$(call clean, $(GLIBC_DIR))
+
+ @$(call extract, $(GLIBC_SOURCE))
+
+ # fix some bugs...
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_PTXPATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_MKBPATCH_SOURCE)
+
+ifdef PTXCONF_GLIBC_2_2_5
+ ifdef PTXCONF_ARCH_CRIS
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_CRISPATCH_SOURCE)
+ endif
+
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_XDRPATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p0 < $(GLIBC_STRINGHPATCH_SOURCE)
+ cd $(GLIBC_DIR)/io && patch -p0 < $(GLIBC_TIMEOUTPATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_DNSPATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_SUNRPCPATCH_SOURCE)
+
+ ifdef PTXCONF_ARCH_X86
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_DIVDI3PATCH_SOURCE)
+ endif
+ ifdef PTXCONF_ARCH_PPC
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_DIVDI3PATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p0 < $(GLIBC_SRQTPATCH_SOURCE)
+ endif
+
+ ifdef PTXCONF_GCC_3_2_3
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_DIVBYZEROPATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_RESTRICTPATCH_SOURCE)
+ endif
+
+# FIXME: apply sparc & alpha patches
+
+ ifdef PTXCONF_OPT_PPC405
+ cd $(GLIBC_DIR) && mv sysdeps/powerpc/fclrexcpt.c sysdeps/powerpc/fpu/
+ cd $(GLIBC_DIR) && rm sysdeps/powerpc/memset.S
+
+ cd $(GLIBC_DIR) && patch -p0 < $(GLIBC_PPCNOFPU1PATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p0 < $(GLIBC_PPCNOFPU2PATCH_SOURCE)
+ cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_PPCNOFPU3PATCH_SOURCE)
+ endif
+endif # PTXCONF_GLIBC_2_2_5
+
+ # fix: sunrpc's makefile has the wrong magic to find cpp...
+ # FIXME: is this the right fix for other versions than 2.2.5?
+ cd $(GLIBC_DIR)/sunrpc && mkdir cpp && \
+ ln -sf $(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-cpp cpp/
+
+ # this is magically recreated if missing (necessary because
+ # of patch against configure.in)
+ rm -f $(GLIBC_DIR)/sysdeps/unix/sysv/linux/configure
+ touch $@
+
+$(STATEDIR)/glibc-threads.extract: $(STATEDIR)/glibc.get
+ @$(call targetinfo, glibc-threads.extract)
+ @$(call extract, $(GLIBC_THREADS_SOURCE), $(GLIBC_DIR))
+ cd $(GLIBC_DIR) && patch -p0 < $(GLIBC_THREADSIGPATCH_SOURCE)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+glibc_prepare: $(STATEDIR)/glibc.prepare
+
+#
+# arcitecture dependend configuration
+#
+GLIBC_AUTOCONF = --build=$(GNU_HOST)
+GLIBC_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
+GLIBC_AUTOCONF += --disable-sanity-checks
+GLIBC_PATH = PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(CROSS_PATH)
+GLIBC_ENV = $(CROSS_ENV)
+
+#
+# features
+#
+ifdef PTXCONF_GLIBC_FLOATINGPOINT
+ GLIBC_AUTOCONF+=--with-fp=yes
+else
+ GLIBC_AUTOCONF+=--with-fp=no
+endif
+ifdef PTXCONF_GLIBC_LIBIO
+ GLIBC_AUTOCONF+=--enable-libio
+endif
+ifdef PTXCONF_GLIBC_SHARED
+ GLIBC_AUTOCONF+=--enable-shared
+else
+ GLIBC_AUTOCONF+=--enable-shared=no
+endif
+ifdef PTXCONF_GLIBC_PROFILED
+ GLIBC_AUTOCONF+=--enable-profile=yes
+else
+ GLIBC_AUTOCONF+=--enable-profile=no
+endif
+ifdef PTXCONF_GLIBC_OMITFP
+ GLIBC_AUTOCONF+=--enable-omitfp
+endif
+ifdef PTXCONF_GLIBC_PTHREADS
+ GLIBC_AUTOCONF+=--enable-add-ons=linuxthreads
+endif
+
+
+#
+# dependencies
+#
+glibc_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/autoconf213.install \
+ $(STATEDIR)/glibc.extract
+
+$(STATEDIR)/glibc.prepare: $(glibc_prepare_deps)
+ @$(call targetinfo, glibc.prepare)
+ mkdir -p $(GLIBC_BUILDDIR)
+ cd $(GLIBC_BUILDDIR) && \
+ $(GLIBC_PATH) $(GLIBC_ENV) \
+ $(GLIBC_DIR)/configure $(PTXCONF_GNU_TARGET) \
+ $(GLIBC_AUTOCONF) \
+ --prefix=/usr \
+ --libexecdir=/usr/bin
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+glibc_compile: $(STATEDIR)/glibc.compile
+
+$(STATEDIR)/glibc.compile: $(STATEDIR)/glibc.prepare
+ @$(call targetinfo, glibc.compile)
+ cd $(GLIBC_BUILDDIR) && $(GLIBC_PATH) make
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+glibc_install: $(STATEDIR)/glibc.install
+
+$(STATEDIR)/glibc.install: $(STATEDIR)/glibc.compile
+ @$(call targetinfo, glibc.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+glibc_targetinstall: $(STATEDIR)/glibc.targetinstall
+
+$(STATEDIR)/glibc.targetinstall: $(STATEDIR)/glibc.compile
+ @$(call targetinfo, glibc.targetinstall)
+ # CAREFUL: don't never ever make install in ldso tree!!!
+ mkdir -p $(ROOTDIR)/lib
+
+ install $(GLIBC_BUILDDIR)/elf/ld.so $(ROOTDIR)/lib/ld-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/ld-$(GLIBC_VERSION).so
+ ln -sf ld-$(GLIBC_VERSION).so $(ROOTDIR)/lib/ld.so.1
+ ln -sf ld-$(GLIBC_VERSION).so $(ROOTDIR)/lib/ld-linux.so.2
+
+ install $(GLIBC_BUILDDIR)/libc.so $(ROOTDIR)/lib/libc-$(GLIBC_VERSION).so.6
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libc-$(GLIBC_VERSION).so.6
+ ln -sf libc-$(GLIBC_VERSION).so.6 $(ROOTDIR)/lib/libc.so.6
+
+ ifeq (y, $(PTXCONF_GLIBC_PTHREADS))
+ install $(GLIBC_BUILDDIR)/linuxthreads/libpthread.so $(ROOTDIR)/lib/libpthread-0.9.so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libpthread-0.9.so
+ ln -sf libpthread-0.9.so $(ROOTDIR)/lib/libpthread.so.0
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_THREAD_DB))
+ install $(GLIBC_BUILDDIR)/linuxthreads_db/libthread_db.so $(ROOTDIR)/lib/libthread_db.so.1
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libthread_db.so.1
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_DL))
+ install $(GLIBC_BUILDDIR)/dlfcn/libdl.so $(ROOTDIR)/lib/libdl-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libdl-$(GLIBC_VERSION).so
+ ln -sf libdl-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libdl.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_CRYPT))
+ install $(GLIBC_BUILDDIR)/crypt/libcrypt.so $(ROOTDIR)/lib/libcrypt-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libcrypt-$(GLIBC_VERSION).so
+ ln -sf libcrypt-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libcrypt.so.1
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_UTIL))
+ install $(GLIBC_BUILDDIR)/login/libutil.so $(ROOTDIR)/lib/libutil-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libutil-$(GLIBC_VERSION).so
+ ln -sf libutil-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libutil.so.1
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_LIBM))
+ install $(GLIBC_BUILDDIR)/math/libm.so $(ROOTDIR)/lib/libm-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libm-$(GLIBC_VERSION).so
+ ln -sf libm-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libm.so.6
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_DNS))
+ install $(GLIBC_BUILDDIR)/resolv/libnss_dns.so.2 $(ROOTDIR)/lib/libnss_dns-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_dns-$(GLIBC_VERSION).so
+ ln -sf libnss_dns-$(GLIBC_VERSION) $(ROOTDIR)/lib/libnss_dns.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_FILES))
+ install $(GLIBC_BUILDDIR)/nss/libnss_files.so.2 $(ROOTDIR)/lib/libnss_files-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_files-$(GLIBC_VERSION).so
+ ln -sf libnss_files-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnss_files.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_HESIOD))
+ install $(GLIBC_BUILDDIR)/hesiod/libnss_hesiod.so.2 $(ROOTDIR)/lib/libnss_hesiod-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_hesiod-$(GLIBC_VERSION).so
+ ln -sf libnss_hesiod-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnss_hesiod.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_NIS))
+ install $(GLIBC_BUILDDIR)/nis/libnss_nis.so.2 $(ROOTDIR)/lib/libnss_nis-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_nis-$(GLIBC_VERSION).so
+ ln -sf libnss_nis-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnss_nis.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_NISPLUS))
+ install $(GLIBC_BUILDDIR)/nis/libnss_nisplus.so.2 $(ROOTDIR)/lib/libnss_nisplus-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_nisplus-$(GLIBC_VERSION).so
+ ln -sf libnss_nisplus-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnss_nisplus.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSS_COMPAT))
+ install $(GLIBC_BUILDDIR)/nis/libnss_compat.so.2 $(ROOTDIR)/lib/libnss_compat-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnss_compat-$(GLIBC_VERSION).so
+ ln -sf libnss_compat-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnss_compat.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_RESOLV))
+ install $(GLIBC_BUILDDIR)/resolv/libresolv.so $(ROOTDIR)/lib/libresolv-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libresolv-$(GLIBC_VERSION).so
+ ln -sf libresolv.$(GLIBC_VERSION).so $(ROOTDIR)/lib/libresolv.so.2
+ endif
+
+ ifeq (y, $(PTXCONF_GLIBC_NSL))
+ install $(GLIBC_BUILDDIR)/nis/libnsl.so $(ROOTDIR)/lib/libnsl-$(GLIBC_VERSION).so
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libnsl-$(GLIBC_VERSION).so
+ ln -sf libnsl-$(GLIBC_VERSION).so $(ROOTDIR)/lib/libnsl.so.1
+ endif
+
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+glibc_clean:
+ -rm -rf $(STATEDIR)/xchain-glibc.extract
+ -rm -rf $(STATEDIR)/xchain-glibc.prepare
+ -rm -rf $(STATEDIR)/xchain-glibc.compile
+ -rm -rf $(STATEDIR)/glibc*
+ -rm -rf $(GLIBC_DIR)
+ -rm -rf $(GLIBC_BUILDDIR)
+ -rm -rf $(XCHAIN_GLIBC_BUILDDIR)
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/gmp.make b/rules/gmp.make
index 641668d00..f97220857 100644
--- a/rules/gmp.make
+++ b/rules/gmp.make
@@ -1,4 +1,5 @@
-# $Id: gmp.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: gmp.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -33,10 +34,11 @@ GMP_EXTRACT = gzip -dc
gmp_get: $(STATEDIR)/gmp.get
$(STATEDIR)/gmp.get: $(GMP_SOURCE)
+ @$(call targetinfo, gmp.get)
touch $@
$(GMP_SOURCE):
- @$(call targetinfo, gmp.get)
+ @$(call targetinfo, $(GMP_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(GMP_URL)
# ----------------------------------------------------------------------------
@@ -47,7 +49,7 @@ gmp_extract: $(STATEDIR)/gmp.extract
$(STATEDIR)/gmp.extract: $(STATEDIR)/gmp.get
@$(call targetinfo, gmp.extract)
- $(GMP_EXTRACT) $(GMP_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ $(GMP_EXTRACT) $(GMP_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/gmp3.make b/rules/gmp3.make
new file mode 100644
index 000000000..b02298447
--- /dev/null
+++ b/rules/gmp3.make
@@ -0,0 +1,114 @@
+# -*-makefile-*-
+# $Id: gmp3.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# Paths and names
+#
+GMP3_VERSION = 3.1.1
+GMP3 = gmp-$(GMP3_VERSION)
+GMP3_SUFFIX = tar.gz
+GMP3_URL = ftp://ftp.gnu.org/gnu/gmp/$(GMP3).$(GMP3_SUFFIX)
+GMP3_SOURCE = $(SRCDIR)/$(GMP3).$(GMP3_SUFFIX)
+GMP3_DIR = $(BUILDDIR)/$(GMP3)
+GMP3_EXTRACT = gzip -dc
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+gmp3_get: $(STATEDIR)/gmp3.get
+
+$(STATEDIR)/gmp3.get: $(GMP3_SOURCE)
+ @$(call targetinfo, gmp3.get)
+ touch $@
+
+$(GMP3_SOURCE):
+ @$(call targetinfo, $(GMP3_SOURCE))
+ @$(call get, $(GMP3_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+gmp3_extract: $(STATEDIR)/gmp3.extract
+
+$(STATEDIR)/gmp3.extract: $(STATEDIR)/gmp3.get
+ @$(call targetinfo, gmp3.extract)
+ @$(call extract, $(GMP3_SOURCE))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+gmp3_prepare: $(STATEDIR)/gmp3.prepare
+
+gmp3_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/gmp3.extract
+
+GMP3_PATH = PATH=$(CROSS_PATH)
+GMP3_ENV = $(CROSS_ENV)
+
+GMP3_AUTOCONF =
+GMP3_AUTOCONF += --build=$(GNU_HOST)
+GMP3_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
+GMP3_AUTOCONF += --prefix=$(CROSS_LIB_DIR)
+
+$(STATEDIR)/gmp3.prepare: $(gmp3_prepare_deps)
+ @$(call targetinfo, gmp3.prepare)
+ cd $(GMP3_DIR) && \
+ $(GMP3_PATH) $(GMP3_ENV) ./configure $(GMP3_AUTOCONF)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+gmp3_compile: $(STATEDIR)/gmp3.compile
+
+$(STATEDIR)/gmp3.compile: $(STATEDIR)/gmp3.prepare
+ @$(call targetinfo, gmp3.compile)
+ $(GMP3_PATH) make -C $(GMP3_DIR)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+gmp3_install: $(STATEDIR)/gmp3.install
+
+$(STATEDIR)/gmp3.install: $(STATEDIR)/gmp3.compile
+ @$(call targetinfo, gmp3.install)
+ $(GMP3_PATH) make -C $(GMP3_DIR) install
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+gmp3_targetinstall: $(STATEDIR)/gmp3.targetinstall
+
+$(STATEDIR)/gmp3.targetinstall: $(STATEDIR)/gmp3.install
+ @$(call targetinfo, gmp3.targetinstall)
+ mkdir -p $(ROOTDIR)/lib
+ cp -a $(CROSS_LIB_DIR)/lib/libgmp.so* $(ROOTDIR)/lib
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libgmp.so*
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+gmp3_clean:
+ rm -rf $(STATEDIR)/gmp3.*
+ rm -rf $(GMP3_DIR)
+
+# vim: syntax=make
diff --git a/rules/grub.make b/rules/grub.make
index a31dcfd0a..f5c40c2aa 100644
--- a/rules/grub.make
+++ b/rules/grub.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: grub.make,v 1.5 2003/07/04 13:58:13 bsp Exp $
+# $Id: grub.make,v 1.6 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -22,7 +22,6 @@ GRUB = grub-0.93
GRUB_URL = ftp://alpha.gnu.org/gnu/grub/$(GRUB).tar.gz
GRUB_SOURCE = $(SRCDIR)/$(GRUB).tar.gz
GRUB_DIR = $(BUILDDIR)/$(GRUB)
-GRUB_EXTRACT = gzip -dc
# ----------------------------------------------------------------------------
# Get
@@ -31,11 +30,12 @@ GRUB_EXTRACT = gzip -dc
grub_get: $(STATEDIR)/grub.get
$(STATEDIR)/grub.get: $(GRUB_SOURCE)
+ @$(call targetinfo, grub.get)
touch $@
$(GRUB_SOURCE):
- @$(call targetinfo, grub.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GRUB_URL)
+ @$(call targetinfo, $(GRUB_SOURCE))
+ @$(call get, $(GRUB_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -45,7 +45,8 @@ grub_extract: $(STATEDIR)/grub.extract
$(STATEDIR)/grub.extract: $(STATEDIR)/grub.get
@$(call targetinfo, grub.extract)
- $(GRUB_EXTRACT) $(GRUB_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(GRUB_DIR))
+ @$(call extract, $(GRUB_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -54,7 +55,14 @@ $(STATEDIR)/grub.extract: $(STATEDIR)/grub.get
grub_prepare: $(STATEDIR)/grub.prepare
-GRUB_AUTOCONF = --prefix=$(PTXCONF_PREFIX)
+GRUB_PATH = PATH=$(CROSS_PATH)
+GRUB_ENV = $(CROSS_ENV)
+
+GRUB_AUTOCONF = --build=$(GNU_HOST)
+GRUB_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
+GRUB_AUTOCONF += --target=$(PTXCONF_GNU_TARGET)
+
+GRUB_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
ifeq (y, $(PTXCONF_GRUB_FFS))
GRUB_AUTOCONF += --enable-ffs
else
@@ -95,11 +103,15 @@ GRUB_AUTOCONF += --enable-cs89x0
else
GRUB_AUTOCONF += --disable-cs89x0
endif
-GRUB_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
-$(STATEDIR)/grub.prepare: $(STATEDIR)/grub.extract $(STATEDIR)/glibc.install
+grub_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/grub.extract
+
+$(STATEDIR)/grub.prepare: $(grub_prepare_deps)
@$(call targetinfo, grub.prepare)
- cd $(GRUB_DIR) && CC=$(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-gcc ./configure $(GRUB_AUTOCONF)
+ cd $(GRUB_DIR) && \
+ $(GRUB_PATH) $(GRUB_ENV) ./configure $(GRUB_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -108,9 +120,9 @@ $(STATEDIR)/grub.prepare: $(STATEDIR)/grub.extract $(STATEDIR)/glibc.install
grub_compile: $(STATEDIR)/grub.compile
-$(STATEDIR)/grub.compile: $(STATEDIR)/grub.prepare $(STATEDIR)/xchain-gccstage2.install
+$(STATEDIR)/grub.compile: $(STATEDIR)/grub.prepare
@$(call targetinfo, grub.compile)
- make -C $(GRUB_DIR)
+ $(GRUB_PATH) make -C $(GRUB_DIR)
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/kaffe.make b/rules/kaffe.make
new file mode 100644
index 000000000..23c769762
--- /dev/null
+++ b/rules/kaffe.make
@@ -0,0 +1,342 @@
+# -*-makefile-*-
+# $Id: kaffe.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de> for
+# GYRO net GmbH <info@gyro-net.de>, Hannover, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_KAFFE
+PACKAGES += kaffe
+endif
+
+#
+# Paths and names
+#
+KAFFE_VERSION = 1.1.0
+KAFFE = kaffe-$(KAFFE_VERSION)
+KAFFE_SUFFIX = tar.gz
+KAFFE_URL = http://www.kaffe.org/ftp/pub/kaffe/v1.1.x-development/$(KAFFE).$(KAFFE_SUFFIX)
+KAFFE_SOURCE = $(SRCDIR)/$(KAFFE).$(KAFFE_SUFFIX)
+KAFFE_DIR = $(BUILDDIR)/$(KAFFE)
+KAFFE_BUILDDIR = $(BUILDDIR)/$(KAFFE)-build
+
+KAFFE_KANGAROO_VERSION = 0.0.3-user
+KAFFE_KANGAROO = kangaroo-$(KAFFE_KANGAROO_VERSION)
+KAFFE_KANGAROO_SUFFIX = tar.gz
+KAFFE_KANGAROO_URL = http://playground.gyro-net.de/kangaroo/$(KAFFE_KANGAROO).$(KAFFE_KANGAROO_SUFFIX)
+KAFFE_KANGAROO_SOURCE = $(SRCDIR)/$(KAFFE_KANGAROO).$(KAFFE_KANGAROO_SUFFIX)
+KAFFE_KANGAROO_DIR = $(BUILDDIR)/$(KAFFE_KANGAROO)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+kaffe_get: $(STATEDIR)/kaffe.get
+
+kaffe_get_deps = $(KAFFE_SOURCE)
+ifdef PTXCONF_KAFFE_API_CLDC
+kaffe_get_deps += $(KAFFE_KANGAROO_SOURCE)
+endif
+
+$(STATEDIR)/kaffe.get: $(kaffe_get_deps)
+ @$(call targetinfo, kaffe.get)
+ touch $@
+
+$(KAFFE_SOURCE):
+ @$(call targetinfo, $(KAFFE_SOURCE))
+ @$(call get, $(KAFFE_URL))
+
+$(KAFFE_KANGAROO_SOURCE):
+ @$(call targetinfo, $(KAFFE_KANGAROO_SOURCE))
+ @$(call get, $(KAFFE_KANGAROO_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+kaffe_extract: $(STATEDIR)/kaffe.extract
+
+kaffe_extract_deps = $(STATEDIR)/kaffe-base.extract
+ifdef PTXCONF_KAFFE_API_CLDC
+kaffe_extract_deps += $(STATEDIR)/kaffe-kangaroo.extract
+endif
+
+$(STATEDIR)/kaffe.extract: $(kaffe_extract_deps)
+ @$(call targetinfo, kaffe.extract)
+ touch $@
+
+$(STATEDIR)/kaffe-base.extract: $(STATEDIR)/kaffe.get
+ @$(call targetinfo, kaffe-base.extract)
+ @$(call clean, $(KAFFE_DIR))
+ @$(call extract, $(KAFFE_SOURCE))
+ touch $@
+
+$(STATEDIR)/kaffe-kangaroo.extract: $(STATEDIR)/kaffe.get
+ @$(call targetinfo, kaffe-kangaroo.extract)
+ @$(call clean, $(KAFFE_KANGAROO_DIR))
+ @$(call extract, $(KAFFE_KANGAROO_SOURCE))
+ cp -a $(BUILDDIR)/$(KAFFE_KANGAROO)/* $(BUILDDIR)/$(KAFFE)
+ rm -rf $(BUILDDIR)/$(KAFFE_KANGAROO)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+kaffe_prepare: $(STATEDIR)/kaffe.prepare
+
+#
+# dependencies
+#
+kaffe_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/xchain-kaffe.install \
+ $(STATEDIR)/kaffe.extract
+
+ifndef PTXCONF_KAFFE_FEAT_JAVAMATH
+kaffe_prepare_deps += $(STATEDIR)/gmp3.install
+endif
+ifdef PTXCONF_KAFFE_FEAT_CLDC_GMP
+kaffe_prepare_deps += $(STATEDIR)/gmp3.install
+endif
+
+KAFFE_PATH = PATH=$(CROSS_PATH)
+KAFFE_ENV = $(CROSS_ENV) KAFFEH=$(PTXCONF_PREFIX)/bin/kaffeh
+
+#
+# autoconf
+#
+KAFFE_AUTOCONF = --prefix=/usr
+KAFFE_AUTOCONF += --build=$(GNU_HOST)
+KAFFE_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
+
+ifdef PTXCONF_KAFFE_ENG_INTRP
+KAFFE_AUTOCONF += --with-engine=intrp
+endif
+ifdef PTXCONF_KAFFE_ENG_JIT
+KAFFE_AUTOCONF += --with-engine=jit
+endif
+ifdef PTXCONF_KAFFE_ENG_JIT3
+KAFFE_AUTOCONF += --with-engine=jit3
+endif
+
+ifdef PTXCONF_KAFFE_THREAD_P
+KAFFE_AUTOCONF += --with-threads=unix-pthreads
+endif
+ifdef PTXCONF_KAFFE_THREAD_J
+KAFFE_AUTOCONF += --with-threads=unix-jthreads
+endif
+
+ifdef PTXCONF_KAFFE_JIKES
+KAFFE_AUTOCONF += --with-jikes=$(PTXCONF_KAFFE_JIKES)
+endif
+
+ifdef PTXCONF_KAFFE_API_SE
+KAFFE_AUTOCONF += --with-api=se
+endif
+ifdef PTXCONF_KAFFE_API_CLDC
+KAFFE_AUTOCONF += --with-api=cldc
+endif
+
+ifdef PTXCONF_KAFFE_DEB_DEV
+KAFFE_AUTOCONF += --enable-debug
+else
+KAFFE_AUTOCONF += --disable-debug
+endif
+ifdef PTXCONF_KAFFE_DEB_X
+KAFFE_AUTOCONF += --enable-xdebugging
+else
+KAFFE_AUTOCONF += --disable-xdebugging
+endif
+ifdef PTXCONF_KAFFE_DEB_PROFILING
+KAFFE_AUTOCONF += --with-profiling
+else
+KAFFE_AUTOCONF += --without--profiling
+endif
+ifdef PTXCONF_KAFFE_DEB_XPROFILING
+KAFFE_AUTOCONF += --enable-xprofiling
+else
+KAFFE_AUTOCONF += --disable-xprofiling
+endif
+ifdef PTXCONF_KAFFE_DEB_STATS
+KAFFE_AUTOCONF += --with-stats
+else
+KAFFE_AUTOCONF += --without-stats
+endif
+
+ifdef PTXCONF_KAFFE_FEAT_GCJ
+KAFFE_AUTOCONF += --enable-gcj
+else
+KAFFE_AUTOCONF += --disable-gcj
+endif
+
+ifdef PTXCONF_KAFFE_AWT_NO
+KAFFE_AUTOCONF += --without-x --with-awt=no
+endif
+ifdef PTXCONF_KAFFE_AWT_X
+KAFFE_AUTOCONF += --with-awt=X
+endif
+ifdef PTXCONF_KAFFE_AWT_QT
+KAFFE_AUTOCONF += --with-awt=qt
+endif
+
+ifdef PTXCONF_KAFFE_FEAT_FEEDBACK
+KAFFE_AUTOCONF += --enable-feedback
+else
+KAFFE_AUTOCONF += --disable-feedback
+endif
+ifdef PTXCONF_KAFFE_FEAT_JAVAMATH
+KAFFE_AUTOCONF += --enable-pure-java-math
+else
+KAFFE_AUTOCONF += --disable-pure-java-math
+endif
+
+ifdef PTXCONF_KAFFE_FEAT_DISABLE_SOUND
+KAFFE_AUTOCONF += --disable-sound
+endif
+ifdef PTXCONF_KAFFE_FEAT_DISABLE_ALSA
+KAFFE_AUTOCONF += --without-alsa
+endif
+ifdef PTXCONF_KAFFE_FEAT_DISABLE_ESD
+KAFFE_AUTOCONF += --without-esd
+endif
+ifdef PTXCONF_KAFFE_FEAT_DISABLE_SUNCOMPAT
+KAFFE_AUTOCONF += --without-suncompat
+endif
+
+ifdef PTXCONF_KAFFE_FEAT_CLDC_GMP
+KAFFE_AUTOCONF += --enable-cldc-bigint
+endif
+
+ifdef PTXCONF_KAFFE_LINK_BIN
+KAFFE_AUTOCONF += --with-staticbin
+endif
+ifdef PTXCONF_KAFFE_LINK_VM
+KAFFE_AUTOCONF += --with-staticvm
+endif
+ifdef PTXCONF_KAFFE_LINK_LIB
+KAFFE_AUTOCONF += --with-staticlib
+endif
+
+$(STATEDIR)/kaffe.prepare: $(kaffe_prepare_deps)
+ @$(call targetinfo, kaffe.prepare)
+ @$(call clean, $(KAFFE_BUILDDIR))
+ mkdir -p $(KAFFE_BUILDDIR)
+ cd $(KAFFE_BUILDDIR) && \
+ $(KAFFE_PATH) $(KAFFE_ENV) \
+ $(KAFFE_DIR)/configure $(KAFFE_AUTOCONF)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+kaffe_compile: $(STATEDIR)/kaffe.compile
+
+kaffe_compile_deps = $(STATEDIR)/kaffe.prepare
+
+ifdef KAFFE_JIKES_WO_DEBUG
+KAFFE_MAKEVARS = JAVAC_FLAGS="-g:none -verbose"
+else
+KAFFE_MAKEVARS = JAVAC_FLAGS="-verbose"
+endif
+
+$(STATEDIR)/kaffe.compile: $(kaffe_compile_deps)
+ @$(call targetinfo, kaffe.compile)
+ $(KAFFE_PATH) make -C $(KAFFE_BUILDDIR) $(KAFFE_MAKEVARS)
+
+ifdef PTXCONF_KAFFE_LINK_GMP
+#
+# what we here do is:
+# - in the .la file is a list of libs this lib depends on
+# - during linking this lib against the kaffe-bin, it is passed to the linker
+# - we replace the shared library (-lgmp) with the static one (/path/to/libgmp.a)
+#
+ perl -i -p -e 's,-lgmp,$(CROSS_LIB_DIR)/lib/libgmp.a,' \
+ $(KAFFE_BUILDDIR)/libraries/clib-cldc/native/libnative.la
+ $(KAFFE_PATH) make -C $(KAFFE_BUILDDIR) $(KAFFE_MAKEVARS)
+endif
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+kaffe_install: $(STATEDIR)/kaffe.install
+
+$(STATEDIR)/kaffe.install: $(STATEDIR)/kaffe.compile
+ @$(call targetinfo, kaffe.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+kaffe_targetinstall: $(STATEDIR)/kaffe.targetinstall
+
+kaffe_targetinstall_deps = $(STATEDIR)/kaffe.compile
+
+ifdef PTXCONF_KAFFE_TARGETINSTALL_GMP
+kaffe_targetinstall_deps += $(STATEDIR)/gmp3.targetinstall
+endif
+
+$(STATEDIR)/kaffe.targetinstall: $(kaffe_targetinstall_deps)
+ @$(call targetinfo, kaffe.targetinstall)
+ @$(call clean, $(KAFFE_BUILDDIR)-tmp)
+ mkdir -p $(ROOTDIR)/usr/jre/bin
+ mkdir -p $(ROOTDIR)/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)
+
+ $(KAFFE_PATH) make -C $(KAFFE_BUILDDIR) $(KAFFE_MAKEVARS) \
+ install DESTDIR=$(KAFFE_BUILDDIR)-tmp
+
+ install $(KAFFE_BUILDDIR)-tmp/usr/jre/bin/kaffe-bin \
+ $(ROOTDIR)/usr/jre/bin/kaffe-bin
+ $(CROSS_STRIP) -R .note -R .comment $(ROOTDIR)/usr/jre/bin/kaffe-bin
+
+ install $(KAFFE_BUILDDIR)-tmp/usr/jre/bin/kaffe \
+ $(ROOTDIR)/usr/jre/bin/kaffe
+
+ rm -rf $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/libkaffevm.la
+ rm -rf $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/*.a
+
+ifdef PTXCONF_KAFFE_LINK_VM
+ rm -rf $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/libkaffevm*
+endif
+
+ifdef PTXCONF_KAFFE_LINK_LIB
+ rm -rf $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/libkaffevm*
+endif
+
+ifdef PTXCONF_KAFFE_LINK_BIN
+ rm -rf $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/libkaffevm*
+endif
+
+ cp -av $(KAFFE_BUILDDIR)-tmp/usr/jre/lib/* $(ROOTDIR)/usr/jre/lib/
+ $(CROSS_STRIP) -R .note -R .comment \
+ $(ROOTDIR)/usr/jre/lib/$(PTXCONF_ARCH_USERSPACE)/*.so || true
+
+ rm -rf $(KAFFE_BUILDDIR)-tmp
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+kaffe_clean:
+ rm -rf $(STATEDIR)/xchain-kaffe.extract
+ rm -rf $(STATEDIR)/xchain-kaffe.prepare
+ rm -rf $(STATEDIR)/xchain-kaffe.compile
+ rm -rf $(STATEDIR)/kaffe*
+ rm -rf $(KAFFE_DIR)
+ rm -rf $(KAFFE_BUILDDIR)
+ rm -rf $(XCHAIN_KAFFE_BUILDDIR)
+ rm -rf $(KAFFE_KANGAROO_DIR)
+
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/kernel.make b/rules/kernel.make
new file mode 100644
index 000000000..120ad040d
--- /dev/null
+++ b/rules/kernel.make
@@ -0,0 +1,431 @@
+# -*-makefile-*-
+# $Id: kernel.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# There are two "groups" of targets here: that ones starting with xchain- are
+# only used for the cross chain. The "normal" targets are used for building the
+# runtime kernel.
+#
+
+#
+# We provide this package
+#
+ifndef PTXCONF_DONT_COMPILE_KERNEL
+PACKAGES += kernel
+endif
+
+#
+# Paths and names
+#
+# FIXME: make extraversion configurable!
+#
+ifeq (y,$(PTXCONF_KERNEL_2_4_18))
+KERNEL = linux-2.4.18
+KERNEL_URL = ftp://ftp.kernel.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
+KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
+KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
+KERNEL_EXTRACT = bzip2 -dc
+
+KERNEL_RMKPATCH = patch-2.4.18-rmk7
+KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
+
+KERNEL_PXAPATCH = diff-2.4.18-rmk7-pxa3
+KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_EXTRACT = gzip -dc
+
+KERNEL_PTXPATCH = patch-2.4.18-rmk7-ptx3
+KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/dnp/patch-2.4.18-rmk7-ptx3
+KERNEL_PTXPATCH_EXTRACT = cat
+
+ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
+KERNEL_RTAIPATCH = patch-2.4.18-allsoft
+endif
+ifeq (y, $(PTXCONF_RTAI_RTHAL))
+KERNEL_RTAIPATCH = patch-2.4.18-rthal5g
+endif
+KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
+endif
+
+ifeq (y,$(PTXCONF_KERNEL_2_4_19))
+KERNEL = linux-2.4.19
+KERNEL_URL = ftp://ftp.rfc822.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
+KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
+KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
+KERNEL_EXTRACT = bzip2 -dc
+
+KERNEL_RMKPATCH = patch-2.4.19-rmk7
+KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
+
+KERNEL_PXAPATCH = diff-2.4.19-rmk7-pxa2
+KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_EXTRACT = gzip -dc
+
+KERNEL_MTDPATCH = linux-2.4.19-rmk7-pxa2-mtd20030424.diff
+KERNEL_MTDPATCH_SOURCE = $(SRCDIR)/$(KERNEL_MTDPATCH).bz2
+KERNEL_MTDPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_MTDPATCH).bz2
+KERNEL_MTDPATCH_DIR = $(BUILDDIR)/$(KERNEL)
+KERNEL_MTDPATCH_EXTRACT = bzip2 -cd
+
+KERNEL_PTXPATCH = linux-2.4.19-rmk7-pxa2-ptx4.diff
+KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_EXTRACT = cat
+
+ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
+KERNEL_RTAIPATCH = patch-2.4.19-allsoft
+endif
+ifeq (y, $(PTXCONF_RTAI_RTHAL))
+KERNEL_RTAIPATCH = patch-2.4.19-rthal5g
+endif
+KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
+endif
+
+ifeq (y,$(PTXCONF_KERNEL_2_4_20))
+KERNEL = linux-2.4.20
+KERNEL_URL = ftp://ftp.rfc822.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
+KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
+KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
+KERNEL_EXTRACT = bzip2 -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_RMKPATCH = patch-2.4.19-rmk4
+KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_PXAPATCH = diff-2.4.19-rmk4-pxa1
+KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_SOURCE = $(SRCDIR22)/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_EXTRACT = gzip -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_PTXPATCH = linux-2.4.19-rmk4-pxa1-ptx10.diff
+KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_EXTRACT = cat
+
+ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
+KERNEL_RTAIPATCH = patch-2.4.20-allsoft
+endif
+ifeq (y, $(PTXCONF_RTAI_RTHAL))
+KERNEL_RTAIPATCH = patch-2.4.20-rthal5g
+endif
+KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
+endif
+
+ifeq (y,$(PTXCONF_KERNEL_2_4_21))
+KERNEL = linux-2.4.21
+KERNEL_URL = ftp://ftp.rfc822.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
+KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
+KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
+KERNEL_EXTRACT = bzip2 -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_RMKPATCH = patch-2.4.19-rmk4
+KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
+KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_PXAPATCH = diff-2.4.19-rmk4-pxa1
+KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PXAPATCH).gz
+KERNEL_PXAPATCH_EXTRACT = gzip -dc
+
+#FIXME: find right patch // not yet available
+KERNEL_PTXPATCH = linux-2.4.19-rmk4-pxa1-ptx10.diff
+KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_PTXPATCH)
+KERNEL_PTXPATCH_EXTRACT = cat
+
+KERNEL_UCLINUXPATCH = uClinux-2.4.21-uc0.diff.gz
+KERNEL_UCLINUXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_UCLINUXPATCH)
+KERNEL_UCLINUXPATCH_URL = http://www.uclinux.org/pub/uClinux/uClinux-2.4.x/$(KERNEL_UCLINUXPATCH)
+KERNEL_UCLINUXPATCH_EXTRACT = zcat
+
+ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
+KERNEL_RTAIPATCH = patch-2.4.21-allsoft
+endif
+ifeq (y, $(PTXCONF_RTAI_RTHAL))
+KERNEL_RTAIPATCH = patch-2.4.21-rthal5g
+endif
+KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
+endif
+
+ifeq (y, $(PTXCONF_KERNEL_IMAGE_Z))
+KERNEL_TARGET = zImage
+KERNEL_TARGET_PATH = $(KERNEL_DIR)/arch/$(PTXCONF_ARCH)/boot/zImage
+endif
+ifeq (y, $(PTXCONF_KERNEL_IMAGE_BZ))
+KERNEL_TARGET = bzImage
+KERNEL_TARGET_PATH = $(KERNEL_DIR)/arch/$(PTXCONF_ARCH)/boot/bzImage
+endif
+ifeq (y, $(PTXCONF_KERNEL_IMAGE_U))
+KERNEL_TARGET = uImage
+KERNEL_TARGET_PATH = $(KERNEL_DIR)/uImage
+endif
+ifeq (y, $(PTXCONF_KERNEL_IMAGE_VMLINUX))
+KERNEL_TARGET = vmlinux
+KERNEL_TARGET_PATH = $(KERNEL_DIR)/vmlinux
+endif
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+kernel_get: $(STATEDIR)/kernel.get
+
+kernel_get_deps = $(KERNEL_SOURCE)
+
+ifdef PTXCONF_ARCH_NOMMU
+kernel_get_deps += $(KERNEL_UCLINUXPATCH_SOURCE)
+endif
+ifdef PTXCONF_ARCH_ARM
+kernel_get_deps += $(KERNEL_RMKPATCH_SOURCE)
+endif
+ifdef PTXCONF_KERNEL_XSCALE
+kernel_get_deps += $(KERNEL_PXAPATCH_SOURCE)
+endif
+ifdef PTXCONF_KERNEL_XSCALE_PTX
+kernel_get_deps += $(KERNEL_MTDPATCH_SOURCE)
+kernel_get_deps += $(KERNEL_PTXPATCH_SOURCE)
+endif
+
+$(STATEDIR)/kernel.get: $(kernel_get_deps)
+ @$(call targetinfo, kernel.get)
+ touch $@
+
+$(KERNEL_SOURCE):
+ @$(call targetinfo, $(KERNEL_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_URL)
+
+$(KERNEL_RMKPATCH_SOURCE):
+ @$(call targetinfo, $(KERNEL_RMKPATCH_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_RMKPATCH_URL)
+
+$(KERNEL_PXAPATCH_SOURCE):
+ @$(call targetinfo, $(KERNEL_PXAPATCH_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_PXAPATCH_URL)
+
+$(KERNEL_MTDPATCH_SOURCE):
+ @$(call targetinfo, $(KERNEL_MTDPATCH_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_MTDPATCH_URL)
+
+$(KERNEL_PTXPATCH_SOURCE):
+ @$(call targetinfo, $(KERNEL_PTXPATCH_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_PTXPATCH_URL)
+
+$(KERNEL_UCLINUXPATCH_SOURCE):
+ @$(call targetinfo, $(KERNEL_UCLINUXPATCH_SOURCE))
+ @$(call get, $(KERNEL_UCLINUXPATCH_URL)
+
+#
+# RTAI patches are included in the normal RTAI packet
+#
+rtai-patches_get: $(STATEDIR)/rtai-patches.get
+
+$(STATEDIR)/rtai-patches.get: $(RTAI_SOURCE)
+ @$(call targetinfo, rtai-patches.get)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+kernel_extract: $(STATEDIR)/kernel.extract
+
+kernel_extract_deps = $(STATEDIR)/kernel.get
+ifeq (y, $(PTXCONF_RTAI))
+kernel_extract_deps += $(STATEDIR)/rtai-patches.extract
+endif
+ifeq (y, $(PTXCONF_KERNEL_MTD))
+kernel_extract_deps += $(STATEDIR)/mtd.extract
+endif
+
+$(STATEDIR)/kernel.extract: $(kernel_extract_deps)
+ @$(call targetinfo, kernel.extract)
+ @$(call clean, $(KERNEL_DIR))
+ @$(call extract, $(KERNEL_SOURCE))
+# #
+# # kernels before 2.4.19 extract to "linux" instead of "linux-version"
+# #
+ ifeq (y,$(PTXCONF_KERNEL_2_4_18))
+ cd $(BUILDDIR) && mv linux $(KERNEL_DIR)
+ endif
+# #
+# # ARM patch
+# #
+ ifeq (y,$(PTXCONF_ARCH_ARM))
+ cd $(KERNEL_DIR) && \
+ $(KERNEL_RMKPATCH_EXTRACT) $(KERNEL_RMKPATCH_SOURCE) | \
+ patch -p1
+ endif
+# #
+# # XSCALE patch
+# #
+ ifeq (y, $(PTXCONF_KERNEL_XSCALE))
+ cd $(KERNEL_DIR) && \
+ $(KERNEL_PXAPATCH_EXTRACT) $(KERNEL_PXAPATCH_SOURCE) | \
+ patch -p1
+ endif
+# #
+# # MTD patch
+# #
+ ifeq (y, $(PTXCONF_KERNEL_MTD))
+ cd $(KERNEL_DIR) && \
+ $(KERNEL_MTDPATCH_EXTRACT) $(KERNEL_MTDPATCH_SOURCE) | \
+ patch -p1
+ endif
+# #
+# # XSCALE_PTX patch
+# #
+ ifeq (y, $(PTXCONF_KERNEL_XSCALE_PTX))
+ cd $(KERNEL_DIR) && \
+ $(KERNEL_PTXPATCH_EXTRACT) $(KERNEL_PTXPATCH_SOURCE) | \
+ patch -p1
+ endif
+# #
+# # patch for mmu-less architectures
+# #
+ ifdef PTXCONF_ARCH_NOMMU
+ cd $(KERNEL_DIR) && \
+ $(KERNEL_UCLINUXPATCH_EXTRACT) $(KERNEL_UCLINUXPATCH_SOURCE) | \
+ patch -p1 || true
+ endif
+# #
+# # patches for all architectures
+# #
+ ifeq (y, $(PTXCONF_RTAI))
+ cd $(KERNEL_DIR) && \
+ patch -p1 < $(KERNEL_RTAIPATCH_DIR)/$(RTAI)/patches/$(KERNEL_RTAIPATCH)
+ endif
+ touch $@
+
+#
+# RTAI patch
+#
+
+rtai-patches_extract: $(STATEDIR)/rtai-patches.extract
+
+$(STATEDIR)/rtai-patches.extract: $(STATEDIR)/rtai-patches.get
+ @$(call targetinfo, rtai-patches.extract)
+# # remove old rtaipatch directory
+ rm -fr $(KERNEL_RTAIPATCH_DIR)
+ install -d $(KERNEL_RTAIPATCH_DIR)
+# # extract only the patches directory
+ cd $(KERNEL_RTAIPATCH_DIR) && \
+ tar zxvf $(RTAI_SOURCE) $(RTAI)/patches
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+kernel_prepare: $(STATEDIR)/kernel.prepare
+
+kernel_prepare_deps = $(STATEDIR)/kernel.extract
+ifdef PTXCONF_RTAI
+kernel_prepare_deps += $(STATEDIR)/rtai-patches.extract
+endif
+ifdef PTXCONF_BUILD_CROSSCHAIN
+kernel_prepare_deps += $(STATEDIR)/xchain-gccstage2.install
+endif
+
+KERNEL_PATH = PATH=$(CROSS_PATH)
+KERNEL_MAKEVARS = ARCH=$(PTXCONF_ARCH) CROSS_COMPILE=$(PTXCONF_GNU_TARGET)- HOSTCC=$(HOSTCC)
+
+$(STATEDIR)/kernel.prepare: $(kernel_prepare_deps)
+ @$(call targetinfo, kernel.prepare)
+
+ test -f $(TOPDIR)/config/kernel/$(PTXCONF_KERNEL_CONFIG) && \
+ install -m 644 $(TOPDIR)/config/kernel/$(PTXCONF_KERNEL_CONFIG) \
+ $(KERNEL_DIR)/.config
+
+ $(KERNEL_PATH) make -C $(KERNEL_DIR) $(KERNEL_MAKEVARS) \
+ oldconfig
+ $(KERNEL_PATH) make -C $(KERNEL_DIR) $(KERNEL_MAKEVARS) \
+ dep
+
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+kernel_compile: $(STATEDIR)/kernel.compile
+
+kernel_compile_deps = $(STATEDIR)/kernel.prepare
+ifdef PTXCONF_KERNEL_IMAGE_U
+kernel_compile_deps += $(STATEDIR)/umkimage.install
+endif
+
+$(STATEDIR)/kernel.compile: $(kernel_compile_deps)
+ @$(call targetinfo, kernel.compile)
+ $(KERNEL_PATH) make -C $(KERNEL_DIR) $(KERNEL_MAKEVARS) \
+ $(KERNEL_TARGET) modules
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+kernel_install: $(STATEDIR)/kernel.install
+
+$(STATEDIR)/kernel.install: $(STATEDIR)/kernel.compile
+ @$(call targetinfo, kernel.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+kernel_targetinstall: $(STATEDIR)/kernel.targetinstall
+
+$(STATEDIR)/kernel.targetinstall: $(STATEDIR)/kernel.install
+ @$(call targetinfo, kernel.targetinstall)
+ ifeq (y,$(PTXCONF_KERNEL_INSTALL))
+ mkdir -p $(ROOTDIR)/boot
+ install $(KERNEL_TARGET_PATH) $(ROOTDIR)/boot
+ $(KERNEL_PATH) make -C $(KERNEL_DIR) $(KERNEL_MAKEVARS) \
+ modules_install INSTALL_MOD_PATH=$(ROOTDIR)
+ endif # PTXCONF_KERNEL_INSTALL
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+kernel_clean: rtai-patches_clean
+ rm -rf $(STATEDIR)/kernel.* $(KERNEL_DIR)
+
+rtai-patches_clean:
+ rm -rf $(STATEDIR)/rtai-patches.* $(KERNEL_RTAIPATCH_DIR)
+
+kernel_menuconfig: $(STATEDIR)/kernel.extract
+ if test -f $(TOPDIR)/config/kernel/$(PTXCONF_KERNEL_CONFIG) ; then \
+ install -m 644 $(TOPDIR)/config/kernel/$(PTXCONF_KERNEL_CONFIG) \
+ $(KERNEL_DIR)/.config ; \
+ fi
+
+ $(KERNEL_PATH) make -C $(KERNEL_DIR) $(KERNEL_MAKEVARS) \
+ menuconfig
+
+ install -m 644 $(KERNEL_DIR)/.config \
+ $(TOPDIR)/config/kernel/$(PTXCONF_KERNEL_CONFIG) ; \
+ rm $(STATEDIR)/kernel.compile || true
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/ksymoops.make b/rules/ksymoops.make
index 6419bbb31..9b54bdc29 100644
--- a/rules/ksymoops.make
+++ b/rules/ksymoops.make
@@ -1,4 +1,5 @@
-# $Id: ksymoops.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: ksymoops.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ KSYMOOPS_EXTRACT = bzip2 -dc
ksymoops_get: $(STATEDIR)/ksymoops.get
$(STATEDIR)/ksymoops.get: $(KSYMOOPS_SOURCE)
+ @$(call targetinfo, ksymoops.get)
touch $@
$(KSYMOOPS_SOURCE):
- @$(call targetinfo, ksymoops.get)
+ @$(call targetinfo, $(KSYMOOPS_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(KSYMOOPS_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/liboop.make b/rules/liboop.make
index 46435f65a..e7f729927 100644
--- a/rules/liboop.make
+++ b/rules/liboop.make
@@ -1,4 +1,5 @@
-# $Id: liboop.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: liboop.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ LIBOOP_EXTRACT = gzip -dc
liboop_get: $(STATEDIR)/liboop.get
$(STATEDIR)/liboop.get: $(LIBOOP_SOURCE)
+ @$(call targetinfo, liboop.get)
touch $@
$(LIBOOP_SOURCE):
- @$(call targetinfo, liboop.get)
+ @$(call targetinfo, $(LIBOOP_SOURCES))
wget -P $(SRCDIR) $(PASSIVEFTP) $(LIBOOP_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/lilo.make b/rules/lilo.make
new file mode 100644
index 000000000..4baf8de74
--- /dev/null
+++ b/rules/lilo.make
@@ -0,0 +1,113 @@
+# -*-makefile-*-
+# $Id: lilo.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_LILO
+PACKAGES += lilo
+endif
+
+#
+# Paths and names
+#
+LILO = lilo-22.5.4
+LILO_URL = http://home.san.rr.com/johninsd/pub/linux/lilo/$(LILO).tar.gz
+LILO_SOURCE = $(SRCDIR)/$(LILO).tar.gz
+LILO_DIR = $(BUILDDIR)/$(LILO)
+LILO_EXTRACT = gzip -dc
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+lilo_get: $(STATEDIR)/lilo.get
+
+lilo_get_deps = $(LILO_SOURCE)
+
+$(STATEDIR)/lilo.get: $(lilo_get_deps)
+ @$(call targetinfo, lilo.get)
+ touch $@
+
+$(LILO_SOURCE):
+ @$(call targetinfo, $(LILO_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(LILO_URL)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+lilo_extract: $(STATEDIR)/lilo.extract
+
+$(STATEDIR)/lilo.extract: $(STATEDIR)/lilo.get
+ @$(call targetinfo, lilo.extract)
+ $(LILO_EXTRACT) $(LILO_SOURCE) | tar -C $(BUILDDIR) -xf -
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+lilo_prepare: $(STATEDIR)/lilo.prepare
+
+LILO_PATH = PATH=$(CROSS_PATH)
+LILO_MAKEVARS = CROSS=$(PTXCONF_GNU_TARGET)-
+
+#
+# dependencies
+#
+lilo_prepare_deps = $(STATEDIR)/lilo.extract $(STATEDIR)/virtual-xchain.install
+
+$(STATEDIR)/lilo.prepare: $(lilo_prepare_deps)
+ @$(call targetinfo, lilo.prepare)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+lilo_compile: $(STATEDIR)/lilo.compile
+
+lilo_compile_deps = $(STATEDIR)/lilo.prepare
+
+$(STATEDIR)/lilo.compile: $(lilo_compile_deps)
+ @$(call targetinfo, lilo.compile)
+ $(LILO_PATH) make -C $(LILO_DIR) $(LILO_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+lilo_install: $(STATEDIR)/lilo.install
+
+$(STATEDIR)/lilo.install: $(STATEDIR)/lilo.compile
+ @$(call targetinfo, lilo.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+lilo_targetinstall: $(STATEDIR)/lilo.targetinstall
+
+$(STATEDIR)/lilo.targetinstall: $(STATEDIR)/lilo.install
+ @$(call targetinfo, lilo.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+lilo_clean:
+ -rm -rf $(STATEDIR)/lilo*
+ -rm -rf $(LILO_DIR)
+
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/lsh.make b/rules/lsh.make
index febcb10c5..6b753b592 100644
--- a/rules/lsh.make
+++ b/rules/lsh.make
@@ -1,4 +1,5 @@
-# $Id: lsh.make,v 1.3 2003/06/25 12:12:31 robert Exp $
+# -*-makefile-*-
+# $Id: lsh.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ LSH_EXTRACT = gzip -dc
lsh_get: $(STATEDIR)/lsh.get
$(STATEDIR)/lsh.get: $(LSH_SOURCE)
+ @$(call targetinfo, lsh.get)
touch $@
$(LSH_SOURCE):
- @$(call targetinfo, lsh.get)
+ @$(call targetinfo, $(LSH_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(LSH_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/mtd.make b/rules/mtd.make
index 231baaa8f..950bc2b7e 100644
--- a/rules/mtd.make
+++ b/rules/mtd.make
@@ -1,4 +1,5 @@
-# $Id: mtd.make,v 1.2 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: mtd.make,v 1.3 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -35,12 +36,13 @@ MTD_EXTRACT = gzip -dc
mtd_get: $(STATEDIR)/mtd.get
$(STATEDIR)/mtd.get: $(MTD_SOURCE)
+ @$(call targetinfo, mtdutil.get)
touch $@
mtdutil_get: $(STATEDIR)/mtdutil.get
$(STATEDIR)/mtdutil.get: $(MTD_SOURCE)
- @$(call targetinfo, mtdutil.get)
+ @$(call targetinfo, $(MTD_SOURCE))
touch $@
$(MTD_SOURCE):
@@ -116,8 +118,6 @@ MTD-UTIL_ENVIRONMENT =
MTD-UTIL_MAKEVARS =
MTD-UTIL_ENVIRONMENT += PATH=$(PTXCONF_PREFIX)/bin:$$PATH
MTD-UTIL_MAKEVARS += CROSS=$(PTXCONF_GNU_TARGET)-
-MTD-UTIL_MAKEVARS += CFLAGS=-I$(PTXCONF_PREFIX)/include
-MTD-UTIL_MAKEVARS += LDFLAGS=-L$(ZLIB_DIR)
mtdutil_compile: $(STATEDIR)/mtdutil.compile
@@ -160,63 +160,63 @@ $(STATEDIR)/mtdutil.targetinstall: $(STATEDIR)/mtdutil.install
@$(call targetinfo, mtdutil.targetinstall)
ifeq (y, $(PTXCONF_MTD_EINFO))
install $(BUILDDIR)/mtdutil/$(MTD)/util/einfo $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/einfo
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/einfo
endif
ifeq (y, $(PTXCONF_MTD_ERASE))
install $(BUILDDIR)/mtdutil/$(MTD)/util/erase $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/erase
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/erase
endif
ifeq (y, $(PTXCONF_MTD_ERASEALL))
install $(BUILDDIR)/mtdutil/$(MTD)/util/eraseall $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/eraseall
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/eraseall
endif
ifeq (y, $(PTXCONF_MTD_FCP))
install $(BUILDDIR)/mtdutil/$(MTD)/util/fcp $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/fcp
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/fcp
endif
ifeq (y, $(PTXCONF_MTD_FTL_CHECK))
install $(BUILDDIR)/mtdutil/$(MTD)/util/ftl_check $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/check
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/check
endif
ifeq (y, $(PTXCONF_MTD_FTL_FORMAT))
install $(BUILDDIR)/mtdutil/$(MTD)/util/ftl_format $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/ftl_format
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/ftl_format
endif
ifeq (y, $(PTXCONF_MTD_JFFS2READER))
install $(BUILDDIR)/mtdutil/$(MTD)/util/jffs2reader $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/jffs2reader
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/jffs2reader
endif
ifeq (y, $(PTXCONF_MTD_LOCK))
install $(BUILDDIR)/mtdutil/$(MTD)/util/lock $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/lock
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/lock
endif
ifeq (y, $(PTXCONF_MTD_MTDDEBUG))
install $(BUILDDIR)/mtdutil/$(MTD)/util/mtd_debug $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/mtd_debug
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/mtd_debug
endif
ifeq (y, $(PTXCONF_MTD_NANDDUMP))
install $(BUILDDIR)/mtdutil/$(MTD)/util/nanddump $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nanddump
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nanddump
endif
ifeq (y, $(PTXCONF_MTD_NANDTEST))
install $(BUILDDIR)/mtdutil/$(MTD)/util/nandtest $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nandtest
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nandtest
endif
ifeq (y, $(PTXCONF_MTD_NANDWRITE))
install $(BUILDDIR)/mtdutil/$(MTD)/util/nandwrite $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nandwrite
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nandwrite
endif
ifeq (y, $(PTXCONF_MTD_NFTL_FORMAT))
install $(BUILDDIR)/mtdutil/$(MTD)/util/nftl_format $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nftl_format
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nftl_format
endif
ifeq (y, $(PTXCONF_MTD_NFTLDUMP))
install $(BUILDDIR)/mtdutil/$(MTD)/util/nftldump $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nftldump
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nftldump
endif
ifeq (y, $(PTXCONF_MTD_UNLOCK))
install $(BUILDDIR)/mtdutil/$(MTD)/util/unlock $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/unlock
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/unlock
endif
touch $@
diff --git a/rules/ncurses.make b/rules/ncurses.make
index 90c36ec82..599136a4d 100644
--- a/rules/ncurses.make
+++ b/rules/ncurses.make
@@ -1,4 +1,5 @@
-# $Id: ncurses.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: ncurses.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -31,10 +32,11 @@ NCURSES_EXTRACT = gzip -dc
ncurses_get: $(STATEDIR)/ncurses.get
$(STATEDIR)/ncurses.get: $(NCURSES_SOURCE)
+ @$(call targetinfo, ncurses.get)
touch $@
$(NCURSES_SOURCE):
- @$(call targetinfo, ncurses.get)
+ @$(call targetinfo, $(NCURSES_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(NCURSES_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/nettle.make b/rules/nettle.make
index 7d794c364..e7fd4aef8 100644
--- a/rules/nettle.make
+++ b/rules/nettle.make
@@ -1,4 +1,5 @@
-# $Id: nettle.make,v 1.3 2003/06/25 12:12:31 robert Exp $
+# -*-makefile-*-
+# $Id: nettle.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ NETTLE_EXTRACT = gzip -dc
nettle_get: $(STATEDIR)/nettle.get
$(STATEDIR)/nettle.get: $(NETTLE_SOURCE)
+ @$(call targetinfo, nettle.get)
touch $@
$(NETTLE_SOURCE):
- @$(call targetinfo, nettle.get)
+ @$(call targetinfo, $(NETTLE_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(NETTLE_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/nfs-utils.make b/rules/nfs-utils.make
index 176603518..28da3ba2c 100644
--- a/rules/nfs-utils.make
+++ b/rules/nfs-utils.make
@@ -1,4 +1,5 @@
-# $Id: nfs-utils.make,v 1.3 2003/06/25 12:12:31 robert Exp $
+# -*-makefile-*-
+# $Id: nfs-utils.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ NFSUTILS_EXTRACT = gzip -dc
nfsutils_get: $(STATEDIR)/nfsutils.get
$(STATEDIR)/nfsutils.get: $(NFSUTILS_SOURCE)
+ @$(call targetinfo, nfsutils.get)
touch $@
$(NFSUTILS_SOURCE):
- @$(call targetinfo, nfsutils.get)
+ @$(call targetinfo, $(NFSUTILS_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(NFSUTILS_URL)
# ----------------------------------------------------------------------------
@@ -44,7 +46,8 @@ nfsutils_extract: $(STATEDIR)/nfsutils.extract
$(STATEDIR)/nfsutils.extract: $(STATEDIR)/nfsutils.get $(STATEDIR)/autoconf257.targetinstall
@$(call targetinfo, nfsutils.extract)
- $(NFSUTILS_EXTRACT) $(NFSUTILS_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(NFSUTILS_DIR))
+ @$(call extract, $(NFSUTILS_SOURCE))
#
# regenerate configure script with new autoconf, to make cross compiling work
cd $(NFSUTILS_DIR) && PATH=$(PTXCONF_PREFIX)/$(AUTOCONF257)/bin:$$PATH autoconf
@@ -56,18 +59,15 @@ $(STATEDIR)/nfsutils.extract: $(STATEDIR)/nfsutils.get $(STATEDIR)/autoconf257.t
nfsutils_prepare: $(STATEDIR)/nfsutils.prepare
-NFSUTILS_AUTOCONF =
-NFSUTILS_ENVIRONMENT =
-
#
# # arcitecture dependend configuration
# #
#
-NFSUTILS_AUTOCONF += --build=$(GNU_HOST)
-NFSUTILS_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
-NFSUTILS_ENVIRONMENT = PATH=$(PTXCONF_PREFIX)/bin:$$PATH
-NFSUTILS_ENVIRONMENT += CC=$(PTXCONF_GNU_TARGET)-gcc CC_FOR_BUILD=gcc
-NFSUTILS_MAKEVARS =
+NFSUTILS_AUTOCONF = --build=$(GNU_HOST)
+NFSUTILS_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
+
+NFSUTILS_PATH = PATH=$(CROSS_PATH)
+NFSUTILS_ENV += CC_FOR_BUILD=$(HOSTCC) $(CROSS_ENV)
ifeq (y, $(PTXCONF_NFSUTILS_V3))
NFSUTILS_AUTOCONF += --enable-nfsv3
@@ -84,13 +84,16 @@ NFSUTILS_AUTOCONF += --enable-rquotad
else
NFSUTILS_AUTOCONF += --disable-rquotad
endif
-
-$(STATEDIR)/nfsutils.prepare: $(STATEDIR)/nfsutils.extract
+
+nfsutils_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/nfsutils.extract
+
+$(STATEDIR)/nfsutils.prepare: $(nfsutils_prepare_deps)
@$(call targetinfo, nfsutils.prepare)
cd $(NFSUTILS_DIR) && \
- $(NFSUTILS_ENVIRONMENT) \
- $(NFSUTILS_DIR)/configure \
- $(NFSUTILS_AUTOCONF)
+ $(NFSUTILS_PATH) $(NFSUTILS_ENV) \
+ $(NFSUTILS_DIR)/configure $(NFSUTILS_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -101,7 +104,7 @@ nfsutils_compile: $(STATEDIR)/nfsutils.compile
$(STATEDIR)/nfsutils.compile: $(STATEDIR)/nfsutils.prepare
@$(call targetinfo, nfsutils.compile)
- $(NFSUTILS_ENVIRONMENT) make -C $(NFSUTILS_DIR) $(NFSUTILS_MAKEVARS)
+ $(NFSUTILS_PATH) make -C $(NFSUTILS_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -112,7 +115,6 @@ nfsutils_install: $(STATEDIR)/nfsutils.install
$(STATEDIR)/nfsutils.install: $(STATEDIR)/nfsutils.compile
@$(call targetinfo, nfsutils.install)
- # make -C $(NFSUTILS_DIR) install
touch $@
# ----------------------------------------------------------------------------
@@ -123,7 +125,7 @@ nfsutils_targetinstall: $(STATEDIR)/nfsutils.targetinstall
$(STATEDIR)/nfsutils.targetinstall: $(STATEDIR)/nfsutils.install
@$(call targetinfo, nfsutils.targetinstall)
- # don't forget to $(CROSSSTRIP) -S your source!
+
mkdir -p $(ROOTDIR)/etc/init.d
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_CLIENTSCRIPT))
install $(NFSUTILS_DIR)/etc/nodist/nfs-client $(ROOTDIR)/etc/init.d/
@@ -137,23 +139,23 @@ $(STATEDIR)/nfsutils.targetinstall: $(STATEDIR)/nfsutils.install
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_EXPORTFS))
install $(NFSUTILS_DIR)/utils/exportfs/exportfs $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/exportfs
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/exportfs
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_LOCKD))
install $(NFSUTILS_DIR)/utils/lockd/lockd $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/lockd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/lockd
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_MOUNTD))
install $(NFSUTILS_DIR)/utils/mountd/mountd $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/mountd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/mountd
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_NFSD))
install $(NFSUTILS_DIR)/utils/nfsd/nfsd $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nfsd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nfsd
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_NFSSTAT))
install $(NFSUTILS_DIR)/utils/nfsstat/nfsstat $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nfsstat
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nfsstat
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_NHFSGRAPH))
# don't strip, this is a shell script
@@ -169,15 +171,15 @@ $(STATEDIR)/nfsutils.targetinstall: $(STATEDIR)/nfsutils.install
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_NHFSSTONE))
install $(NFSUTILS_DIR)/utils/nhfsstone/nhfsstone $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/nhfsstone
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/nhfsstone
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_SHOWMOUNT))
install $(NFSUTILS_DIR)/utils/showmount/showmount $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/showmount
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/showmount
endif
ifeq (y, $(PTXCONF_NFSUTILS_INSTALL_STATD))
install $(NFSUTILS_DIR)/utils/statd/statd $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/statd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/statd
endif
# create stuff necessary for nfs
mkdir -p $(ROOTDIR)/var/lib/nfs
diff --git a/rules/openssh.make b/rules/openssh.make
index be88fafc6..de0624343 100644
--- a/rules/openssh.make
+++ b/rules/openssh.make
@@ -1,4 +1,5 @@
-# $Id: openssh.make,v 1.6 2003/07/07 13:19:04 bsp Exp $
+# -*-makefile-*-
+# $Id: openssh.make,v 1.7 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -21,7 +22,10 @@ OPENSSH = openssh-3.6.1p2
OPENSSH_URL = ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$(OPENSSH).tar.gz
OPENSSH_SOURCE = $(SRCDIR)/$(OPENSSH).tar.gz
OPENSSH_DIR = $(BUILDDIR)/$(OPENSSH)
-OPENSSH_EXTRACT = gzip -dc
+
+OPENSSH_PATCH = openssh.patch
+OPENSSH_PATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(OPENSSH_PATCH)
+OPENSSH_PATCH_SOURCE = $(SRCDIR)/$(OPENSSH_PATCH)
# ----------------------------------------------------------------------------
# Get
@@ -29,12 +33,21 @@ OPENSSH_EXTRACT = gzip -dc
openssh_get: $(STATEDIR)/openssh.get
-$(STATEDIR)/openssh.get: $(OPENSSH_SOURCE)
+openssh_get_deps = \
+ $(OPENSSH_SOURCE) \
+ $(OPENSSH_PATCH_SOURCE)
+
+$(STATEDIR)/openssh.get: $(openssh_get_deps)
+ @$(call targetinfo, openssh.get)
touch $@
$(OPENSSH_SOURCE):
- @$(call targetinfo, openssh.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(OPENSSH_URL)
+ @$(call targetinfo, $(OPENSSH_SOURCE))
+ @$(call get, $(OPENSSH_URL))
+
+$(OPENSSH_PATCH_SOURCE):
+ @$(call targetinfo, $(OPENSSH_PATCH_SOURCE))
+ @$(call get, $(OPENSSH_PATCH_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -42,9 +55,28 @@ $(OPENSSH_SOURCE):
openssh_extract: $(STATEDIR)/openssh.extract
-$(STATEDIR)/openssh.extract: $(STATEDIR)/openssh.get
+#
+# we depend on openssl.install, because we need the header files
+# to patch configure.ac with the version string of the installed
+# openssl packet
+#
+openssh_extract_deps = \
+ $(STATEDIR)/autoconf257.install \
+ $(STATEDIR)/openssl.install \
+ $(STATEDIR)/openssh.get
+
+$(STATEDIR)/openssh.extract: $(openssh_extract_deps)
@$(call targetinfo, openssh.extract)
- $(OPENSSH_EXTRACT) $(OPENSSH_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(OPENSSH_DIR))
+ @$(call extract, $(OPENSSH_SOURCE))
+
+ cd $(OPENSSH_DIR) && patch -p1 < $(OPENSSH_PATCH_SOURCE)
+ OPENSSL_VERSION_NUMBER="`sed -n -e 's/.*OPENSSL_VERSION_NUMBER.*0x[0]*\([0-9a-f]*\)L/\1/p' $(CROSS_LIB_DIR)/include/openssl/opensslv.h`" \
+ OPENSSL_VERSION_TEXT="`sed -n -e 's/.*OPENSSL_VERSION_TEXT.*"\(.*\)"/\1/p' $(CROSS_LIB_DIR)/include/openssl/opensslv.h`" && \
+ perl -i -p -e "s/ssl_library_ver=\"VERSION\"/ssl_library_ver=\"$$OPENSSL_VERSION_NUMBER ($$OPENSSL_VERSION_TEXT)\"/g" $(OPENSSH_DIR)/configure.ac && \
+ perl -i -p -e "s/ssl_header_ver=\"VERSION\"/ssl_header_ver=\"$$OPENSSL_VERSION_NUMBER ($$OPENSSL_VERSION_TEXT)\"/g" $(OPENSSH_DIR)/configure.ac
+
+ cd $(OPENSSH_DIR) && PATH=$(PTXCONF_PREFIX)/$(AUTOCONF257)/bin:$$PATH autoconf
touch $@
# ----------------------------------------------------------------------------
@@ -53,16 +85,25 @@ $(STATEDIR)/openssh.extract: $(STATEDIR)/openssh.get
openssh_prepare: $(STATEDIR)/openssh.prepare
-OPENSSH_AUTOCONF = --prefix=/ --with-ipv4-default
-OPENSSH_AUTOCONF += --without-pam --without-md5-passwords
-OPENSSH_AUTOCONF += --with-zlib=$(PTXCONF_PREFIX)
-# TODO dont know if this finds its way hardcoded into some binary:
+OPENSSH_AUTOCONF = --prefix=/usr --libexecdir=/usr/sbin
+OPENSSH_AUTOCONF += --without-pam --with-ipv4-default
+OPENSSH_AUTOCONF += --build=$(GNU_HOST)
+OPENSSH_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
OPENSSH_AUTOCONF += --with-privsep-path=/var/run/sshd
-$(STATEDIR)/openssh.prepare: $(STATEDIR)/openssh.extract $(STATEDIR)/openssl.install
+
+openssh_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/openssh.extract
+
+OPENSSH_PATH = PATH=$(CROSS_PATH)
+OPENSSH_ENV = $(CROSS_ENV)
+
+$(STATEDIR)/openssh.prepare: $(openssh_prepare_deps)
@$(call targetinfo, openssh.prepare)
- cd $(OPENSSH_DIR) && LIBS=-lcrypt \
- CC=$(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-gcc ./configure $(OPENSSH_AUTOCONF)
+ cd $(OPENSSH_DIR) && \
+ $(OPENSSH_PATH) $(OPENSSH_ENV) \
+ ./configure $(OPENSSH_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -73,7 +114,7 @@ openssh_compile: $(STATEDIR)/openssh.compile
$(STATEDIR)/openssh.compile: $(STATEDIR)/openssh.prepare
@$(call targetinfo, openssh.compile)
- cd $(OPENSSH_DIR) && PATH=$(PTXCONF_PREFIX)/bin:$$PATH make
+ $(OPENSSH_PATH) make -C $(OPENSSH_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -92,12 +133,16 @@ $(STATEDIR)/openssh.install: $(STATEDIR)/openssh.compile
openssh_targetinstall: $(STATEDIR)/openssh.targetinstall
-$(STATEDIR)/openssh.targetinstall: $(STATEDIR)/openssh.install
+$(STATEDIR)/openssh.targetinstall: $(STATEDIR)/openssh.compile
@$(call targetinfo, openssh.targetinstall)
touch $(ROOTDIR)/SSH_hostkeys_needed
- cd $(OPENSSH_DIR) && install -m 0755 -s ssh-keygen $(ROOTDIR)/sbin/ssh-keygen
- cd $(OPENSSH_DIR) && install -m 0755 -s sshd $(ROOTDIR)/sbin/sshd
+ install -m 0755 -s $(OPENSSH_DIR)/ssh-keygen $(ROOTDIR)/sbin/ssh-keygen
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/ssh-keygen
+
+ install -m 0755 -s $(OPENSSH_DIR)/sshd $(ROOTDIR)/sbin/sshd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/sshd
touch $@
+
# ----------------------------------------------------------------------------
# Clean
# ----------------------------------------------------------------------------
diff --git a/rules/openssl.make b/rules/openssl.make
index 42fd09a85..de9f992da 100644
--- a/rules/openssl.make
+++ b/rules/openssl.make
@@ -1,4 +1,5 @@
-# $Id: openssl.make,v 1.6 2003/06/27 12:19:59 bsp Exp $
+# -*-makefile-*-
+# $Id: openssl.make,v 1.7 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Jochen Striepe for Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -21,7 +22,6 @@ OPENSSL = openssl-0.9.7b
OPENSSL_URL = http://www.openssl.org/source/$(OPENSSL).tar.gz
OPENSSL_SOURCE = $(SRCDIR)/$(OPENSSL).tar.gz
OPENSSL_DIR = $(BUILDDIR)/$(OPENSSL)
-OPENSSL_EXTRACT = gzip -dc
ifeq (y,$(PTXCONF_ARCH_ARM))
THUD = linux-elf-arm
@@ -30,11 +30,14 @@ ifeq (y,$(PTXCONF_ARCH_X86))
THUD = linux-elf
endif
ifeq (y,$(PTXCONF_OPT_i586))
- THUD = linux-pentium
+ THUD = linux-pentium
endif
ifeq (y,$(PTXCONF_OPT_I686))
THUD = linux-ppro
endif
+ifeq (y,$(PTXCONF_ARCH_PPC))
+ THUD = linux-ppc
+endif
# ----------------------------------------------------------------------------
# Get
@@ -43,11 +46,12 @@ endif
openssl_get: $(STATEDIR)/openssl.get
$(STATEDIR)/openssl.get: $(OPENSSL_SOURCE)
+ @$(call targetinfo, openssl.get)
touch $@
$(OPENSSL_SOURCE):
- @$(call targetinfo, openssl.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(OPENSSL_URL)
+ @$(call targetinfo, $(OPENSSL_SOURCE))
+ @$(call get, $(OPENSSL_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -57,7 +61,8 @@ openssl_extract: $(STATEDIR)/openssl.extract
$(STATEDIR)/openssl.extract: $(STATEDIR)/openssl.get
@$(call targetinfo, openssl.extract)
- $(OPENSSL_EXTRACT) $(OPENSSL_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(OPENSSL_DIR))
+ @$(call extract, $(OPENSSL_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -66,16 +71,20 @@ $(STATEDIR)/openssl.extract: $(STATEDIR)/openssl.get
openssl_prepare: $(STATEDIR)/openssl.prepare
-openssl_prepare_deps = $(STATEDIR)/openssl.extract
-openssl_prepare_deps += $(STATEDIR)/zlib.install
-openssl_prepare_deps += $(STATEDIR)/xchain-gccstage2.install
+openssl_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/zlib.install \
+ $(STATEDIR)/openssl.extract
+
+OPENSSL_PATH = PATH=$(CROSS_PATH)
+OPENSSL_MAKEVARS= $(CROSS_ENV_CC) $(CROSS_ENV_RANLIB) AR='$(PTXCONF_GNU_TARGET)-ar r'
$(STATEDIR)/openssl.prepare: $(openssl_prepare_deps)
@$(call targetinfo, openssl.prepare)
- cd $(OPENSSL_DIR) && ./Configure $(THUD) --prefix=$(PTXCONF_PREFIX) no-shared
- perl -p -i -e 's@^CC= .*@CC = $(subst ",, $(PTXCONF_GNU_TARGET))-gcc@' $(OPENSSL_DIR)/Makefile
- perl -p -i -e 's/-m486//' $(OPENSSL_DIR)/Makefile
- perl -p -i -e 's@^CC= .*@CC = $(subst ",, $(PTXCONF_GNU_TARGET))-gcc@' $(OPENSSL_DIR)/crypto/Makefile
+ perl -p -i -e 's/-m486//' $(OPENSSL_DIR)/Configure
+ cd $(OPENSSL_DIR) && \
+ $(OPENSSL_PATH) \
+ ./Configure $(THUD) --prefix=$(CROSS_LIB_DIR) no-shared
touch $@
# ----------------------------------------------------------------------------
@@ -86,8 +95,7 @@ openssl_compile: $(STATEDIR)/openssl.compile
$(STATEDIR)/openssl.compile: $(STATEDIR)/openssl.prepare
@$(call targetinfo, openssl.compile)
- cd $(OPENSSL_DIR) && PATH=$(PTXCONF_PREFIX)/bin:$$PATH \
- make
+ $(OPENSSL_PATH) make -C $(OPENSSL_DIR) $(OPENSSL_MAKEVARS)
touch $@
# ----------------------------------------------------------------------------
@@ -98,7 +106,7 @@ openssl_install: $(STATEDIR)/openssl.install
$(STATEDIR)/openssl.install: $(STATEDIR)/openssl.compile
@$(call targetinfo, openssl.install)
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH make -C $(OPENSSL_DIR) install
+ $(OPENSSL_PATH) make -C $(OPENSSL_DIR) install $(OPENSSL_MAKEVARS)
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/pdksh.make b/rules/pdksh.make
index f4deb135d..d0d3dec5b 100644
--- a/rules/pdksh.make
+++ b/rules/pdksh.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: pdksh.make,v 1.6 2003/07/15 13:59:34 robert Exp $
+# $Id: pdksh.make,v 1.7 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Auerswald GmbH & Co. KG, Schandelah, Germany
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
@@ -32,9 +32,11 @@ PDKSH_EXTRACT = gzip -dc
pdksh_get: $(STATEDIR)/pdksh.get
$(STATEDIR)/pdksh.get: $(PDKSH_SOURCE)
+ @$(call targetinfo, pdksh.get)
touch $@
$(PDKSH_SOURCE):
+ @$(call targetinfo, $(PDKSH_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(PDKSH_URL)
# ----------------------------------------------------------------------------
@@ -45,6 +47,7 @@ pdksh_extract: $(STATEDIR)/pdksh.extract
$(STATEDIR)/pdksh.extract: $(STATEDIR)/pdksh.get
@$(call targetinfo, pdksh.extract)
+ @$(call clean, $(PDKSH_DIR))
$(PDKSH_EXTRACT) $(PDKSH_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
touch $@
@@ -58,13 +61,16 @@ PDKSH_AUTOCONF = --build=$(GNU_HOST)
PDKSH_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
PDKSH_AUTOCONF += --target=$(PTXCONF_GNU_TARGET)
PDKSH_AUTOCONF += --disable-sanity-checks
-PDKSH_AUTOCONF += --prefix=$(ROOTDIR)
-PDKSH_ENVIRONMENT= PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(PTXCONF_PREFIX)/bin:$$PATH
-PDKSH_ENVIRONMENT+= ac_cv_func_setvbuf_reversed=no pdksh_cv_have_mbstate_t=yes
-PDKSH_MAKEVARS = AR=$(PTXCONF_GNU_TARGET)-ar
-PDKSH_MAKEVARS += RANLIB=$(PTXCONF_GNU_TARGET)-ranlib
-PDKSH_MAKEVARS += CC=$(PTXCONF_GNU_TARGET)-gcc
-PDKSH_MAKEVARS += "CFLAGS=-Os -fomit-frame-pointer"
+PDKSH_AUTOCONF += --prefix=/usr
+
+PDKSH_PATH = PATH=$(CROSS_PATH)
+PDKSH_ENV = ac_cv_sizeof_long=4 ac_cv_sizeof_int=4 ac_cv_func_mmap=yes
+PDKSH_ENV += ksh_cv_func_memmove=yes
+PDKSH_ENV += ksh_cv_func_times_ok=yes ksh_cv_pgrp_check=posix
+PDKSH_ENV += ksh_cv_dup2_clexec_ok=yes
+PDKSH_ENV += ksh_cv_dev_fd=yes ksh_cv_need_pgrp_sync=no ksh_cv_opendir_ok=yes
+
+PDKSH_ENV += $(CROSS_ENV)
ifeq (y, $(PTXCONF_PDKSH_SHLIKE))
PDKSH_AUTOCONF += --enable-shell=sh
@@ -106,16 +112,13 @@ endif
# dependencies
#
pdksh_prepare_deps = $(STATEDIR)/pdksh.extract
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-pdksh_prepare_deps += $(STATEDIR)/xchain-gccstage2.install
-endif
-
+pdksh_prepare_deps += $(STATEDIR)/virtual-xchain.install
$(STATEDIR)/pdksh.prepare: $(pdksh_prepare_deps)
@$(call targetinfo, pdksh.prepare)
mkdir -p $(BUILDDIR)/$(PDKSH)
- cd $(BUILDDIR)/$(PDKSH) && \
- $(PDKSH_ENVIRONMENT) \
+ cd $(PDKSH_DIR) && \
+ $(PDKSH_PATH) $(PDKSH_ENV) \
$(PDKSH_DIR)/configure $(PDKSH_AUTOCONF)
touch $@
@@ -124,18 +127,12 @@ $(STATEDIR)/pdksh.prepare: $(pdksh_prepare_deps)
# ----------------------------------------------------------------------------
pdksh_compile_deps = $(STATEDIR)/pdksh.prepare
-ifeq (y, $(PTXCONF_GLIBC))
-pdksh_compile_deps += $(STATEDIR)/glibc.install
-endif
-ifeq (y, $(PTXCONF_UCLIBC))
-pdksh_compile_deps += $(STATEDIR)/uclibc.install
-endif
pdksh_compile: $(STATEDIR)/pdksh.compile
$(STATEDIR)/pdksh.compile: $(STATEDIR)/pdksh.prepare
@$(call targetinfo, pdksh.compile)
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH make -C $(PDKSH_DIR) $(PDKSH_MAKEVARS) $(MAKEPARMS)
+ $(PDKSH_PATH) make -C $(PDKSH_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -156,8 +153,8 @@ pdksh_targetinstall: $(STATEDIR)/pdksh.targetinstall
$(STATEDIR)/pdksh.targetinstall: $(STATEDIR)/pdksh.install
@$(call targetinfo, pdksh.targetinstall)
- $(CROSSSTRIP) $(PDKSH_DIR)/ksh
- cp $(PDKSH_DIR)/ksh $(ROOTDIR)/bin
+ install $(PDKSH_DIR)/ksh $(ROOTDIR)/bin
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/bin/ksh
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/portmap.make b/rules/portmap.make
index 0ee903565..3d4e8345b 100644
--- a/rules/portmap.make
+++ b/rules/portmap.make
@@ -1,4 +1,5 @@
-# $Id: portmap.make,v 1.3 2003/06/30 15:43:26 bsp Exp $
+# -*-makefile-*-
+# $Id: portmap.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ PORTMAP_EXTRACT = gzip -dc
portmap_get: $(STATEDIR)/portmap.get
$(STATEDIR)/portmap.get: $(PORTMAP_SOURCE)
+ @$(call targetinfo, portmap.get)
touch $@
$(PORTMAP_SOURCE):
- @$(call targetinfo, portmap.get)
+ @$(call targetinfo, $(PORTMAP_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(PORTMAP_URL)
# ----------------------------------------------------------------------------
@@ -44,6 +46,7 @@ portmap_extract: $(STATEDIR)/portmap.extract
$(STATEDIR)/portmap.extract: $(STATEDIR)/portmap.get
@$(call targetinfo, portmap.extract)
+ @$(call clean, $(PORTMAP_DIR))
$(PORTMAP_EXTRACT) $(PORTMAP_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
# apply some fixes
perl -i -p -e 's/^HOSTS_ACCESS/#HOSTS_ACCESS/g' $(PORTMAP_DIR)/Makefile
@@ -60,7 +63,12 @@ $(STATEDIR)/portmap.extract: $(STATEDIR)/portmap.get
portmap_prepare: $(STATEDIR)/portmap.prepare
-$(STATEDIR)/portmap.prepare: $(STATEDIR)/portmap.extract
+portmap_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/tcpwrapper.compile \
+ $(STATEDIR)/portmap.extract
+
+$(STATEDIR)/portmap.prepare: $(portmap_prepare_deps)
@$(call targetinfo, portmap.prepare)
touch $@
@@ -70,12 +78,10 @@ $(STATEDIR)/portmap.prepare: $(STATEDIR)/portmap.extract
portmap_compile: $(STATEDIR)/portmap.compile
-PORTMAP_ENVIRONMENT = CC=$(PTXCONF_GNU_TARGET)-gcc PATH=$(PTXCONF_PREFIX)/bin:$$PATH
-
-portmap_compile_deps = $(STATEDIR)/portmap.prepare
-portmap_compile_deps += $(STATEDIR)/tcpwrapper.compile
+PORTMAP_ENVIRONMENT = PATH=$(CROSS_PATH)
+PORTMAP_MAKEVARS = $(CROSS_ENV)
-$(STATEDIR)/portmap.compile: $(portmap_compile_deps)
+$(STATEDIR)/portmap.compile: $(STATEDIR)/portmap.prepare
@$(call targetinfo, portmap.compile)
$(PORTMAP_ENVIRONMENT) make -C $(PORTMAP_DIR) $(PORTMAP_MAKEVARS)
touch $@
@@ -88,7 +94,6 @@ portmap_install: $(STATEDIR)/portmap.install
$(STATEDIR)/portmap.install: $(STATEDIR)/portmap.compile
@$(call targetinfo, portmap.install)
- #make -C $(PORTMAP_DIR) install
touch $@
# ----------------------------------------------------------------------------
@@ -102,7 +107,7 @@ $(STATEDIR)/portmap.targetinstall: $(STATEDIR)/portmap.install
ifeq (y, $(PTXCONF_PORTMAP_INSTALL_PORTMAPPER))
mkdir -p $(ROOTDIR)/sbin
install $(PORTMAP_DIR)/portmap $(ROOTDIR)/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/portmap
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/portmap
endif
touch $@
diff --git a/rules/pppd.make b/rules/pppd.make
new file mode 100644
index 000000000..fa452f1ad
--- /dev/null
+++ b/rules/pppd.make
@@ -0,0 +1,119 @@
+# -*-makefile-*-
+# $Id: pppd.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_PPP
+PACKAGES += ppp
+endif
+
+#
+# Paths and names
+#
+PPP = ppp-2.4.1
+PPP_URL = ftp://ftp.samba.org/pub/ppp/$(PPP).tar.gz
+PPP_SOURCE = $(SRCDIR)/$(PPP).tar.gz
+PPP_DIR = $(BUILDDIR)/$(PPP)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+ppp_get: $(STATEDIR)/ppp.get
+
+ppp_get_deps = $(PPP_SOURCE)
+
+$(STATEDIR)/ppp.get: $(ppp_get_deps)
+ @$(call targetinfo, ppp.get)
+ touch $@
+
+$(PPP_SOURCE):
+ @$(call targetinfo, $(PPP_SOURCE))
+ @$(call get, $(PPP_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+ppp_extract: $(STATEDIR)/ppp.extract
+
+$(STATEDIR)/ppp.extract: $(STATEDIR)/ppp.get
+ @$(call targetinfo, ppp.extract)
+ @$(call clean, $(PPP_DIR))
+ @$(call extract, $(PPP_SOURCE))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+ppp_prepare: $(STATEDIR)/ppp.prepare
+
+PPP_PATH = PATH=$(CROSS_PATH)
+PPP_MAKEVARS = CROSS=$(CROSS_ENV)
+
+$(STATEDIR)/ppp.prepare: \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/ppp.extract
+ @$(call targetinfo, ppp.prepare)
+ cd $(PPP_DIR) && \
+ ./configure
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+ppp_compile: $(STATEDIR)/ppp.compile
+
+ppp_compile_deps = $(STATEDIR)/ppp.prepare
+
+$(STATEDIR)/ppp.compile: $(ppp_compile_deps)
+ @$(call targetinfo, ppp.compile)
+ cd $(PPP_DIR) && \
+ $(PPP_PATH) make $(PPP_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+ppp_install: $(STATEDIR)/ppp.install
+
+$(STATEDIR)/ppp.install: $(STATEDIR)/ppp.compile
+ @$(call targetinfo, ppp.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+ppp_targetinstall: $(STATEDIR)/ppp.targetinstall
+
+$(STATEDIR)/ppp.targetinstall: $(STATEDIR)/ppp.compile
+ @$(call targetinfo, ppp.targetinstalll)
+ install $(PPP_DIR)/pppd/pppd $(ROOTDIR)/sbin/
+ $(CROSSSTRIP) -R .note -R .comment $(ROOTDIR)/sbin/pppd
+
+ install $(PPP_DIR)/chat/chat $(ROOTDIR)/sbin/
+ $(CROSSSTRIP) -R .note -R .comment $(ROOTDIR)/sbin/chat
+
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+ppp_clean:
+ -rm -rf $(STATEDIR)/ppp*
+ -rm -rf $(PPP_DIR)
+
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/proftpd.make b/rules/proftpd.make
index 50aea744a..b12e583d5 100644
--- a/rules/proftpd.make
+++ b/rules/proftpd.make
@@ -1,4 +1,5 @@
-# $Id: proftpd.make,v 1.3 2003/06/26 15:05:58 bsp Exp $
+# -*-makefile-*-
+# $Id: proftpd.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -31,10 +32,11 @@ PROFTPD_EXTRACT = gzip -dc
proftpd_get: $(STATEDIR)/proftpd.get
$(STATEDIR)/proftpd.get: $(PROFTPD_SOURCE)
+ @$(call targetinfo, proftpd.get)
touch $@
$(PROFTPD_SOURCE):
- @$(call targetinfo, proftpd.get)
+ @$(call targetinfo, $(PROFTPD_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(PROFTPD_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/rootfs.make b/rules/rootfs.make
index e81d20de7..6f43df6a8 100644
--- a/rules/rootfs.make
+++ b/rules/rootfs.make
@@ -1,4 +1,5 @@
-# $Id: rootfs.make,v 1.3 2003/07/04 13:58:13 bsp Exp $
+# -*-makefile-*-
+# $Id: rootfs.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -28,10 +29,11 @@ ROOTFS_EXTRACT = gzip -dc
rootfs_get: $(STATEDIR)/rootfs.get
$(STATEDIR)/rootfs.get: $(ROOTFS_SOURCE)
+ @$(call targetinfo, rootfs.get)
touch $@
$(ROOTFS_SOURCE):
- @$(call targetinfo, rootfs.get)
+ @$(call targetinfo, $(ROOTFS_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(ROOTFS_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/rtai.make b/rules/rtai.make
index f4f1a0fdf..27163ac19 100644
--- a/rules/rtai.make
+++ b/rules/rtai.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: rtai.make,v 1.4 2003/06/16 12:05:16 bsp Exp $
+# $Id: rtai.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -34,6 +34,9 @@ endif
ifeq (y, $(PTXCONF_KERNEL_2_4_19))
RTAI_MODULEDIR = /lib/modules/2.4.19-rthal5/rtai
endif
+ifeq (y, $(PTXCONF_KERNEL_2_4_20))
+RTAI_MODULEDIR = /lib/modules/2.4.20-rthal5/rtai
+endif
# ----------------------------------------------------------------------------
# Get
@@ -42,10 +45,11 @@ endif
rtai_get: $(STATEDIR)/rtai.get
$(STATEDIR)/rtai.get: $(RTAI_SOURCE)
+ @$(call targetinfo, rtai.get)
touch $@
$(RTAI_SOURCE):
- @$(call targetinfo, rtai.get)
+ @$(call targetinfo, $(RTAI_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(RTAI_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/tcpwrapper.make b/rules/tcpwrapper.make
index 8b4ab5642..12e66d5b7 100644
--- a/rules/tcpwrapper.make
+++ b/rules/tcpwrapper.make
@@ -1,4 +1,5 @@
-# $Id: tcpwrapper.make,v 1.3 2003/06/30 15:43:26 bsp Exp $
+# -*-makefile-*-
+# $Id: tcpwrapper.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -34,14 +35,15 @@ TCPWRAPPER_PTXPATCH_SOURCE = $(SRCDIR)/$(TCPWRAPPER_PTXPATCH).diff
tcpwrapper_get: $(STATEDIR)/tcpwrapper.get
$(STATEDIR)/tcpwrapper.get: $(TCPWRAPPER_SOURCE) $(TCPWRAPPER_PTXPATCH_SOURCE)
+ @$(call targetinfo, tcpwrapper.get)
touch $@
$(TCPWRAPPER_SOURCE):
- @$(call targetinfo, tcpwrapper.get)
+ @$(call targetinfo, $(TCPWRAPPER_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(TCPWRAPPER_URL)
-
+
$(TCPWRAPPER_PTXPATCH_SOURCE):
- @$(call targetinfo, tcpwrapper-ptxpatch.get)
+ @$(call targetinfo, $(TCPWRAPPER_PTXPATCH_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(TCPWRAPPER_PTXPATCH_URL)
# ----------------------------------------------------------------------------
@@ -52,6 +54,7 @@ tcpwrapper_extract: $(STATEDIR)/tcpwrapper.extract
$(STATEDIR)/tcpwrapper.extract: $(STATEDIR)/tcpwrapper.get
@$(call targetinfo, tcpwrapper.extract)
+ @$(call clean, $(TCPWRAPPER_DIR))
$(TCPWRAPPER_EXTRACT) $(TCPWRAPPER_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
cd $(TCPWRAPPER_DIR) && patch -p1 < $(TCPWRAPPER_PTXPATCH_SOURCE)
touch $@
@@ -62,7 +65,7 @@ $(STATEDIR)/tcpwrapper.extract: $(STATEDIR)/tcpwrapper.get
tcpwrapper_prepare: $(STATEDIR)/tcpwrapper.prepare
-$(STATEDIR)/tcpwrapper.prepare: $(STATEDIR)/tcpwrapper.extract
+$(STATEDIR)/tcpwrapper.prepare: $(STATEDIR)/virtual-xchain.install $(STATEDIR)/tcpwrapper.extract
@$(call targetinfo, tcpwrapper.prepare)
touch $@
@@ -72,9 +75,10 @@ $(STATEDIR)/tcpwrapper.prepare: $(STATEDIR)/tcpwrapper.extract
tcpwrapper_compile: $(STATEDIR)/tcpwrapper.compile
-TCPWRAPPER_ENVIRONMENT = CC=$(PTXCONF_GNU_TARGET)-gcc PATH=$(PTXCONF_PREFIX)/bin:$$PATH
+TCPWRAPPER_ENVIRONMENT = PATH=$(CROSS_PATH)
+TCPWRAPPER_MAKEVARS = $(CROSS_ENV)
-$(STATEDIR)/tcpwrapper.compile: $(STATEDIR)/tcpwrapper.prepare
+$(STATEDIR)/tcpwrapper.compile: $(STATEDIR)/tcpwrapper.prepare
@$(call targetinfo, tcpwrapper.compile)
$(TCPWRAPPER_ENVIRONMENT) make -C $(TCPWRAPPER_DIR) linux $(TCPWRAPPER_MAKEVARS)
touch $@
@@ -100,7 +104,7 @@ $(STATEDIR)/tcpwrapper.targetinstall: $(STATEDIR)/tcpwrapper.install
ifeq (y, $(PTXCONF_TCPWRAPPER_INSTALL_TCPD))
mkdir -p $(ROOTDIR)/usr/sbin
install $(TCPWRAPPER_DIR)/tcpd $(ROOTDIR)/usr/sbin
- $(CROSSSTRIP) -S $(ROOTDIR)/usr/sbin/tcpd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/usr/sbin/tcpd
endif
touch $@
diff --git a/rules/template b/rules/template
index 7fe4ac1e7..0f8a9bf0b 100644
--- a/rules/template
+++ b/rules/template
@@ -1,4 +1,5 @@
-# $Id: template,v 1.2 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $Id: template,v 1.3 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
diff --git a/rules/tinylogin.make b/rules/tinylogin.make
new file mode 100644
index 000000000..c2d0412ea
--- /dev/null
+++ b/rules/tinylogin.make
@@ -0,0 +1,113 @@
+# -*-makefile-*-
+# $Id: tinylogin.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_TINYLOGIN
+PACKAGES += tinylogin
+endif
+
+#
+# Paths and names
+#
+TINYLOGIN = tinylogin-1.4.tar.bz2
+TINYLOGIN_URL = http://tinylogin.busybox.net/downloads/$(TINYLOGIN).tar.bz2
+TINYLOGIN_SOURCE = $(SRCDIR)/$(TINYLOGIN).tar.bz2
+TINYLOGIN_DIR = $(BUILDDIR)/$(TINYLOGIN)
+TINYLOGIN_EXTRACT = bzip2 -dc
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+tinylogin_get: $(STATEDIR)/tinylogin.get
+
+tinylogin_get_deps = $(TINYLOGIN_SOURCE)
+
+$(STATEDIR)/tinylogin.get: $(tinylogin_get_deps)
+ @$(call targetinfo, tinylogin.get)
+ touch $@
+
+$(TINYLOGIN_SOURCE):
+ @$(call targetinfo, $(TINYLOGIN_SOURCE))
+ wget -P $(SRCDIR) $(PASSIVEFTP) $(TINYLOGIN_URL)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+tinylogin_extract: $(STATEDIR)/tinylogin.extract
+
+$(STATEDIR)/tinylogin.extract: $(STATEDIR)/tinylogin.get
+ @$(call targetinfo, tinylogin.extract)
+ $(TINYLOGIN_EXTRACT) $(TINYLOGIN_SOURCE) | tar -C $(BUILDDIR) -xf -
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+tinylogin_prepare: $(STATEDIR)/tinylogin.prepare
+
+TINYLOGIN_PATH = PATH=$(CROSS_PATH)
+TINYLOGIN_MAKEVARS = CROSS=$(PTXCONF_GNU_TARGET)-
+
+#
+# dependencies
+#
+tinylogin_prepare_deps = $(STATEDIR)/tinylogin.extract $(STATEDIR)/virtual-xchain.install
+
+$(STATEDIR)/tinylogin.prepare: $(tinylogin_prepare_deps)
+ @$(call targetinfo, tinylogin.prepare)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+tinylogin_compile: $(STATEDIR)/tinylogin.compile
+
+tinylogin_compile_deps = $(STATEDIR)/tinylogin.prepare
+
+$(STATEDIR)/tinylogin.compile: $(tinylogin_compile_deps)
+ @$(call targetinfo, tinylogin.compile)
+ $(TINYLOGIN_PATH) make -C $(TINYLOGIN_DIR) $(TINYLOGIN_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+tinylogin_install: $(STATEDIR)/tinylogin.install
+
+$(STATEDIR)/tinylogin.install: $(STATEDIR)/tinylogin.compile
+ @$(call targetinfo, tinylogin.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+tinylogin_targetinstall: $(STATEDIR)/tinylogin.targetinstall
+
+$(STATEDIR)/tinylogin.targetinstall: $(STATEDIR)/tinylogin.install
+ @$(call targetinfo, tinylogin.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+tinylogin_clean:
+ -rm -rf $(STATEDIR)/tinylogin*
+ -rm -rf $(TINYLOGIN_DIR)
+
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/u-boot-mkimage.make b/rules/u-boot-mkimage.make
index 73fbd3a4a..b770e2181 100644
--- a/rules/u-boot-mkimage.make
+++ b/rules/u-boot-mkimage.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: u-boot-mkimage.make,v 1.4 2003/06/16 12:05:16 bsp Exp $
+# $Id: u-boot-mkimage.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -11,7 +11,7 @@
#
# We provide this package
#
-PACKAGES += umkimage
+# PACKAGES += umkimage
#
# Paths and names
@@ -29,10 +29,11 @@ UMKIMAGE_EXTRACT = gzip -dc
umkimage_get: $(STATEDIR)/umkimage.get
$(STATEDIR)/umkimage.get: $(UMKIMAGE_SOURCE)
+ @$(call targetinfo, umkimage.get)
touch $@
$(UMKIMAGE_SOURCE):
- @$(call targetinfo, umkimage.get)
+ @$(call targetinfo, $(UMKIMAGE_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(UMKIMAGE_URL)
# ----------------------------------------------------------------------------
diff --git a/rules/uclibc.make b/rules/uclibc.make
new file mode 100644
index 000000000..d6e21810d
--- /dev/null
+++ b/rules/uclibc.make
@@ -0,0 +1,217 @@
+# -*-makefile-*-
+# $Id: uclibc.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_UCLIBC
+PACKAGES += uclibc
+endif
+
+#
+# Paths and names
+#
+ifdef PTXCONF_UCLIBC_0_9_19
+UCLIBC_VERSION = 0.9.19
+endif
+ifdef PTXCONF_UCLIBC_0_9_20
+UCLIBC_VERSION = 0.9.20
+endif
+
+UCLIBC_SUFFIX = tar.bz2
+UCLIBC = uClibc-$(UCLIBC_VERSION)
+UCLIBC_URL = http://www.uclibc.org/downloads/$(UCLIBC).$(UCLIBC_SUFFIX)
+UCLIBC_SOURCE = $(SRCDIR)/$(UCLIBC).$(UCLIBC_SUFFIX)
+UCLIBC_DIR = $(BUILDDIR)/$(UCLIBC)
+
+UCLIBC_CRIS_PATCH_SOURCE = $(SRCDIR)/$(UCLIBC)-mkb1.patch
+
+#
+# uClibc config file fixup
+#
+# for uClibc that gets installed on target
+#
+uclibc_fix_config = \
+ @$(call uclibx_fix_config_general, $(1))
+
+#
+#
+# uClibc config file fixup
+#
+# for uClibc that is used for the xchain
+#
+xchain_uclibc_fix_config = \
+ @$(call uclibc_fix_config_general, $(1))
+
+#
+#
+#
+uclibc_fix_config_general = \
+ perl -i -p -e 's,^(KERNEL_SOURCE=).*,$$1\"$(XCHAIN_KERNEL_BUILDDIR)\",' $(1); \
+ perl -i -p -e 's,^(SHARED_LIB_LOADER_PATH=).*,$$1"/lib",' $(1); \
+ perl -i -p -e 's,^(DEVEL_PREFIX=).*,$$1$(CROSS_LIB_DIR),' $(1); \
+ perl -i -p -e 's,^(SYSTEM_DEVEL_PREFIX=).*,$$1$(PTXCONF_PREFIX),' $(1); \
+ perl -i -p -e 's,^(DEVEL_TOOL_PREFIX=).*,$$1"\$$(DEVEL_PREFIX)",' $(1); \
+ perl -i -p -e 's/^(.*=)"(.*?)"(.*)"(.*)"/$$1"$$2$$3$$4"/' $(1); \
+ perl -i -p -e 's/^(.*=)"(.*?)"(.*)/$$1"$$2$$3"/' $(1)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+uclibc_get: $(STATEDIR)/uclibc.get
+
+uclibc_get_deps = $(UCLIBC_SOURCE)
+
+$(STATEDIR)/uclibc.get: $(uclibc_get_deps)
+ @$(call targetinfo, uclibc.get)
+ touch $@
+
+$(UCLIBC_SOURCE):
+ @$(call targetinfo, $(UCLIBC_SOURCE))
+ @$(call get, $(UCLIBC_URL))
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+uclibc_extract: $(STATEDIR)/uclibc.extract
+
+uclibc_extract_deps = $(STATEDIR)/uclibc.get
+
+$(STATEDIR)/uclibc.extract: $(uclibc_extract_deps)
+ @$(call targetinfo, uclibc.extract)
+ @$(call clean, $(UCLIBC_DIR))
+ @$(call extract, $(UCLIBC_SOURCE))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+uclibc_prepare: $(STATEDIR)/uclibc.prepare
+
+UCLIBC_PATH = PATH=$(CROSS_PATH)
+UCLIBC_MAKEVARS = CROSS=$(PTXCONF_GNU_TARGET)- HOSTCC=$(HOSTCC)
+
+#
+# dependencies
+#
+uclibc_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/uclibc.extract
+
+
+$(STATEDIR)/uclibc.prepare: $(uclibc_prepare_deps)
+ @$(call targetinfo, uclibc.prepare)
+
+ grep -e PTXCONF_UCLIBC_ .config > $(UCLIBC_DIR)/.config
+ perl -i -p -e 's/PTXCONF_UCLIBC_//g' $(UCLIBC_DIR)/.config
+ @$(call uclibc_fix_config, $(UCLIBC_DIR)/.config)
+
+ $(UCLIBC_PATH) make -C $(UCLIBC_DIR) oldconfig $(UCLIBC_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+uclibc_compile: $(STATEDIR)/uclibc.compile
+
+uclibc_compile_deps = $(STATEDIR)/uclibc.prepare
+
+$(STATEDIR)/uclibc.compile: $(uclibc_compile_deps)
+ @$(call targetinfo, uclibc.compile)
+ $(UCLIBC_PATH) make -C $(UCLIBC_DIR) $(UCLIBC_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+uclibc_install: $(STATEDIR)/uclibc.install
+
+$(STATEDIR)/uclibc.install:
+ @$(call targetinfo, uclibc.install)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+uclibc_targetinstall: $(STATEDIR)/uclibc.targetinstall
+
+$(STATEDIR)/uclibc.targetinstall: $(STATEDIR)/uclibc.compile
+ @$(call targetinfo, uclibc.targetinstall)
+ mkdir -p $(ROOTDIR)/lib
+
+ install $(UCLIBC_DIR)/lib/ld-uClibc-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/ld-uClibc-$(UCLIBC_VERSION).so
+ ln -sf ld-uClibc-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/ld-uClibc.so.0
+
+ install $(UCLIBC_DIR)/lib/libuClibc-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libuClibc-$(UCLIBC_VERSION).so
+ ln -sf libuClibc-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libc.so.0
+
+ifdef PTXCONF_UCLIBC_CRYPT
+ install $(UCLIBC_DIR)/lib/libcrypt-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libcrypt-$(UCLIBC_VERSION).so
+ ln -sf libcrypt-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libcrypt.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_DL
+ install $(UCLIBC_DIR)/lib/libdl-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libdl-$(UCLIBC_VERSION).so
+ ln -sf libdl-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libdl.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_M
+ install $(UCLIBC_DIR)/lib/libm-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libm-$(UCLIBC_VERSION).so
+ ln -sf libm-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libm.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_NSL
+ install $(UCLIBC_DIR)/lib/libnsl-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libnsl-$(UCLIBC_VERSION).so
+ ln -sf libnsl-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libnsl.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_PTHREAD
+ install $(UCLIBC_DIR)/lib/libpthread-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libpthread-$(UCLIBC_VERSION).so
+ ln -sf libpthread-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libpthread.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_RESOLV
+ install $(UCLIBC_DIR)/lib/libresolv-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libresolv-$(UCLIBC_VERSION).so
+ ln -sf libresolv-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libresolv.so.0
+endif
+
+ifdef PTXCONF_UCLIBC_UTIL
+ install $(UCLIBC_DIR)/lib/libutil-$(UCLIBC_VERSION).so \
+ $(ROOTDIR)/lib/libutil-$(UCLIBC_VERSION).so
+ ln -sf libutil-$(UCLIBC_VERSION).so $(ROOTDIR)/lib/libutil.so.0
+endif
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+uclibc_clean:
+ -rm -rf $(STATEDIR)/xchain-uclibc.extract
+ -rm -rf $(STATEDIR)/xchain-uclibc.prepare
+ -rm -rf $(STATEDIR)/xchain-uclibc.compile
+ -rm -rf $(STATEDIR)/uclibc*
+ -rm -rf $(UCLIBC_DIR)
+
+# vim: syntax=make
diff --git a/rules/utelnetd.make b/rules/utelnetd.make
index 555e9a130..d94c83819 100644
--- a/rules/utelnetd.make
+++ b/rules/utelnetd.make
@@ -1,4 +1,5 @@
-# $Id: utelnetd.make,v 1.4 2003/07/08 08:10:04 robert Exp $
+# -*-makefile-*-
+# $Id: utelnetd.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -30,10 +31,11 @@ UTELNETD_EXTRACT = gzip -dc
utelnetd_get: $(STATEDIR)/utelnetd.get
$(STATEDIR)/utelnetd.get: $(UTELNETD_SOURCE)
+ @$(call targetinfo, utelnetd.get)
touch $@
$(UTELNETD_SOURCE):
- @$(call targetinfo, utelnetd.get)
+ @$(call targetinfo, $(UTELNETD_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(UTELNETD_URL)
# ----------------------------------------------------------------------------
@@ -44,6 +46,7 @@ utelnetd_extract: $(STATEDIR)/utelnetd.extract
$(STATEDIR)/utelnetd.extract: $(STATEDIR)/utelnetd.get
@$(call targetinfo, utelnetd.extract)
+ @$(call clean, $(UTELNETS_DIR))
$(UTELNETD_EXTRACT) $(UTELNETD_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
touch $@
@@ -53,7 +56,7 @@ $(STATEDIR)/utelnetd.extract: $(STATEDIR)/utelnetd.get
utelnetd_prepare: $(STATEDIR)/utelnetd.prepare
-$(STATEDIR)/utelnetd.prepare: $(STATEDIR)/utelnetd.extract
+$(STATEDIR)/utelnetd.prepare: $(STATEDIR)/virtual-xchain.install $(STATEDIR)/utelnetd.extract
@$(call targetinfo, utelnetd.prepare)
touch $@
@@ -63,12 +66,8 @@ $(STATEDIR)/utelnetd.prepare: $(STATEDIR)/utelnetd.extract
utelnetd_compile: $(STATEDIR)/utelnetd.compile
-UTELNETD_ENVIRONMENT =
-UTELNETD_MAKEVARS =
-ifeq (y,$(PTXCONF_ARCH_ARM))
UTELNETD_ENVIRONMENT += PATH=$(PTXCONF_PREFIX)/bin:$$PATH
UTELNETD_MAKEVARS += CROSS=$(PTXCONF_GNU_TARGET)-
-endif
$(STATEDIR)/utelnetd.compile: $(STATEDIR)/utelnetd.prepare
@$(call targetinfo, utelnetd.compile)
@@ -95,7 +94,7 @@ $(STATEDIR)/utelnetd.targetinstall: $(STATEDIR)/utelnetd.install
@$(call targetinfo, utelnetd.targetinstall)
install -d $(ROOTDIR)/sbin/
install $(UTELNETD_DIR)/utelnetd $(ROOTDIR)/sbin/
- $(CROSSSTRIP) -S $(ROOTDIR)/sbin/utelnetd
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/sbin/utelnetd
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/xchain-binutils.make b/rules/xchain-binutils.make
index edafc3eb7..0eb9b111b 100644
--- a/rules/xchain-binutils.make
+++ b/rules/xchain-binutils.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: xchain-binutils.make,v 1.4 2003/06/16 12:05:16 bsp Exp $
+# $Id: xchain-binutils.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -9,20 +9,28 @@
#
#
-# We provide this package
-#
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-PACKAGES += xchain-binutils
-endif
-
-#
# Paths and names
#
-BINUTILS = binutils-2.11.2
+BINUTILS = binutils-2.13.2.1
BINUTILS_URL = ftp://ftp.gnu.org/pub/gnu/binutils/$(BINUTILS).tar.gz
BINUTILS_SOURCE = $(SRCDIR)/$(BINUTILS).tar.gz
BINUTILS_DIR = $(BUILDDIR)/$(BINUTILS)
-BINUTILS_EXTRACT = gzip -dc
+ifdef PTXCONF_ARCH_NOMMU
+BINUTILS = binutils-2.10
+BINUTILS_URL = ftp://ftp.gnu.org/pub/gnu/binutils/$(BINUTILS).tar.gz
+endif
+ifdef PTXCONF_ARCH_MIPS
+BINUTILS = binutils-2.14.90.0.4
+BINUTILS_URL = ftp://ftp.de.kernel.org/pub/linux/devel/binutils/$(BINUTILS).tar.gz
+endif
+ifdef PTXCONF_ARCH_PARISC
+BINUTILS = binutils-2.14.90.0.4
+BINUTILS_URL = ftp://ftp.de.kernel.org/pub/linux/devel/binutils/$(BINUTILS).tar.gz
+endif
+
+BINUTILS_NOMMU_PATCH = binutils-2.10-full.patch
+BINUTILS_NOMMU_PATCH_URL = http://www.uclinux.org/pub/uClinux/m68k-elf-tools/tools-20030314/$(BINUTILS_NOMMU_PATCH)
+BINUTILS_NOMMU_PATCH_SOURCE = $(SRCDIR)/$(BINUTILS_NOMMU_PATCH)
# ----------------------------------------------------------------------------
# Get
@@ -30,12 +38,22 @@ BINUTILS_EXTRACT = gzip -dc
xchain-binutils_get: $(STATEDIR)/xchain-binutils.get
-$(STATEDIR)/xchain-binutils.get: $(BINUTILS_SOURCE)
+binutils_get_deps = $(BINUTILS_SOURCE)
+ifdef PTXCONF_ARCH_ARM_NOMMU
+binutils_get_deps += $(BINUTILS_NOMMU_PATCH_SOURCE)
+endif
+
+$(STATEDIR)/xchain-binutils.get: $(binutils_get_deps)
+ @$(call targetinfo, xchain-binutils.get)
touch $@
$(BINUTILS_SOURCE):
- @$(call targetinfo, xchain-binutils.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(BINUTILS_URL)
+ @$(call targetinfo, $(BINUTILS_SOURCE))
+ @$(call get, $(BINUTILS_URL))
+
+$(BINUTILS_NOMMU_PATCH_SOURCE):
+ @$(call targetinfo, $(BINUTILS_NOMMU_PATCH_SOURCE))
+ @$(call get, $(BINUTILS_NOMMU_PATCH_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -45,7 +63,36 @@ xchain-binutils_extract: $(STATEDIR)/xchain-binutils.extract
$(STATEDIR)/xchain-binutils.extract: $(STATEDIR)/xchain-binutils.get
@$(call targetinfo, xchain-binutils.extract)
- $(BINUTILS_EXTRACT) $(BINUTILS_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
+ @$(call clean, $(BINUTILS_DIR))
+ @$(call extract, $(BINUTILS_SOURCE))
+
+#
+# sto^H^H^Hinspired by Erik Andersen's buildroot
+#
+
+#
+# Enable combreloc, since it is such a nice thing to have...
+#
+ perl -i -p -e "s,link_info.combreloc = false,link_info.combreloc = true,g;" $(BINUTILS_DIR)/ld/ldmain.c
+
+#
+# Hack binutils to use the correct shared lib loader
+#
+ cd $(BINUTILS_DIR) && \
+ perl -i -p -e "s,#.*define.*ELF_DYNAMIC_INTERPRETER.*\".*\",#define ELF_DYNAMIC_INTERPRETER \"$(DYNAMIC_LINKER)\",;" \
+ `grep -lr "#define ELF_DYNAMIC_INTERPRETER" $(BINUTILS_DIR)`
+
+#
+# Hack binutils to prevent it from searching the host system
+# for libraries. We only want libraries for the target system.
+#
+ cd $(BINUTILS_DIR) && \
+ perl -i -p -e "s,^NATIVE_LIB_DIRS.*,NATIVE_LIB_DIRS='$(CROSS_LIB_DIR)/usr/lib $(CROSS_LIB_DIR)/lib',;" \
+ $(BINUTILS_DIR)/ld/configure.host
+
+ifdef PTXCONF_ARCH_ARM_NOMMU
+ cd $(BINUTILS_DIR) && patch -p1 < $(BINUTILS_NOMMU_PATCH_SOURCE)
+endif
touch $@
# ----------------------------------------------------------------------------
@@ -54,14 +101,30 @@ $(STATEDIR)/xchain-binutils.extract: $(STATEDIR)/xchain-binutils.get
xchain-binutils_prepare: $(STATEDIR)/xchain-binutils.prepare
+XCHAIN_BINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET)
+ifdef PTXCONF_ARCH_MIPS
+XCHAIN_BINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET),mips64-linux
+endif
+ifdef PTXCONF_OPT_PA8X00
+XCHAIN_BINUTILS_AUTOCONF_TARGET = --enable-targets=$(PTXCONF_GNU_TARGET),hppa64-linux
+endif
+
+XCHAIN_BINUTILS_AUTOCONF = \
+ --target=$(PTXCONF_GNU_TARGET) \
+ --host=$(GNU_HOST) \
+ --build=$(GNU_HOST) \
+ --prefix=$(PTXCONF_PREFIX) \
+ --disable-nls \
+ --disable-shared \
+ --enable-multilib \
+ $(XCHAIN_BINUTILS_AUTOCONF_TARGET)
+
+XCHAIN_BINUTILS_ENV = $(HOSTCC_ENV)
+
$(STATEDIR)/xchain-binutils.prepare: $(STATEDIR)/xchain-binutils.extract
@$(call targetinfo, xchain-binutils.prepare)
- cd $(BINUTILS_DIR) && \
- ./configure \
- --disable-shared \
- --target=$(PTXCONF_GNU_TARGET) \
- --prefix=$(PTXCONF_PREFIX) \
- --enable-targets=$(PTXCONF_GNU_TARGET)
+ cd $(BINUTILS_DIR) && $(XCHAIN_BINUTILS_ENV) \
+ ./configure $(XCHAIN_BINUTILS_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -72,7 +135,7 @@ xchain-binutils_compile: $(STATEDIR)/xchain-binutils.compile
$(STATEDIR)/xchain-binutils.compile: $(STATEDIR)/xchain-binutils.prepare
@$(call targetinfo, xchain-binutils.compile)
- cd $(BINUTILS_DIR) && make
+ make -C $(BINUTILS_DIR)
touch $@
# ----------------------------------------------------------------------------
@@ -83,11 +146,7 @@ xchain-binutils_install: $(STATEDIR)/xchain-binutils.install
$(STATEDIR)/xchain-binutils.install: $(STATEDIR)/xchain-binutils.compile
@$(call targetinfo, xchain-binutils.install)
-# [ -d $(PTXCONF_PREFIX) ] || \
-# $(SUDO) install -g users -m 0755 \
-# -o $(PTXUSER) \
-# -d $(PTXCONF_PREFIX)
- cd $(BINUTILS_DIR) && make install
+ make install -C $(BINUTILS_DIR)
touch $@
# ----------------------------------------------------------------------------
diff --git a/rules/xchain-gccstage1.make b/rules/xchain-gccstage1.make
index fd09240cb..405c86ab3 100644
--- a/rules/xchain-gccstage1.make
+++ b/rules/xchain-gccstage1.make
@@ -1,4 +1,5 @@
-# $Id: xchain-gccstage1.make,v 1.4 2003/06/29 13:27:36 robert Exp $
+# -*-makefile-*-
+# $Id: xchain-gccstage1.make,v 1.5 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002,2003 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -10,22 +11,23 @@
#
# We provide this package
#
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-PACKAGES += xchain-gccstage1
+
+ifdef PTXCONF_GCC_2_95_3
+GCC_VERSION = 2.95.3
+endif
+ifdef PTXCONF_GCC_3_2_3
+GCC_VERSION = 3.2.3
endif
#
# Paths and names
-#
GCC_PREFIX = $(PTXCONF_GNU_TARGET)-
-
-GCC = gcc-2.95.3
+GCC = gcc-$(GCC_VERSION)
GCC_URL = ftp://ftp.gnu.org/pub/gnu/gcc/$(GCC).tar.gz
GCC_SOURCE = $(SRCDIR)/$(GCC).tar.gz
GCC_DIR = $(BUILDDIR)/$(GCC)
GCC_STAGE1_DIR = $(BUILDDIR)/$(GCC)-$(GCC_PREFIX)stage1
GCC_STAGE2_DIR = $(BUILDDIR)/$(GCC)-$(GCC_PREFIX)stage2
-GCC_EXTRACT = gzip -dc
GCC_ARMPATCH = gcc-2.95.3.diff
GCC_ARMPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/src-2.95.3/$(GCC_ARMPATCH).bz2
@@ -33,6 +35,18 @@ GCC_ARMPATCH_SOURCE = $(SRCDIR)/$(GCC_ARMPATCH).bz2
GCC_ARMPATCH_DIR = $(GCC_DIR)
GCC_ARMPATCH_EXTRACT = bzip2 -dc
+GCC_PATCH = gcc-2.95.3-2.patch
+GCC_PATCH_URL = ftp://igwe.vub.ac.be/pub/linux/lfs/lfs-packages/3.3/$(GCC_PATCH).bz2
+GCC_PATCH_SOURCE = $(SRCDIR)/$(GCC_PATCH).bz2
+GCC_PATCH_DIR = $(GCC_DIR)
+GCC_PATCH_EXTRACT = bzip2 -dc
+
+GCC_PPCPATCH = gcc-3.2.3-ppc-mkb1.patch
+GCC_PPCPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GCC_PPCPATCH)
+GCC_PPCPATCH_SOURCE = $(SRCDIR)/$(GCC_PPCPATCH)
+GCC_PPCPATCH_DIR = $(GCC_DIR)
+GCC_PPCPATCH_EXTRACT = cat
+
# ----------------------------------------------------------------------------
# Get
# ----------------------------------------------------------------------------
@@ -40,18 +54,35 @@ GCC_ARMPATCH_EXTRACT = bzip2 -dc
xchain-gccstage1_get: $(STATEDIR)/xchain-gccstage1.get
xchain-gccstage1_get_deps = $(GCC_SOURCE)
-ifeq (y,$(PTXCONF_ARCH_ARM))
+ifdef PTXCONF_GCC_2_95_3
+xchain-gccstage1_get_deps += $(GCC_PATCH_SOURCE)
+endif
+ifdef PTXCONF_ARCH_ARM
xchain-gccstage1_get_deps += $(GCC_ARMPATCH_SOURCE)
endif
+ifdef PTXCONF_ARCH_PPC
+xchain-gccstage1_get_deps += $(GCC_PPCPATCH_SOURCE)
+endif
$(STATEDIR)/xchain-gccstage1.get: $(xchain-gccstage1_get_deps)
+ @$(call targetinfo, xchain-gccstage1.get)
touch $@
$(GCC_SOURCE):
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GCC_URL)
+ @$(call targetinfo, $(GCC_SOURCE))
+ @$(call get, $(GCC_URL))
+
+$(GCC_PATCH_SOURCE):
+ @$(call targetinfo, $(GCC_PATCH_SOURCE))
+ @$(call get, $(GCC_PATCH_URL))
$(GCC_ARMPATCH_SOURCE):
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GCC_ARMPATCH_URL)
+ @$(call targetinfo, $(GCC_ARMPATCH_SOURCE))
+ @$(call get, $(GCC_ARMPATCH_URL))
+
+$(GCC_PPCPATCH_SOURCE):
+ @$(call targetinfo, $(GCC_PPCPATCH_SOURCE))
+ @$(call get, $(GCC_PPCPATCH_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -59,29 +90,121 @@ $(GCC_ARMPATCH_SOURCE):
xchain-gccstage1_extract: $(STATEDIR)/xchain-gccstage1.extract
-$(STATEDIR)/xchain-gccstage1.extract: $(STATEDIR)/xchain-gccstage1.get
+xchain-gccstage1_extract_deps = $(STATEDIR)/xchain-gccstage1.get
+
+$(STATEDIR)/xchain-gccstage1.extract: $(xchain-gccstage1_extract_deps)
@$(call targetinfo, xchain-gccstage1.extract)
- $(GCC_EXTRACT) $(GCC_SOURCE) | tar -C $(BUILDDIR) -xf -
- #
- ifeq (y, $(PTXCONF_ARCH_ARM))
+ @$(call clean, $(GCC_DIR))
+
+ @$(call extract, $(GCC_SOURCE))
+
+ ifdef PTXCONF_GCC_2_95_3
+ ifdef PTXCONF_ARCH_ARM
#
- # ARM: add architecure patch; fake headers
+ # ARM: add architecure patch
#
- cd $(GCC_DIR) && \
+ cd $(GCC_DIR) && \
$(GCC_ARMPATCH_EXTRACT) $(GCC_ARMPATCH_SOURCE) | patch -p1
- perl -i -p -e \
- 's/^(TARGET_LIBGCC2_CFLAGS.*)/$$1 -Dinhibit_libc -D__gthr_posix_h/' \
- $(GCC_DIR)/gcc/config/arm/t-linux
+# else #PTXCONF_ARCH_ARM
+ cd $(GCC_DIR) && \
+ $(GCC_PATCH_EXTRACT) $(GCC_PATCH_SOURCE) | patch -p1
+ endif #PTXCONF_ARCH_ARM
+ endif #PTXCONF_GCC_2_95_3
+
+
+ ifdef PTXCONF_GCC_3_2_3
+ ifdef PTXCONF_ARCH_PPC
+ cd $(GCC_DIR) && \
+ $(GCC_PPCPATCH_EXTRACT) $(GCC_PPCPATCH_SOURCE) | patch -p1
endif
- #
- ifeq (y, $(PTXCONF_ARCH_X86))
- #
- # x86: fake headers
- #
- perl -i -p -e \
- 's/^(TARGET_LIBGCC2_CFLAGS.*)/$$1 -Dinhibit_libc -D__gthr_posix_h/' \
- $(GCC_DIR)/gcc/config/t-linux
- endif
+ endif
+
+#
+# sto^H^H^Hinspired by Erik Andersen's buildroot
+#
+
+#
+# Hack things to use the correct shared lib loader
+#
+ cd $(GCC_DIR) && \
+ export LIST=`grep -lr -- "-dynamic-linker.*\.so[\.0-9]*" *` && \
+ if [ -n "$$LIST" ] ; then \
+ perl -i -p -e "s,-dynamic-linker.*\.so[\.0-9]*},-dynamic-linker $(DYNAMIC_LINKER)},;" $$LIST; \
+ fi;
+
+#
+# Prevent system glibc start files from leaking in uninvited...
+#
+ perl -i -p -e "s,standard_startfile_prefix_1 = \".*,standard_startfile_prefix_1 =\"$(CROSS_LIB_DIR)/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
+ perl -i -p -e "s,standard_startfile_prefix_2 = \".*,standard_startfile_prefix_2 =\"$(CROSS_LIB_DIR)/usr/lib/\";,;" $(GCC_DIR)/gcc/gcc.c;
+
+#
+# Prevent system glibc include files from leaking in uninvited...
+#
+ perl -i -p -e "s,^NATIVE_SYSTEM_HEADER_DIR.*,NATIVE_SYSTEM_HEADER_DIR=$(CROSS_LIB_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+ perl -i -p -e "s,^CROSS_SYSTEM_HEADER_DIR.*,CROSS_SYSTEM_HEADER_DIR=$(CROSS_LIB_DIR)/include,;" $(GCC_DIR)/gcc/Makefile.in;
+ cd $(GCC_DIR) && \
+ export LIST=`grep -lr -- "define STANDARD_INCLUDE_DIR" *` && \
+ if [ -n "$$LIST" ] ; then \
+ perl -i -p -e "s,^#\s*define.*STANDARD_INCLUDE_DIR.*,#define STANDARD_INCLUDE_DIR \"$(CROSS_LIB_DIR)/include\",;" $$LIST; \
+ fi;
+
+#
+# Prevent system glibc libraries from being found by collect2
+# when it calls locatelib() and rummages about the system looking
+# for libraries with the correct name...
+#
+ perl -i -p -e "s,\"/lib,\"$(CROSS_LIB_DIR)/lib,g;" $(GCC_DIR)/gcc/collect2.c
+ perl -i -p -e "s,\"/usr/,\"$(CROSS_LIB_DIR)/usr/,g;" $(GCC_DIR)/gcc/collect2.c
+
+
+ifdef PTXCONF_UCLIBC
+#
+# Prevent gcc from using the unwind-dw2-fde-glibc code
+#
+ perl -i -p -e "s,^#ifndef inhibit_libc,#define inhibit_libc\n#ifndef inhibit_libc,g;" $(GCC_DIR)/gcc/unwind-dw2-fde-glibc.c;
+endif
+
+
+ifdef PTXCONF_UCLIBC
+ifdef PTXCONF_GCC_2_95_3
+#
+# Use atexit() directly, rather than cxa_atexit
+#
+ perl -i -p -e "s,int flag_use_cxa_atexit = 1;,int flag_use_cxa_atexit = 0;,g;"\
+ $(GCC_DIR)/gcc/cp/decl2.c;
+#
+# We do not wish to build the libstdc++ library provided with gcc,
+# since it doesn't seem to work at all with uClibc plus gcc 2.95...
+#
+ mv $(GCC_DIR)/libstdc++ $(GCC_DIR)/libstdc++.orig
+ mv $(GCC_DIR)/libio $(GCC_DIR)/libio.orig
+endif # PTXCONFIG_GCC_2_95_3
+
+ifdef PTXCONF_GCC_3_2_3
+#
+# Hack up the soname for libstdc++
+#
+ perl -i -p -e "s,\.so\.1,.so.0.9.9,g;" $(GCC_DIR)/gcc/config/t-slibgcc-elf-ver;
+ perl -i -p -e "s,-version-info.*[0-9]:[0-9]:[0-9],-version-info 9:9:0,g;" \
+ $(GCC_DIR)/libstdc++-v3/src/Makefile.am $(GCC_DIR)/libstdc++-v3/src/Makefile.in;
+ perl -i -p -e "s,3\.0\.0,9.9.0,g;" $(GCC_DIR)/libstdc++-v3/acinclude.m4 \
+ $(GCC_DIR)/libstdc++-v3/aclocal.m4 $(GCC_DIR)/libstdc++-v3/configure;
+#
+# For now, we don't support locale-ified ctype (we will soon),
+# so bypass that problem for now...
+#
+ perl -i -p -e "s,defined.*_GLIBCPP_USE_C99.*,1,g;" \
+ $(GCC_DIR)/libstdc++-v3/config/locale/generic/c_locale.cc;
+ cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_base.h \
+ $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
+ cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_inline.h \
+ $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
+ cp $(GCC_DIR)/libstdc++-v3/config/os/generic/bits/ctype_noninline.h \
+ $(GCC_DIR)/libstdc++-v3/config/os/gnu-linux/bits/
+
+endif # PTXCONF_GCC_3_2_3
+endif # PTXCON_UCLIBC
touch $@
# ----------------------------------------------------------------------------
@@ -94,25 +217,30 @@ xchain-gccstage1_prepare_deps = $(STATEDIR)/xchain-binutils.install
xchain-gccstage1_prepare_deps += $(STATEDIR)/xchain-gccstage1.extract
xchain-gccstage1_prepare_deps += $(STATEDIR)/xchain-kernel.install
+GCC_STAGE1_PATH = PATH=$(CROSS_PATH)
+GCC_STAGE1_ENV = $(HOSTCC_ENV)
+
+GCC_STAGE1_AUTOCONF = \
+ --target=$(PTXCONF_GNU_TARGET) \
+ --host=$(GNU_HOST) \
+ --build=$(GNU_HOST) \
+ --prefix=$(PTXCONF_PREFIX) \
+ --disable-nls \
+ --disable-shared \
+ --enable-multilib \
+ --enable-target-optspace \
+ --disable-threads \
+ --with-gnu-ld \
+ --enable-languages=c
+
$(STATEDIR)/xchain-gccstage1.prepare: $(xchain-gccstage1_prepare_deps)
@$(call targetinfo, xchain-gccstage1.prepare)
- mkdir -p $(GCC_STAGE1_DIR)
- #
- # configure
- #
+ @$(call clean, $(GCC_STAGE1_DIR))
+ [ -d $(GCC_STAGE1_DIR) ] || mkdir -p $(GCC_STAGE1_DIR)
+
cd $(GCC_STAGE1_DIR) && \
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH \
- AR=$(PTXCONF_GNU_TARGET)-ar \
- RANLIB=$(PTXCONF_GNU_TARGET)-ranlib \
- CC=$(HOSTCC) \
- $(GCC_DIR)/configure \
- --target=$(PTXCONF_GNU_TARGET) \
- --prefix=$(PTXCONF_PREFIX) \
- --enable-target-optspace \
- --disable-nls \
- --with-gnu-ld \
- --disable-shared \
- --enable-languages=c
+ $(GCC_STAGE1_PATH) $(GCC_STAGE1_ENV) \
+ $(GCC_DIR)/configure $(GCC_STAGE1_AUTOCONF)
touch $@
# ----------------------------------------------------------------------------
@@ -121,11 +249,21 @@ $(STATEDIR)/xchain-gccstage1.prepare: $(xchain-gccstage1_prepare_deps)
xchain-gccstage1_compile: $(STATEDIR)/xchain-gccstage1.compile
-$(STATEDIR)/xchain-gccstage1.compile: \
- $(STATEDIR)/xchain-gccstage1.prepare
+$(STATEDIR)/xchain-gccstage1.compile: $(STATEDIR)/xchain-gccstage1.prepare
@$(call targetinfo, xchain-gccstage1.compile)
- cd $(GCC_STAGE1_DIR) && \
- PATH=$(PATH):$(PTXCONF_PREFIX)/bin make
+ ifdef PTXCONF_GCC_2_95_3
+ cd $(GCC_STAGE1_DIR) && \
+ $(GCC_STAGE1_PATH) \
+ make MAKE="make TARGET_LIBGCC2_CFLAGS='-Dinhibit_libc -D__gthr_posix_h'"
+ else
+#
+# -DSTAGE1 is a switch for the PPC platfrom
+# it makes some modification active needed only for stage 1
+#
+ cd $(GCC_STAGE1_DIR) && \
+ $(GCC_STAGE1_PATH) \
+ make MAKE="make TARGET_LIBGCC2_CFLAGS='-Dinhibit_libc -DSTAGE1'"
+ endif
touch $@
# ----------------------------------------------------------------------------
@@ -136,8 +274,9 @@ xchain-gccstage1_install: $(STATEDIR)/xchain-gccstage1.install
$(STATEDIR)/xchain-gccstage1.install: $(STATEDIR)/xchain-gccstage1.compile
@$(call targetinfo, xchain-gccstage1.install)
- cd $(GCC_STAGE1_DIR) && \
- PATH=$(PATH):$(PTXCONF_PREFIX)/bin make install
+ cd $(GCC_STAGE1_DIR) && \
+ $(GCC_STAGE1_PATH) $(GCC_STAGE1_ENV) \
+ make install
touch $@
# ----------------------------------------------------------------------------
@@ -146,7 +285,7 @@ $(STATEDIR)/xchain-gccstage1.install: $(STATEDIR)/xchain-gccstage1.compile
xchain-gccstage1_targetinstall: $(STATEDIR)/xchain-gccstage1.targetinstall
-$(STATEDIR)/xchain-gccstage1.targetinstall: $(STATEDIR)/xchain-gccstage1.install
+$(STATEDIR)/xchain-gccstage1.targetinstall:
@$(call targetinfo, xchain-gccstage1.targetinstall)
touch $@
@@ -155,7 +294,9 @@ $(STATEDIR)/xchain-gccstage1.targetinstall: $(STATEDIR)/xchain-gccstage1.install
# ----------------------------------------------------------------------------
xchain-gccstage1_clean:
- rm -fr $(GCC_STAGE1_DIR) $(STATEDIR)/xchain-gccstage1.* $(GCC_DIR)
+ rm -fr $(GCC_STAGE1_DIR)
+ rm -fr $(STATEDIR)/xchain-gccstage1.*
+ rm -fr $(GCC_DIR)
# vim: syntax=make
diff --git a/rules/xchain-gccstage2.make b/rules/xchain-gccstage2.make
index 4685efa9d..77f8fe822 100644
--- a/rules/xchain-gccstage2.make
+++ b/rules/xchain-gccstage2.make
@@ -1,4 +1,5 @@
-# $Id: xchain-gccstage2.make,v 1.5 2003/06/29 13:27:36 robert Exp $
+# -*-makefile-*-
+# $Id: xchain-gccstage2.make,v 1.6 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -8,13 +9,6 @@
#
#
-# We provide this package
-#
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-PACKAGES += xchain-gccstage2
-endif
-
-#
# Paths and names
#
# See gccstage1 for variable definitions
@@ -24,10 +18,9 @@ endif
# Get
# ----------------------------------------------------------------------------
-# FIXME: ??? xchain-gccstage2_get: $(STATEDIR)/glibc.install
xchain-gccstage2_get: $(STATEDIR)/xchain-gccstage2.get
-$(STATEDIR)/xchain-gccstage2.get: $(STATEDIR)/xchain-gccstage1.get
+$(STATEDIR)/xchain-gccstage2.get: $(xchain-gccstate1_get_deps)
@$(call targetinfo, xchain-gccstage2.get)
touch $@
@@ -37,21 +30,8 @@ $(STATEDIR)/xchain-gccstage2.get: $(STATEDIR)/xchain-gccstage1.get
xchain-gccstage2_extract: $(STATEDIR)/xchain-gccstage2.extract
-$(STATEDIR)/xchain-gccstage2.extract: \
- $(STATEDIR)/xchain-gccstage2.get \
- $(STATEDIR)/glibc.install
+$(STATEDIR)/xchain-gccstage2.extract: $(xchain-gccstage1_extract_deps)
@$(call targetinfo, xchain-gccstage2.extract)
- # remove glibc header hack
- ifeq (y, $(PTXCONF_ARCH_ARM))
- perl -p -i -e \
- 's/^(TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC).*/$$1/' \
- $(GCC_DIR)/gcc/config/arm/t-linux
- endif
- ifeq (y, $(PTXCONF_ARCH_X86))
- perl -p -i -e \
- 's/^(TARGET_LIBGCC2_CFLAGS = -fPIC).*/$$1/' \
- $(GCC_DIR)/gcc/config/t-linux
- endif
touch $@
# ----------------------------------------------------------------------------
@@ -60,34 +40,47 @@ $(STATEDIR)/xchain-gccstage2.extract: \
xchain-gccstage2_prepare: $(STATEDIR)/xchain-gccstage2.prepare
-GCC_STAGE2_AUTOCONF = --target=$(PTXCONF_GNU_TARGET)
-GCC_STAGE2_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
-GCC_STAGE2_AUTOCONF += --enable-target-optspace
-GCC_STAGE2_AUTOCONF += --disable-nls
-GCC_STAGE2_AUTOCONF += --with-gnu-ld
-GCC_STAGE2_AUTOCONF += --disable-shared
-GCC_STAGE2_AUTOCONF += --enable-languages="c,c++"
-GCC_STAGE2_AUTOCONF += --with-headers=$(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)/include
-ifeq (y, $(PTXCONF_GLIBC_PTHREADS))
-GCC_STAGE2_AUTOCONF += --enable-threads=posix
-else
-GCC_STAGE2_AUTOCONF += --disable-threads
+xchain-gccstage2_prepare_deps = $(STATEDIR)/xchain-gccstage2.extract
+ifdef PTXCONF_GLIBC
+xchain-gccstage2_prepare_deps += $(STATEDIR)/xchain-glibc.install
+endif
+ifdef PTXCONF_UCLIBC
+xchain-gccstage2_prepare_deps += $(STATEDIR)/xchain-uclibc.install
+endif
+
+GCC_STAGE2_PATH = PATH=$(CROSS_PATH)
+GCC_STAGE2_ENV = $(HOSTCC_ENV)
+
+GCC_STAGE2_AUTOCONF_THREADS = --disable-threads
+ifdef PTXCONF_GLIBC_PTHREADS
+GCC_STAGE2_AUTOCONF_THREADS = --enable-threads=posix
+endif
+ifdef PTXCONF_UCLIBC_UCLIBC_HAS_THREADS
+GCC_STAGE2_AUTOCONF_THREADS = --enable-threads=posix
endif
-xchain-gccstage2_prepare_deps = $(STATEDIR)/xchain-gccstage2.extract
-xchain-gccstage2_prepare_deps += $(STATEDIR)/xchain-kernel.prepare
+GCC_STAGE2_AUTOCONF = \
+ --target=$(PTXCONF_GNU_TARGET) \
+ --host=$(GNU_HOST) \
+ --build=$(GNU_HOST) \
+ --prefix=$(PTXCONF_PREFIX) \
+ --disable-nls \
+ --disable-shared \
+ --enable-multilib \
+ --enable-target-optspace \
+ --disable-threads \
+ --with-gnu-ld \
+ --enable-languages="c,c++" \
+ --with-headers=$(CROSS_LIB_DIR)/include \
+ $(GCC_STAGE2_AUTOCONF_THREADS)
$(STATEDIR)/xchain-gccstage2.prepare: $(xchain-gccstage2_prepare_deps)
@$(call targetinfo, xchain-gccstage2.prepare)
- [ -d $(GCC_STAGE2_DIR) ] || mkdir $(GCC_STAGE2_DIR)
-# #
-# # configure
-# #
- cd $(GCC_STAGE2_DIR) && \
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH \
- AR=$(PTXCONF_GNU_TARGET)-ar \
- RANLIB=$(PTXCONF_GNU_TARGET)-ranlib \
- CC=$(HOSTCC) \
+ @$(call clean, $(GCC_STAGE2_DIR))
+ [ -d $(GCC_STAGE2_DIR) ] || mkdir -p $(GCC_STAGE2_DIR)
+
+ cd $(GCC_STAGE2_DIR) && \
+ $(GCC_STAGE2_PATH) $(GCC_STAGE2_ENV) \
$(GCC_DIR)/configure $(GCC_STAGE2_AUTOCONF)
touch $@
@@ -100,10 +93,11 @@ xchain-gccstage2_compile: $(STATEDIR)/xchain-gccstage2.compile
$(STATEDIR)/xchain-gccstage2.compile: \
$(STATEDIR)/xchain-gccstage2.prepare
@$(call targetinfo, xchain-gccstage2.compile)
- # FIXME: why do we have to define _GNU_SOURCE here? Otherwhise
- # the c++ compiler cannot be compiled.
+# # FIXME: why do we have to define _GNU_SOURCE here? Otherwhise
+# # the c++ compiler cannot be compiled.
cd $(GCC_STAGE2_DIR) && \
- PATH=$(PATH):$(PTXCONF_PREFIX)/bin make CXXFLAGS_FOR_TARGET="-D_GNU_SOURCE"
+ $(GCC_STAGE2_PATH) $(GCC_STAGE2_ENV) \
+ make CXXFLAGS_FOR_TARGET="-D_GNU_SOURCE"
touch $@
# ----------------------------------------------------------------------------
@@ -115,7 +109,8 @@ xchain-gccstage2_install: $(STATEDIR)/xchain-gccstage2.install
$(STATEDIR)/xchain-gccstage2.install: $(STATEDIR)/xchain-gccstage2.compile
@$(call targetinfo, xchain-gccstage2.install)
cd $(GCC_STAGE2_DIR) && \
- PATH=$(PATH):$(PTXCONF_PREFIX)/bin make install
+ $(GCC_STAGE2_PATH) $(GCC_STAGE2_ENV) \
+ make install
touch $@
# ----------------------------------------------------------------------------
@@ -124,7 +119,7 @@ $(STATEDIR)/xchain-gccstage2.install: $(STATEDIR)/xchain-gccstage2.compile
xchain-gccstage2_targetinstall: $(STATEDIR)/xchain-gccstage2.targetinstall
-$(STATEDIR)/xchain-gccstage2.targetinstall: $(STATEDIR)/xchain-gccstage2.install
+$(STATEDIR)/xchain-gccstage2.targetinstall:
@$(call targetinfo, xchain-gccstage2.targetinstall)
touch $@
diff --git a/rules/xchain-gdb.make b/rules/xchain-gdb.make
index f5577a1b5..42c48c868 100644
--- a/rules/xchain-gdb.make
+++ b/rules/xchain-gdb.make
@@ -1,5 +1,5 @@
# -*-makefile-*-
-# $Id: xchain-gdb.make,v 1.3 2003/06/30 15:43:26 bsp Exp $
+# $Id: xchain-gdb.make,v 1.4 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Auerswald GmbH & Co. KG, Schandelah, Germany
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
@@ -21,7 +21,7 @@ endif
#
GDB = gdb-5.3
GDB_URL = ftp://ftp.gnu.org/pub/gnu/gdb/$(GDB).tar.gz
-GDB_SOURCE = $(SRCDIR)/$(GDB).tar.gz
+GDB_SOURCE = $(SRCDIR)/$(GDB).tar.gz
GDB_DIR = $(BUILDDIR)/$(GDB)
GDB_EXTRACT = gzip -dc
@@ -32,10 +32,11 @@ GDB_EXTRACT = gzip -dc
xchain-gdb_get: $(STATEDIR)/xchain-gdb.get
$(STATEDIR)/xchain-gdb.get: $(GDB_SOURCE)
+ @$(call targetinfo, xchain-gdb.get)
touch $@
$(GDB_SOURCE):
- @$(call targetinfo, xchain-gdb.get)
+ @$(call targetinfo, $(GDB_SOURCE))
wget -P $(SRCDIR) $(PASSIVEFTP) $(GDB_URL)
# ----------------------------------------------------------------------------
@@ -46,6 +47,7 @@ xchain-gdb_extract: $(STATEDIR)/xchain-gdb.extract
$(STATEDIR)/xchain-gdb.extract: $(STATEDIR)/xchain-gdb.get
@$(call targetinfo, xchain-gdb.extract)
+ @$(call clean, $(GDB_DIR))
$(GDB_EXTRACT) $(GDB_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
touch $@
@@ -93,10 +95,6 @@ xchain-gdb_install: $(STATEDIR)/xchain-gdb.install
$(STATEDIR)/xchain-gdb.install: $(STATEDIR)/xchain-gdb.compile
@$(call targetinfo, xchain-gdb.install)
-# [ -d $(PTXCONF_PREFIX) ] || \
-# $(SUDO) install -g users -m 0755 \
-# -o $(PTXUSER) \
-# -d $(PTXCONF_PREFIX)
cd $(GDB_DIR) && make install
touch $@
@@ -109,8 +107,8 @@ xchain-gdb_targetinstall: $(STATEDIR)/xchain-gdb.targetinstall
$(STATEDIR)/xchain-gdb.targetinstall: $(STATEDIR)/xchain-gdb.install
@$(call targetinfo, xchain-gdb.targetinstall)
ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN_GDBSERVER))
- $(CROSSSTRIP) -S $(GDB_DIR)/gdb/gdbserver/gdbserver
cp $(GDB_DIR)/gdb/gdbserver/gdbserver $(ROOTDIR)/bin
+ $(CROSSSTRIP) -R .notes -R .comment $(ROOTDIR)/bin/gdbserver
endif
touch $@
diff --git a/rules/xchain-glibc.make b/rules/xchain-glibc.make
index 721a36d63..453a68018 100644
--- a/rules/xchain-glibc.make
+++ b/rules/xchain-glibc.make
@@ -1,4 +1,5 @@
-# $Id: xchain-glibc.make,v 1.8 2003/06/29 13:27:36 robert Exp $
+# -*-makefile-*-
+# $Id: xchain-glibc.make,v 1.9 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2003 by Auerswald GmbH & Co. KG, Schandelah, Germany
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
@@ -11,336 +12,101 @@
#
# We provide this package
#
-ifeq (y, $(PTXCONF_GLIBC_2_2_5))
-PACKAGES += glibc
-endif
-ifeq (y, $(PTXCONF_GLIBC_2_2_4))
-PACKAGES += glibc
-endif
-ifeq (y, $(PTXCONF_GLIBC_2_2_3))
-PACKAGES += glibc
-endif
-
-
-#
-# Paths and names
-#
-ifeq (y, $(PTXCONF_GLIBC_2_2_5))
-GLIBC_VERSION = 2.2.5
-endif
-ifeq (y, $(PTXCONF_GLIBC_2_2_4))
-GLIBC_VERSION = 2.2.4
-endif
-ifeq (y, $(PTXCONF_GLIBC_2_2_3))
-GLIBC_VERSION = 2.2.3
+ifdef PTXCONF_GLIBC
+XCHAIN += xchain-glibc
endif
-GLIBC = glibc-$(GLIBC_VERSION)
-GLIBC_URL = ftp://ftp.gnu.org/gnu/glibc/$(GLIBC).tar.gz
-GLIBC_SOURCE = $(SRCDIR)/$(GLIBC).tar.gz
-GLIBC_DIR = $(BUILDDIR)/$(GLIBC)
-GLIBC_EXTRACT = gzip -dc
-
-GLIBC_THREADS = glibc-linuxthreads-$(GLIBC_VERSION)
-GLIBC_THREADS_URL = ftp://ftp.gnu.org/gnu/glibc/$(GLIBC_THREADS).tar.gz
-GLIBC_THREADS_SOURCE = $(SRCDIR)/$(GLIBC_THREADS).tar.gz
-GLIBC_THREADS_DIR = $(GLIBC_DIR)
-GLIBC_THREADS_EXTRACT = gzip -dc
-
-GLIBC_PTXPATCH = glibc-$(GLIBC_VERSION)-ptx3.diff
-GLIBC_PTXPATCH_URL = http://www.pengutronix.de/software/ptxdist/temporary-src/$(GLIBC_PTXPATCH)
-GLIBC_PTXPATCH_SOURCE = $(SRCDIR)/$(GLIBC_PTXPATCH)
-GLIBC_PTXPATCH_DIR = $(GLIBC_DIR)
-GLIBC_PTXPATCH_EXTRACT = cat
-
+XCHAIN_GLIBC_BUILDDIR = $(BUILDDIR)/xchain-$(GLIBC)-build
# ----------------------------------------------------------------------------
# Get
# ----------------------------------------------------------------------------
-glibc_get: $(STATEDIR)/glibc.get
-
-glibc_get_deps = $(STATEDIR)/glibc-base.get
-glibc_get_deps += $(STATEDIR)/glibc-ptxpatch.get
-ifdef PTXCONF_GLIBC_PTHREADS
-glibc_get_deps += $(STATEDIR)/glibc-threads.get
-endif
+xchain-glibc_get: $(STATEDIR)/xchain-glibc.get
-$(STATEDIR)/glibc.get: $(glibc_get_deps)
+$(STATEDIR)/xchain-glibc.get: $(glibc_get_deps)
+ @$(call targetinfo, xchain-glibc.get)
touch $@
-$(STATEDIR)/glibc-base.get: $(GLIBC_SOURCE)
- touch $@
-
-$(STATEDIR)/glibc-threads.get: $(GLIBC_THREADS_SOURCE)
- touch $@
-
-$(STATEDIR)/glibc-ptxpatch.get: $(GLIBC_PTXPATCH_SOURCE)
- touch $@
-
-$(GLIBC_SOURCE):
- @$(call targetinfo, glibc-base.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GLIBC_URL)
-
-$(GLIBC_THREADS_SOURCE):
- @$(call targetinfo, glibc-threads.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GLIBC_THREADS_URL)
-
-$(GLIBC_PTXPATCH_SOURCE):
- @$(call targetinfo, glibc-ptxpatch.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(GLIBC_PTXPATCH_URL)
-
# ----------------------------------------------------------------------------
# Extract
# ----------------------------------------------------------------------------
-glibc_extract: $(STATEDIR)/glibc.extract
-glibc-base_extract: $(STATEDIR)/glibc-base.extract
-glibc-threads_extract: $(STATEDIR)/glibc-threads.extract
+xchain-glibc_extract: $(STATEDIR)/xchain-glibc.extract
-glibc_extract_deps = $(STATEDIR)/glibc-base.extract
-ifeq (y, $(PTXCONF_GLIBC_PTHREADS))
-glibc_extract_deps += $(STATEDIR)/glibc-threads.extract
-endif
-
-$(STATEDIR)/glibc.extract: $(glibc_extract_deps)
- @$(call targetinfo, glibc.extract)
- touch $@
-
-$(STATEDIR)/glibc-base.extract: $(STATEDIR)/glibc.get
- @$(call targetinfo, glibc-base.extract)
- $(GLIBC_EXTRACT) $(GLIBC_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
- # fix some bugs...
- cd $(GLIBC_DIR) && patch -p1 < $(GLIBC_PTXPATCH_SOURCE)
- # fix: sunrpc's makefile has the wrong magic to find cpp...
- # FIXME: is this the right fix for other versions than 2.2.5?
- cd $(GLIBC_DIR)/sunrpc && mkdir cpp && ln -s $(PTXCONF_PREFIX)/bin/cpp cpp/
- # this is magically recreated if missing (necessary because
- # of patch against configure.in)
- rm -f $(GLIBC_DIR)/sysdeps/unix/sysv/linux/configure
- touch $@
-
-$(STATEDIR)/glibc-threads.extract: $(STATEDIR)/glibc-threads.get
- @$(call targetinfo, glibc-threads.extract)
- $(GLIBC_THREADS_EXTRACT) $(GLIBC_THREADS_SOURCE) | $(TAR) -C $(GLIBC_DIR) -xf -
+$(STATEDIR)/xchain-glibc.extract: $(glibc_extract_deps)
+ @$(call targetinfo, xchain-glibc.extract)
touch $@
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-glibc_prepare: $(STATEDIR)/glibc.extract $(STATEDIR)/autoconf213.install
-
-GLIBC_AUTOCONF =
-GLIBC_ENVIRONMENT =
-
-ifdef PTXCONF_GLIBC
-
-#
-# arcitecture dependend configuration
-#
-
-GLIBC_AUTOCONF += --build=$(GNU_HOST)
-GLIBC_AUTOCONF += --host=$(PTXCONF_GNU_TARGET)
-GLIBC_AUTOCONF += --disable-sanity-checks
-GLIBC_ENVIRONMENT = PATH=$(PTXCONF_PREFIX)/$(AUTOCONF213)/bin:$(PTXCONF_PREFIX)/bin:$$PATH
-GLIBC_MAKEVARS = AR=$(PTXCONF_GNU_TARGET)-ar
-GLIBC_MAKEVARS += RANLIB=$(PTXCONF_GNU_TARGET)-ranlib
-GLIBC_MAKEVARS += CC=$(PTXCONF_GNU_TARGET)-gcc
-
-#
-# features
-#
-ifdef PTXCONF_GLIBC_FLOATINGPOINT
- GLIBC_AUTOCONF+=--with-fp=yes
-else
- GLIBC_AUTOCONF+=--with-fp=no
-endif
-ifdef PTXCONF_GLIBC_LIBIO
- GLIBC_AUTOCONF+=--enable-libio
-endif
-ifdef PTXCONF_GLIBC_SHARED
- GLIBC_AUTOCONF+=--enable-shared
-else
- GLIBC_AUTOCONF+=--enable-shared=no
-endif
-ifdef PTXCONF_GLIBC_PROFILED
- GLIBC_AUTOCONF+=--enable-profile=yes
-else
- GLIBC_AUTOCONF+=--enable-profile=no
-endif
-ifdef PTXCONF_GLIBC_OMITFP
- GLIBC_AUTOCONF+=--enable-omitfp
-endif
-ifdef PTXCONF_GLIBC_PTHREADS
- GLIBC_AUTOCONF+=--enable-add-ons=linuxthreads
-endif
-
-#
-# optimisation
-#
-ifdef PTXCONF_OPT_I386
- GLIBC_CFLAGS+=-mcpu=i386 -O2
-endif
-ifdef PTXCONF_OPT_I486
- GLIBC_CFLAGS+=-mcpu=i486 -O2
-endif
-ifdef PTXCONF_OPT_I686
- GLIBC_CFLAGS+=-mcpu=i686 -O2
-endif
-ifdef PTXCONF_ARCH_ARM
-# GLIBC_CFLAGS+=-Wall -O2
-endif
-ifdef GLIBC_CFLAGS
-GLIBC_ENVIRONMENT += CFLAGS="$(GLIBC_CFLAGS)"
-endif
-
-endif
-
-#
-# dependencies
-#
-glibc_prepare_deps = $(STATEDIR)/glibc.extract
-ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
-glibc_prepare_deps += $(STATEDIR)/xchain-gccstage1.install
-endif
-
-$(STATEDIR)/glibc.prepare: $(glibc_prepare_deps)
- @$(call targetinfo, glibc.prepare)
- ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
- mkdir -p $(BUILDDIR)/$(GLIBC)-obj
- cd $(BUILDDIR)/$(GLIBC)-obj && \
- $(GLIBC_ENVIRONMENT) \
+xchain-glibc_prepare: $(STATEDIR)/xchain-glibc.prepare
+
+$(STATEDIR)/xchain-glibc.prepare: \
+ $(STATEDIR)/autoconf213.install \
+ $(STATEDIR)/xchain-gccstage1.install \
+ $(STATEDIR)/xchain-glibc.extract
+ @$(call targetinfo, xchain-glibc.prepare)
+ @$(call clean, $(XCHAIN_GLIBC_BUILDDIR))
+ mkdir -p $(XCHAIN_GLIBC_BUILDDIR)
+ cd $(XCHAIN_GLIBC_BUILDDIR) && \
+ $(GLIBC_PATH) $(GLIBC_ENV) \
$(GLIBC_DIR)/configure $(PTXCONF_GNU_TARGET) \
- $(GLIBC_AUTOCONF) \
- --prefix=$(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)
- endif
- #
- # we need a second directory where we configure glibc for the
- # dynamic linker
- #
- mkdir -p $(BUILDDIR)/$(GLIBC)-ldso
- cd $(BUILDDIR)/$(GLIBC)-ldso && \
- $(GLIBC_ENVIRONMENT) \
- $(GLIBC_DIR)/configure $(PTXCONF_GNU_TARGET) \
- $(GLIBC_AUTOCONF) \
- --prefix=
+ $(GLIBC_AUTOCONF) \
+ --prefix=$(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET) \
+ --libexecdir=$(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)/usr/bin
+ sync
+ sync
+ sync
+ sleep 5
+ sync
+ sync
+ sync
touch $@
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
-glibc_compile: $(STATEDIR)/glibc.compile
+xchain-glibc_compile: $(STATEDIR)/xchain-glibc.compile
-$(STATEDIR)/glibc.compile: $(STATEDIR)/glibc.prepare
- ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
- # let makefile find autoconf-2.13 as default
- cd $(BUILDDIR)/$(GLIBC)-obj && $(GLIBC_ENVIRONMENT) make $(MAKEVARS)
- endif
-# # FIXME: We need 2 separate targets *here*
- # FIXME: is there another possibility to create an ld.so which has
- # correct search paths compiled in for /lib?
- cd $(BUILDDIR)/$(GLIBC)-ldso && $(GLIBC_ENVIRONMENT) make $(MAKEVARS)
+$(STATEDIR)/xchain-glibc.compile: $(STATEDIR)/xchain-glibc.prepare
+ @$(call targetinfo, xchain-glibc.compile)
+ cd $(XCHAIN_GLIBC_BUILDDIR) && $(GLIBC_PATH) make
touch $@
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
-glibc_install: $(STATEDIR)/glibc.install
+xchain-glibc_install: $(STATEDIR)/xchain-glibc.install
-$(STATEDIR)/glibc.install: $(STATEDIR)/glibc.compile
- @$(call targetinfo, glibc.install)
- ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
- cd $(BUILDDIR)/$(GLIBC)-obj && $(GLIBC_ENVIRONMENT) make install
- endif
+$(STATEDIR)/xchain-glibc.install: $(STATEDIR)/xchain-glibc.compile
+ @$(call targetinfo, xchain-glibc.install)
+ cd $(XCHAIN_GLIBC_BUILDDIR) && $(GLIBC_PATH) make install
touch $@
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
-glibc_targetinstall: $(STATEDIR)/glibc.targetinstall
+xchain-glibc_targetinstall: $(STATEDIR)/xchain-glibc.targetinstall
-$(STATEDIR)/glibc.targetinstall: $(STATEDIR)/glibc.install
- @$(call targetinfo, glibc.targetinstall)
- # CAREFUL: don't never ever make install in ldso tree!!!
- mkdir -p $(ROOTDIR)/lib
- install $(BUILDDIR)/$(GLIBC)-ldso/elf/ld.so $(ROOTDIR)/lib/ld-$(GLIBC_VERSION).so
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/ld-$(GLIBC_VERSION).so
- ln -sf ld-$(GLIBC_VERSION).so $(ROOTDIR)/lib/ld-linux.so.2
- install $(BUILDDIR)/$(GLIBC)-ldso/libc.so $(ROOTDIR)/lib/libc.so.6
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libc.so.6
- ln -sf libc.so.6 $(ROOTDIR)/lib/libc.so
- ifeq (y, $(PTXCONF_GLIBC_PTHREADS))
- install $(BUILDDIR)/$(GLIBC)-ldso/linuxthreads/libpthread.so $(ROOTDIR)/lib/libpthread.so.0
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libpthread.so.0
- endif
- ifeq (y, $(PTXCONF_GLIBC_THREAD_DB))
- install $(BUILDDIR)/$(GLIBC)-ldso/linuxthreads_db/libthread_db.so $(ROOTDIR)/lib/libthread_db.so.1
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libthread_db.so.1
- endif
- ifeq (y, $(PTXCONF_GLIBC_CRYPT))
- install $(BUILDDIR)/$(GLIBC)-ldso/crypt/libcrypt.so.1 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libcrypt.so.1
- endif
- ifeq (y, $(PTXCONF_GLIBC_UTIL))
- install $(BUILDDIR)/$(GLIBC)-ldso/login/libutil.so $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libutil.so
- ln -sf libutil.so $(ROOTDIR)/lib/libutil.so.1
- endif
- ifeq (y, $(PTXCONF_GLIBC_LIBM))
- install $(BUILDDIR)/$(GLIBC)-ldso/math/libm.so $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libm.so
- ln -sf libm.so $(ROOTDIR)/lib/libm.so.6
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_DNS))
- install $(BUILDDIR)/$(GLIBC)-ldso/resolv/libnss_dns.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_dns.so.2
- $(CROSSSTRIP) $(ROOTDIR)/lib/libnss_dns.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_FILES))
- install $(BUILDDIR)/$(GLIBC)-ldso/nss/libnss_files.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_files.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_HESIOD))
- install $(BUILDDIR)/$(GLIBC)-ldso/hesiod/libnss_hesiod.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_hesiod.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_NIS))
- install $(BUILDDIR)/$(GLIBC)-ldso/nis/libnss_nis.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_nis.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_NISPLUS))
- install $(BUILDDIR)/$(GLIBC)-ldso/nis/libnss_nisplus.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_nisplus.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSS_COMPAT))
- install $(BUILDDIR)/$(GLIBC)-ldso/nis/libnss_compat.so.2 $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnss_compat.so.2
- endif
- ifeq (y, $(PTXCONF_GLIBC_RESOLV))
- install $(BUILDDIR)/$(GLIBC)-ldso/resolv/libresolv.so $(ROOTDIR)/lib/libresolv.so.$(GLIBC_VERSION)
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libresolv.so.$(GLIBC_VERSION)
- ln -sf libresolv.so.$(GLIBC_VERSION) $(ROOTDIR)/lib/libresolv.so
- endif
- ifeq (y, $(PTXCONF_GLIBC_NSL))
- install $(BUILDDIR)/$(GLIBC)-ldso/nis/libnsl.so $(ROOTDIR)/lib/libnsl.so.$(GLIBC_VERSION)
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libnsl.so.$(GLIBC_VERSION)
- ln -sf libnsl.so.$(GLIBC_VERSION) $(ROOTDIR)/lib/libnsl.so
- ln -sf libnsl.so.$(GLIBC_VERSION) $(ROOTDIR)/lib/libnsl.so.1
- endif
+$(STATEDIR)/xchain-glibc.targetinstall: $(STATEDIR)/xchain-glibc.install
touch $@
# ----------------------------------------------------------------------------
# Clean
# ----------------------------------------------------------------------------
-glibc_clean:
- -rm -rf $(STATEDIR)/glibc*
- -rm -rf $(GLIBC_DIR)
- -rm -rf $(BUILDDIR)/$(GLIBC)-obj
- -rm -rf $(BUILDDIR)/$(GLIBC)-ldso
-
-# vim: syntax=make
+xchain-glibc_clean:
+ -rm -rf $(STATEDIR)/xchain-glibc*
+ -rm -rf $(STATEDIR)/glibc*extract
+ -rm -rf $(STATEDIR)/glibc.prepare
+ -rm -rf $(STATEDIR)/glibc.compile
+ -rm -rf $(GLIBC_DIR)
+ -rm -rf $(GLIBC_BUILDDIR)
+ -rm -rf $(XCHAIN_GLIBC_BUILDDIR)
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/xchain-kaffe.make b/rules/xchain-kaffe.make
new file mode 100644
index 000000000..87f441f07
--- /dev/null
+++ b/rules/xchain-kaffe.make
@@ -0,0 +1,108 @@
+# -*-makefile-*-
+# $Id: xchain-kaffe.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de> for
+# GYRO net GmbH <info@gyro-net.de>, Hannover, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_KAFFE
+XCHAIN += xchain-kaffe
+endif
+
+#
+# Paths and names
+#
+XCHAIN_KAFFE_BUILDDIR = $(BUILDDIR)/xchain-$(KAFFE)-build
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_get: $(STATEDIR)/xchain-kaffe.get
+
+$(STATEDIR)/xchain-kaffe.get: $(kaffe_get_deps)
+ @$(call targetinfo, xchain-kaffe.get)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_extract: $(STATEDIR)/xchain-kaffe.extract
+
+$(STATEDIR)/xchain-kaffe.extract: $(kaffe_extract_deps)
+ @$(call targetinfo, xchain-kaffe.extract)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_prepare: $(STATEDIR)/xchain-kaffe.prepare
+
+XCHAIN_KAFFE_ENV = $(HOSTCC_ENV)
+
+$(STATEDIR)/xchain-kaffe.prepare: $(STATEDIR)/xchain-kaffe.extract \
+ $(STATEDIR)/xchain-kaffe.extract
+ @$(call targetinfo, xchain-kaffe.prepare)
+ @$(calll clean, $(XCHAIN_KAFFE_BUILDDIR))
+ mkdir -p $(XCHAIN_KAFFE_BUILDDIR)
+ cd $(XCHAIN_KAFFE_BUILDDIR) && \
+ $(XCHAIN_KAFFE_ENV) \
+ $(KAFFE_DIR)/configure --prefix=$(PTXCONF_PREFIX)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_compile: $(STATEDIR)/xchain-kaffe.compile
+
+$(STATEDIR)/xchain-kaffe.compile: $(STATEDIR)/xchain-kaffe.prepare
+ @$(call targetinfo, xchain-kaffe.compile)
+ make -C $(XCHAIN_KAFFE_BUILDDIR)/config
+ make -C $(XCHAIN_KAFFE_BUILDDIR)/kaffe/kaffeh
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_install: $(STATEDIR)/xchain-kaffe.install
+
+$(STATEDIR)/xchain-kaffe.install: $(STATEDIR)/xchain-kaffe.compile
+ @$(call targetinfo, xchain-kaffe.install)
+ make -C $(XCHAIN_KAFFE_BUILDDIR)/kaffe/kaffeh install
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_targetinstall: $(STATEDIR)/xchain-kaffe.targetinstall
+
+$(STATEDIR)/xchain-kaffe.targetinstall:
+ @$(call targetinfo, xchain-kaffe.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+xchain-kaffe_clean:
+ rm -rf $(STATEDIR)/xchain-kaffe*
+ rm -rf $(STATEDIR)/kaffe.extract
+ rm -rf $(STATEDIR)/kaffe.prepare
+ rm -rf $(STATEDIR)/kaffe.compile
+ rm -rf $(XCHAIN_KAFFE_BUILDDIR)
+ rm -rf $(KAFFE_BUILDDIR)
+ rm -rf $(KAFFE_DIR)
+
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/xchain-kernel.make b/rules/xchain-kernel.make
index 6f5b41a5f..db8d34b10 100644
--- a/rules/xchain-kernel.make
+++ b/rules/xchain-kernel.make
@@ -1,7 +1,8 @@
-# $Id: xchain-kernel.make,v 1.7 2003/07/16 03:58:31 robert Exp $
+# -*-makefile-*-
+# $Id: xchain-kernel.make,v 1.8 2003/07/16 04:23:28 mkl Exp $
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
-# See CREDITS for details about who has contributed to this project.
+# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXDIST project and license conditions
# see the README file.
@@ -9,170 +10,18 @@
#
# There are two "groups" of targets here: that ones starting with xchain- are
-# only used for the cross chain. The "normal" targets are used for building the
-# runtime kernel.
+# only used for the cross chain. The "normal" targets are used for building the
+# runtime kernel.
#
-#
-# We provide this package
-#
-ifeq (y,$(PTXCONF_KERNEL_2_4_18))
-PACKAGES += xchain-kernel
-PACKAGES += kernel
-endif
-ifeq (y,$(PTXCONF_KERNEL_2_4_19))
-PACKAGES += xchain-kernel
-PACKAGES += kernel
-endif
-
-#
-# Paths and names
-#
-# FIXME: make extraversion configurable!
-#
-ifeq (y,$(PTXCONF_KERNEL_2_4_18))
-KERNEL = linux-2.4.18
-KERNEL_URL = ftp://ftp.kernel.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
-KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
-KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_EXTRACT = bzip2 -dc
-
-KERNEL_RMKPATCH = patch-2.4.18-rmk7
-KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
-KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
-KERNEL_RMKPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
-
-KERNEL_PXAPATCH = diff-2.4.18-rmk7-pxa3
-KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
-KERNEL_PXAPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PXAPATCH).gz
-KERNEL_PXAPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_PXAPATCH_EXTRACT = gzip -dc
-
-KERNEL_MTDPATCH = linux-2.4.19-rmk7-pxa2-mtd20030424.diff
-KERNEL_MTDPATCH_SOURCE = $(SRCDIR)/$(KERNEL_MTDPATCH).bz2
-KERNEL_MTDPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_MTDPATCH).bz2
-KERNEL_MTDPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_MTDPATCH_EXTRACT = bzip2 -cd
-
-KERNEL_PTXPATCH = patch-2.4.18-rmk7-ptx3
-KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
-KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/dnp/patch-2.4.18-rmk7-ptx3
-KERNEL_PTXPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_PTXPATCH_EXTRACT = cat
-
-ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
-KERNEL_RTAIPATCH = patch-2.4.18-allsoft
-endif
-ifeq (y, $(PTXCONF_RTAI_RTHAL))
-KERNEL_RTAIPATCH = patch-2.4.18-rthal5g
-endif
-KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
-endif
-
-ifeq (y,$(PTXCONF_KERNEL_2_4_19))
-KERNEL = linux-2.4.19
-KERNEL_URL = ftp://ftp.rfc822.org/pub/linux/kernel/v2.4/$(KERNEL).tar.bz2
-KERNEL_SOURCE = $(SRCDIR)/$(KERNEL).tar.bz2
-KERNEL_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_EXTRACT = bzip2 -dc
-
-KERNEL_RMKPATCH = patch-2.4.19-rmk7
-KERNEL_RMKPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/$(KERNEL_RMKPATCH).bz2
-KERNEL_RMKPATCH_SOURCE = $(SRCDIR)/$(KERNEL_RMKPATCH).bz2
-KERNEL_RMKPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_RMKPATCH_EXTRACT = bzip2 -dc
-
-KERNEL_PXAPATCH = diff-2.4.19-rmk7-pxa2
-KERNEL_PXAPATCH_URL = ftp://ftp.arm.linux.org.uk/pub/armlinux/people/nico/$(KERNEL_PXAPATCH).gz
-KERNEL_PXAPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PXAPATCH).gz
-KERNEL_PXAPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_PXAPATCH_EXTRACT = gzip -dc
-
-KERNEL_PTXPATCH = linux-2.4.19-rmk7-pxa2-ptx4.diff
-KERNEL_PTXPATCH_SOURCE = $(SRCDIR)/$(KERNEL_PTXPATCH)
-KERNEL_PTXPATCH_URL = http://www.pengutronix.de/software/linux-arm/$(KERNEL_PTXPATCH)
-KERNEL_PTXPATCH_DIR = $(BUILDDIR)/$(KERNEL)
-KERNEL_PTXPATCH_EXTRACT = cat
-
-ifeq (y, $(PTXCONF_RTAI_ALLSOFT))
-KERNEL_RTAIPATCH = patch-2.4.19-allsoft
-endif
-ifeq (y, $(PTXCONF_RTAI_RTHAL))
-KERNEL_RTAIPATCH = patch-2.4.19-rthal5g
-endif
-KERNEL_RTAIPATCH_DIR = $(BUILDDIR)/rtai-patches
-endif
-
-ifeq (y, $(PTXCONF_KERNEL_IMAGE_Z))
-KERNEL_TARGET = zImage
-KERNEL_TARGET_PATH = $(KERNEL_DIR)/arch/$(PTXCONF_ARCH)/boot/zImage
-endif
-ifeq (y, $(PTXCONF_KERNEL_IMAGE_BZ))
-KERNEL_TARGET = bzImage
-KERNEL_TARGET_PATH = $(KERNEL_DIR)/arch/$(PTXCONF_ARCH)/boot/bzImage
-endif
-ifeq (y, $(PTXCONF_KERNEL_IMAGE_U))
-KERNEL_TARGET = uImage
-KERNEL_TARGET_PATH = $(KERNEL_DIR)/uImage
-endif
+XCHAIN_KERNEL_BUILDDIR = $(BUILDDIR)/xchain-kernel
# ----------------------------------------------------------------------------
# Get
# ----------------------------------------------------------------------------
-kernel_get: $(STATEDIR)/kernel.get
xchain-kernel_get: $(STATEDIR)/xchain-kernel.get
-kernel_get_deps = $(KERNEL_SOURCE)
-ifeq (y, $(PTXCONF_ARCH_ARM))
-kernel_get_deps += $(KERNEL_RMKPATCH_SOURCE)
-kernel_get_deps += $(KERNEL_PTXPATCH_SOURCE)
-ifeq (y, $(PTXCONF_KERNEL_XSCALE))
-kernel_get_deps += $(KERNEL_PXAPATCH_SOURCE)
-ifeq (y, $(PTXCONF_KERNEL_XSCALE_PTX))
-kernel_get_deps += $(KERNEL_MTDPATCH_SOURCE)
-kernel_get_deps += $(KERNEL_PTXPATCH_SOURCE)
-endif # PTXCONF_KERNEL_XSCALE_PTX
-endif # PTXCONF_KERNEL_XSCALE
-endif # PTXCONF_ARCH_ARM
-
-$(STATEDIR)/kernel.get: $(kernel_get_deps)
- touch $@
-
-$(STATEDIR)/xchain-kernel.get: $(kernel_get_deps)
-
-$(KERNEL_SOURCE):
- @$(call targetinfo, kernel.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_URL)
-
-$(KERNEL_RMKPATCH_SOURCE):
- @$(call targetinfo, kernel-armpatch.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_RMKPATCH_URL)
-
-$(KERNEL_MTDPATCH_SOURCE):
- @$(call targetinfo, kernel-mtdpatch.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_MTDPATCH_URL)
-
-$(KERNEL_PXAPATCH_SOURCE):
- @$(call targetinfo, kernel-pxapatch.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_PXAPATCH_URL)
-
-$(KERNEL_PTXPATCH_SOURCE):
- @$(call targetinfo, kernel-ptxpatch.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(KERNEL_PTXPATCH_URL)
-
-#
-# RTAI patches are included in the normal RTAI packet
-#
-rtai-patches_get: $(STATEDIR)/rtai-patches.get
-
-$(STATEDIR)/rtai-patches.get: $(RTAI_SOURCE)
- touch $@
-
-#
-# xchain
-#
$(STATEDIR)/xchain-kernel.get: $(kernel_get_deps)
@$(call targetinfo, xchain-kernel.get)
touch $@
@@ -181,97 +30,17 @@ $(STATEDIR)/xchain-kernel.get: $(kernel_get_deps)
# Extract
# ----------------------------------------------------------------------------
-kernel_extract: $(STATEDIR)/kernel.extract
+xchain-kernel_extract: $(STATEDIR)/xchain-kernel.extract
-kernel_extract_deps = $(STATEDIR)/kernel.get
-ifeq (y, $(PTXCONF_RTAI))
-kernel_extract_deps += $(STATEDIR)/rtai-patches.extract
-endif
-ifeq (y, $(PTXCONF_KERNEL_MTD))
-kernel_extract_deps += $(STATEDIR)/mtd.extract
+xchain_kernel_extract_deps = $(kernel_get_deps)
+ifdef PTXCONF_KERNEL_MTD
+xchain_kernel_extract_deps += $(STATEDIR)/mtd.extract
endif
-$(STATEDIR)/kernel.extract: $(kernel_extract_deps)
- @$(call targetinfo, kernel.extract)
-# # remove old kernel directories before we extract
- rm -fr $(KERNEL_DIR)
- $(KERNEL_EXTRACT) $(KERNEL_SOURCE) | tar -C $(BUILDDIR) -xf -
-# #
-# # kernels before 2.4.19 extract to "linux" instead of "linux-version"
-# #
- ifeq (y,$(PTXCONF_KERNEL_2_4_18))
- cd $(BUILDDIR) && mv linux $(KERNEL_DIR)
- endif
-# #
-# # ARM patch
-# #
- ifeq (y,$(PTXCONF_ARCH_ARM))
- cd $(KERNEL_DIR) && \
- $(KERNEL_RMKPATCH_EXTRACT) $(KERNEL_RMKPATCH_SOURCE) | \
- patch -p1
- endif
-# #
-# # XSCALE patch
-# #
- ifeq (y, $(PTXCONF_KERNEL_XSCALE))
- cd $(KERNEL_DIR) && \
- $(KERNEL_PXAPATCH_EXTRACT) $(KERNEL_PXAPATCH_SOURCE) | \
- patch -p1
- endif
-# #
-# # MTD patch
-# #
- ifeq (y, $(PTXCONF_KERNEL_MTD))
- cd $(KERNEL_DIR) && \
- $(KERNEL_MTDPATCH_EXTRACT) $(KERNEL_MTDPATCH_SOURCE) | \
- patch -p1
- endif
-# #
-# # XSCALE_PTX patch
-# #
- ifeq (y, $(PTXCONF_KERNEL_XSCALE_PTX))
- cd $(KERNEL_DIR) && \
- $(KERNEL_PTXPATCH_EXTRACT) $(KERNEL_PTXPATCH_SOURCE) | \
- patch -p1
- endif
-# #
-# # patches for all architectures
-# #
- ifeq (y, $(PTXCONF_RTAI))
- cd $(KERNEL_DIR) && \
- patch -p1 < $(KERNEL_RTAIPATCH_DIR)/$(RTAI)/patches/$(KERNEL_RTAIPATCH)
- endif
- touch $@
-
-#
-# RTAI patch
-#
-
-rtai-patches_extract: $(STATEDIR)/rtai-patches.extract
-
-$(STATEDIR)/rtai-patches.extract: $(STATEDIR)/rtai-patches.get
- @$(call targetinfo, rtai-patches.extract)
-# # remove old rtaipatch directory
- rm -fr $(KERNEL_RTAIPATCH_DIR)
- install -d $(KERNEL_RTAIPATCH_DIR)
-# # extract only the patches directory
- cd $(KERNEL_RTAIPATCH_DIR) && \
- tar zxvf $(RTAI_SOURCE) $(RTAI)/patches
- touch $@
-
-#
-# xchain
-#
-
-xchain-kernel_extract: $(STATEDIR)/xchain-kernel.extract
-
-$(STATEDIR)/xchain-kernel.extract: $(STATEDIR)/xchain-kernel.get $(STATEDIR)/mtd.extract
+$(STATEDIR)/xchain-kernel.extract: $(xchain_kernel_extract_deps)
@$(call targetinfo, xchain-kernel.extract)
-# #
- rm -fr $(BUILDDIR)/xchain-kernel
- mkdir -p $(BUILDDIR)/xchain-kernel/tmp
- cd $(BUILDDIR)/xchain-kernel && \
- $(KERNEL_EXTRACT) $(KERNEL_SOURCE) | tar -C $(BUILDDIR)/xchain-kernel/tmp -xf -
+ @$(call clean, $(BUILDDIR)/xchain-kernel)
+ @$(call extract, $(KERNEL_SOURCE), $(BUILDDIR)/xchain-kernel/tmp)
# #
# # kernels before 2.4.19 extract to "linux" instead of "linux-version"
# #
@@ -282,7 +51,7 @@ $(STATEDIR)/xchain-kernel.extract: $(STATEDIR)/xchain-kernel.get $(STATEDIR)/mtd
# # ARM patch
# #
ifeq (y,$(PTXCONF_ARCH_ARM))
- cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
+ cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
$(KERNEL_RMKPATCH_EXTRACT) $(KERNEL_RMKPATCH_SOURCE) | \
patch -p1
endif
@@ -290,7 +59,7 @@ $(STATEDIR)/xchain-kernel.extract: $(STATEDIR)/xchain-kernel.get $(STATEDIR)/mtd
# # XSCALE patch
# #
ifeq (y, $(PTXCONF_KERNEL_XSCALE))
- cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
+ cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
$(KERNEL_PXAPATCH_EXTRACT) $(KERNEL_PXAPATCH_SOURCE) | \
patch -p1
endif
@@ -307,14 +76,22 @@ $(STATEDIR)/xchain-kernel.extract: $(STATEDIR)/xchain-kernel.get $(STATEDIR)/mtd
# # XSCALE_PTX patch
# #
ifeq (y, $(PTXCONF_KERNEL_XSCALE_PTX))
- cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
+ cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
$(KERNEL_PTXPATCH_EXTRACT) $(KERNEL_PTXPATCH_SOURCE) | \
patch -p1
endif
- # fake headers
+# #
+# # patch for mmu-less architectures
+# #
+ ifdef PTXCONF_ARCH_NOMMU
+ cd $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) && \
+ $(KERNEL_UCLINUXPATCH_EXTRACT) $(KERNEL_UCLINUXPATCH_SOURCE) | \
+ patch -p1 || true
+ endif
+# # fake headers
make -C $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL) include/linux/version.h
touch $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL)/include/linux/autoconf.h
- # we are only interested in include/ here
+# # we are only interested in include/ here
cp -a $(BUILDDIR)/xchain-kernel/tmp/$(KERNEL)/include $(BUILDDIR)/xchain-kernel/
rm -fr $(BUILDDIR)/xchain-kernel/tmp
touch $@
@@ -323,47 +100,23 @@ $(STATEDIR)/xchain-kernel.extract: $(STATEDIR)/xchain-kernel.get $(STATEDIR)/mtd
# Prepare
# ----------------------------------------------------------------------------
-kernel_prepare: $(STATEDIR)/kernel.prepare
-
-kernel_prepare_deps = $(STATEDIR)/kernel.extract
-ifeq (y,$(PTXCONF_RTAI))
-kernel_prepare_deps += $(STATEDIR)/rtai-patches.extract
-endif
-
-KERNEL_ENVIRONMENT = PATH=$(PTXCONF_PREFIX)/bin:$$PATH
-kernel_prepare_deps += $(STATEDIR)/xchain-gccstage1.install
-
-$(STATEDIR)/kernel.prepare: $(kernel_prepare_deps)
- @$(call targetinfo, kernel.prepare)
- ifeq (y,$(PTXCONF_BUILD_CROSSCHAIN))
- echo -n 'Please supply root password for sudo: '
- # FIXME: wheel is not the correct group
- [ -d $(PTXCONF_PREFIX) ] || \
- $(SUDO) install -g wheel -m 0755 -o $(PTXUSER) \
- -d $(PTXCONF_PREFIX)
- endif
- install .kernelconfig $(KERNEL_DIR)/.config
- perl -p -i -e 's/^ARCH := .*/ARCH := $(subst ",,$(PTXCONF_ARCH))/' $(KERNEL_DIR)/Makefile
- perl -p -i -e 's@^CROSS_COMPILE .*@CROSS_COMPILE = $(PTXCONF_PREFIX)/bin/$(PTXCONF_GNU_TARGET)-@' $(KERNEL_DIR)/Makefile
- cd $(KERNEL_DIR) && make oldconfig
- cd $(KERNEL_DIR) && PATH=$(PTXCONF_PREFIX)/bin:$$PATH make dep
- touch $@
-
-#
-# xchain
-#
-
xchain-kernel_prepare: $(STATEDIR)/xchain-kernel.prepare
$(STATEDIR)/xchain-kernel.prepare: $(STATEDIR)/xchain-kernel.extract
@$(call targetinfo, xchain-kernel.prepare)
+
+ rm -rf `find $(XCHAIN_KERNEL_BUILDDIR)/include -name "asm*" -type d |grep -v asm-$(PTXCONF_ARCH)`
cd $(BUILDDIR)/xchain-kernel/include && ln -s asm-$(PTXCONF_ARCH) asm
- ifeq (y, $(PTXCONF_ARCH_ARM))
- cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s proc-armv proc
- ifeq (y, $(PTXCONF_ARM_ARCH_PXA))
- cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s arch-pxa arch
- endif
- endif
+
+ifdef PTXCONF_ARCH_ARM
+ cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s proc-$(PTXCONF_ARM_PROC) proc
+ cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s arch-$(PTXCONF_ARM_ARCH) arch
+endif
+
+ifdef PTXCONF_ARCH_ARM_NOMMU
+ cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s proc-$(PTXCONF_ARM_PROC) proc
+ cd $(BUILDDIR)/xchain-kernel/include/asm && ln -s arch-$(PTXCONF_ARM_ARCH) arch
+endif
touch $@
@@ -371,21 +124,9 @@ $(STATEDIR)/xchain-kernel.prepare: $(STATEDIR)/xchain-kernel.extract
# Compile
# ----------------------------------------------------------------------------
-kernel_compile: $(STATEDIR)/kernel.compile
-
-kernel_compile_deps = $(STATEDIR)/kernel.prepare
-kernel_compile_deps += $(STATEDIR)/umkimage.install
-
-$(STATEDIR)/kernel.compile: $(kernel_compile_deps)
- @$(call targetinfo, kernel.compile)
- ifneq (y, $(PTXCONF_DONT_COMPILE_KERNEL))
- $(KERNEL_ENVIRONMENT) make -C $(KERNEL_DIR) oldconfig dep clean $(KERNEL_TARGET) modules
- endif
- touch $@
-
xchain-kernel_compile: $(STATEDIR)/xchain-kernel.compile
-$(STATEDIR)/xchain-kernel.compile: $(STATEDIR)/xchain-kernel.prepare
+$(STATEDIR)/xchain-kernel.compile:
@$(call targetinfo, xchain-kernel.compile)
touch $@
@@ -393,61 +134,28 @@ $(STATEDIR)/xchain-kernel.compile: $(STATEDIR)/xchain-kernel.prepare
# Install
# ----------------------------------------------------------------------------
-kernel_install: $(STATEDIR)/kernel.install
-
-$(STATEDIR)/kernel.install: $(STATEDIR)/kernel.compile
- @$(call targetinfo, kernel.install)
- ifeq (y, $(PTXCONF_KERNEL_INSTALL))
- mkdir -p $(ROOTDIR)/boot
- cp $(KERNEL_TARGET_PATH) $(ROOTDIR)/boot/
- endif
- touch $@
-
-xchain-kernel_install: $(STATEDIR)/xchain-kernel.install
-
-$(STATEDIR)/xchain-kernel.install: $(STATEDIR)/xchain-kernel.compile
+$(STATEDIR)/xchain-kernel.install: $(STATEDIR)/xchain-kernel.prepare
@$(call targetinfo, xchain-kernel.install)
install -d $(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)
cp -a $(BUILDDIR)/xchain-kernel/include $(PTXCONF_PREFIX)/$(PTXCONF_GNU_TARGET)/
touch $@
-
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
-kernel_targetinstall: $(STATEDIR)/kernel.targetinstall
-
-$(STATEDIR)/kernel.targetinstall: $(STATEDIR)/kernel.install
- @$(call targetinfo, kernel.targetinstall)
- ifneq (y, $(PTXCONF_DONT_COMPILE_KERNEL))
- mkdir -p $(ROOTDIR)/boot
- ifeq (y,$(PTXCONF_KERNEL_INSTALL))
- mkdir -p $(ROOTDIR)/boot
- install $(KERNEL_TARGET_PATH) $(ROOTDIR)/boot
- $(KERNEL_ENVIRONMENT) make -C $(KERNEL_DIR) modules_install INSTALL_MOD_PATH=$(ROOTDIR)
- endif # PTXCONF_KERNEL_INSTALL
- endif # PTXCONF_DONT_COMPILE_KERNEL
- touch $@
-
xchain-kernel_targetinstall: $(STATEDIR)/xchain-kernel.targetinstall
-$(STATEDIR)/xchain-kernel.targetinstall: $(STATEDIR)/xchain-kernel.compile
- @$(call targetinfo,xchain-kernel.targetinstall)
+$(STATEDIR)/xchain-kernel.targetinstall:
+ @$(call targetinfo, xchain-kernel.targetinstall)
touch $@
# ----------------------------------------------------------------------------
# Clean
# ----------------------------------------------------------------------------
-kernel_clean: rtai-patches_clean
- rm -rf $(STATEDIR)/kernel.* $(KERNEL_DIR)
-
xchain-kernel_clean:
- rm -fr $(BUILDDIR)/xchain-kernel
rm -fr $(STATEDIR)/xchain-kernel.*
+ rm -fr $(XCHAIN_KERNEL_BUILDDIR)
-rtai-patches_clean:
- rm -rf $(STATEDIR)/rtai-patches.* $(KERNEL_RTAIPATCH_DIR)
-
-# vim: syntax=make
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/xchain-uclibc.make b/rules/xchain-uclibc.make
new file mode 100644
index 000000000..59c1329ac
--- /dev/null
+++ b/rules/xchain-uclibc.make
@@ -0,0 +1,104 @@
+# -*-makefile-*-
+# $Id: xchain-uclibc.make,v 1.1 2003/07/16 04:23:28 mkl Exp $
+#
+# (c) 2003 by Marc Kleine-Budde <kleine-budde@gmx.de>
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+ifdef PTXCONF_UCLIBC
+XCHAIN += xchain-uclibc
+endif
+
+XCHAIN_UCLIBC_BUILDDIR = $(BUILDDIR)/xchain/$(UCLIBC)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_get: $(STATEDIR)/xchain-uclibc.get
+
+$(STATEDIR)/xchain-uclibc.get: $(uclibc_get_deps)
+ @$(call targetinfo, xchain-uclibc.get)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_extract: $(STATEDIR)/xchain-uclibc.extract
+
+$(STATEDIR)/xchain-uclibc.extract: $(uclibc_get_deps)
+ @$(call targetinfo, xchain-uclibc.extract)
+ @$(call clean, $(XCHAIN_UCLIBC_BUILDDIR))
+ @$(call extract, $(UCLIBC_SOURCE), $(XCHAIN_BUILDDIR))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_prepare: $(STATEDIR)/xchain-uclibc.prepare
+
+XCHAIN_UCLIBC_PATH = PATH=$(CROSS_PATH)
+XCHAIN_UCLIBC_MAKEVARS = CROSS=$(PTXCONF_GNU_TARGET)- HOSTCC=$(HOSTCC)
+
+$(STATEDIR)/xchain-uclibc.prepare: \
+ $(STATEDIR)/xchain-gccstage1.install \
+ $(STATEDIR)/xchain-uclibc.extract
+ @$(call targetinfo, xchain-uclibc.prepare)
+
+ grep -e PTXCONF_UCLIBC_ .config > $(XCHAIN_UCLIBC_BUILDDIR)/.config
+ perl -i -p -e 's/PTXCONF_UCLIBC_//g' $(XCHAIN_UCLIBC_BUILDDIR)/.config
+ @$(call xchain_uclibc_fix_config, $(XCHAIN_UCLIBC_BUILDDIR)/.config)
+
+ $(XCHAIN_UCLIBC_PATH) make -C $(XCHAIN_UCLIBC_BUILDDIR) oldconfig $(XCHAIN_UCLIBC_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_compile: $(STATEDIR)/xchain-uclibc.compile
+
+$(STATEDIR)/xchain-uclibc.compile: $(STATEDIR)/xchain-uclibc.prepare
+ @$(call targetinfo, xchain-uclibc.compile)
+ $(XCHAIN_UCLIBC_PATH) make -C $(XCHAIN_UCLIBC_BUILDDIR) $(XCHAIN_UCLIBC_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_install: $(STATEDIR)/xchain-uclibc.install
+
+$(STATEDIR)/xchain-uclibc.install: $(STATEDIR)/xchain-uclibc.compile
+ @$(call targetinfo, xchain-uclibc.install)
+ $(XCHAIN_UCLIBC_PATH) make -C $(XCHAIN_UCLIBC_BUILDDIR) \
+ install_dev install_runtime install_utils \
+ $(XCHAIN_UCLIBC_MAKEVARS) TARGET_ARCH=$(SHORT_TARGET)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_targetinstall: $(STATEDIR)/xchain-uclibc.targetinstall
+
+$(STATEDIR)/xchain-uclibc.targetinstall:
+ @$(call targetinfo, xchain-uclibc.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+xchain-uclibc_clean:
+ -rm -rf $(STATEDIR)/xchain-uclibc*
+ -rm -rf $(XCHAIN_UCLIBC_BUILDDIR)
+# vim: syntax=make \ No newline at end of file
diff --git a/rules/xchain-zlib.make b/rules/xchain-zlib.make
new file mode 100644
index 000000000..b49d7f262
--- /dev/null
+++ b/rules/xchain-zlib.make
@@ -0,0 +1,97 @@
+# -*-makefile-*-
+# $id$
+#
+# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXDIST project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+
+#
+# Paths and names
+#
+XCHAIN_ZLIB_BUILDDIR = $(BUILDDIR)/xchain/$(ZLIB)
+
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+xchain-zlib_get: $(STATEDIR)/xchain-zlib.get
+
+$(STATEDIR)/xchain-zlib.get: $(ZLIB_SOURCE)
+ @$(call targetinfo, xchain-zlib.get)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+xchain-zlib_extract: $(STATEDIR)/xchain-zlib.extract
+
+$(STATEDIR)/xchain-zlib.extract: $(STATEDIR)/xchain-zlib.get
+ @$(call targetinfo, xchain-zlib.extract)
+ @$(call clean, $(XCHAIN_ZLIB_BUILDDIR))
+ @$(call extract, $(ZLIB_SOURCE), $(XCHAIN_BUILDDIR))
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+xchain-zlib_prepare: $(STATEDIR)/xchain-zlib.prepare
+
+XCHAIN_ZLIB_AUTOCONF = --shared
+XCHAIN_ZLIB_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
+XCHAIN_ZLIB_MAKEVARS = $(HOSTCC_ENV)
+
+$(STATEDIR)/xchain-zlib.prepare: $(STATEDIR)/xchain-zlib.extract
+ @$(call targetinfo, xchain-zlib.prepare)
+ cd $(XCHAIN_ZLIB_BUILDDIR) && \
+ ./configure $(XCHAIN_ZLIB_AUTOCONF)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/xchain-zlib.compile: $(STATEDIR)/xchain-zlib.prepare
+ @$(call targetinfo, xchain-zlib.compile)
+ make -C $(XCHAIN_ZLIB_BUILDDIR) $(XCHAIN_ZLIB_MAKEVARS)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+xchain-zlib_install: $(STATEDIR)/xchain-zlib.install
+
+$(STATEDIR)/xchain-zlib.install: $(STATEDIR)/xchain-zlib.compile
+ @$(call targetinfo, xchain-zlib.install)
+ make -C $(XCHAIN_ZLIB_BUILDDIR) $(XCHAIN_ZLIB_MAKEVARS) \
+ install
+ touch $@
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+xchain-zlib_targetinstall: $(STATEDIR)/xchain-zlib.targetinstall
+
+$(STATEDIR)/xchain-zlib.targetinstall: $(STATEDIR)/xchain-zlib.install
+ @$(call targetinfo, xchain-zlib.targetinstall)
+ touch $@
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+xchain-zlib_clean:
+ rm -rf $(STATEDIR)/xchain-zlib.*
+ rm -rf $(XCHAIN_ZLIB_BUILDDIR)
+
+# vim: syntax=make
diff --git a/rules/zlib.make b/rules/zlib.make
index d5d776c2d..149189bc0 100644
--- a/rules/zlib.make
+++ b/rules/zlib.make
@@ -1,4 +1,5 @@
-# $Id: zlib.make,v 1.3 2003/06/16 12:05:16 bsp Exp $
+# -*-makefile-*-
+# $id$
#
# (c) 2002 by Pengutronix e.K., Hildesheim, Germany
# See CREDITS for details about who has contributed to this project.
@@ -10,10 +11,6 @@
#
# We provide this package
#
-ifeq (y,$(PTXCONF_ZLIB))
-PACKAGES += zlib
-PACKAGES += xchain-zlib
-endif
#
# Paths and names
@@ -21,8 +18,7 @@ endif
ZLIB = zlib-1.1.4
ZLIB_URL = ftp://ftp.info-zip.org/pub/infozip/zlib/$(ZLIB).tar.gz
ZLIB_SOURCE = $(SRCDIR)/$(ZLIB).tar.gz
-ZLIB_DIR = $(BUILDDIR)/$(ZLIB)
-ZLIB_EXTRACT = gzip -dc
+ZLIB_DIR = $(BUILDDIR)/$(ZLIB)
# ----------------------------------------------------------------------------
# Get
@@ -31,16 +27,12 @@ ZLIB_EXTRACT = gzip -dc
zlib_get: $(STATEDIR)/zlib.get
$(STATEDIR)/zlib.get: $(ZLIB_SOURCE)
- touch $@
-
-xchain-zlib_get: $(STATEDIR)/xchain-zlib.get
-
-$(STATEDIR)/xchain-zlib.get: $(ZLIB_SOURCE)
+ @$(call targetinfo, zlib.get)
touch $@
$(ZLIB_SOURCE):
- @$(call targetinfo, zlib.get)
- wget -P $(SRCDIR) $(PASSIVEFTP) $(ZLIB_URL)
+ @$(call targetinfo, $(ZLIB_SOURCE))
+ @$(call get, $(ZLIB_URL))
# ----------------------------------------------------------------------------
# Extract
@@ -50,16 +42,8 @@ zlib_extract: $(STATEDIR)/zlib.extract
$(STATEDIR)/zlib.extract: $(STATEDIR)/zlib.get
@$(call targetinfo, zlib.extract)
- $(ZLIB_EXTRACT) $(ZLIB_SOURCE) | $(TAR) -C $(BUILDDIR) -xf -
- touch $@
-
-xchain-zlib_extract: $(STATEDIR)/xchain-zlib.extract
-
-$(STATEDIR)/xchain-zlib.extract: $(STATEDIR)/xchain-zlib.get
- @$(call targetinfo, xchain-zlib.extract)
- rm -fr $(BUILDDIR)/xchain-zlib
- mkdir -p $(BUILDDIR)/xchain-zlib
- $(ZLIB_EXTRACT) $(ZLIB_SOURCE) | $(TAR) -C $(BUILDDIR)/xchain-zlib -xf -
+ @$(call clean, $(ZLIB_DIR))
+ @$(call extract, $(ZLIB_SOURCE))
touch $@
# ----------------------------------------------------------------------------
@@ -68,28 +52,21 @@ $(STATEDIR)/xchain-zlib.extract: $(STATEDIR)/xchain-zlib.get
zlib_prepare: $(STATEDIR)/zlib.prepare
-ZLIB_AUTOCONF =
-ZLIB_AUTOCONF += --shared
-ZLIB_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
-
-$(STATEDIR)/zlib.prepare: $(STATEDIR)/zlib.extract
- @$(call targetinfo, zlib.prepare)
- # FIXME: this does currently not work with the local toolchain
- cd $(ZLIB_DIR) && \
- ./configure $(ZLIB_AUTOCONF)
- perl -i -p -e 's/gcc/$(PTXCONF_GNU_TARGET)-gcc/g' $(ZLIB_DIR)/Makefile
- touch $@
+zlib_prepare_deps = \
+ $(STATEDIR)/virtual-xchain.install \
+ $(STATEDIR)/zlib.extract
-xchain-zlib_prepare: $(STATEDIR)/xchain-zlib.prepare
+ZLIB_PATH = PATH=$(CROSS_PATH)
+ZLIB_AUTOCONF = --shared
+ZLIB_AUTOCONF += --prefix=$(CROSS_LIB_DIR)
-XCHAIN_ZLIB_AUTOCONF =
-XCHAIN_ZLIB_AUTOCONF += --shared
-XCHAIN_ZLIB_AUTOCONF += --prefix=$(PTXCONF_PREFIX)
-
-$(STATEDIR)/xchain-zlib.prepare: $(STATEDIR)/xchain-zlib.extract
- @$(call targetinfo, xchain-zlib.prepare)
- cd $(BUILDDIR)/xchain-zlib/$(ZLIB) && \
- ./configure $(XCHAIN_ZLIB_AUTOCONF)
+$(STATEDIR)/zlib.prepare: $(zlib_prepare_deps)
+ @$(call targetinfo, zlib.prepare)
+ cd $(ZLIB_DIR) && \
+ $(ZLIB_PATH) \
+ ./configure $(ZLIB_AUTOCONF)
+ perl -i -p -e 's/=gcc/=$(PTXCONF_GNU_TARGET)-gcc/g' $(ZLIB_DIR)/Makefile
+ perl -i -p -e 's/=ar/=$(PTXCONF_GNU_TARGET)-ar/g' $(ZLIB_DIR)/Makefile
touch $@
# ----------------------------------------------------------------------------
@@ -100,16 +77,9 @@ zlib_compile: $(STATEDIR)/zlib.compile
$(STATEDIR)/zlib.compile: $(STATEDIR)/zlib.prepare
@$(call targetinfo, zlib.compile)
- cd $(ZLIB_DIR) && PATH=$(PTXCONF_PREFIX)/bin:$$PATH make CC=$(PTXCONF_GNU_TARGET)-gcc
+ $(ZLIB_PATH) make -C $(ZLIB_DIR)
touch $@
-xchain-zlib_compile: $(STATEDIR)/xchain-zlib.compile
-
-$(STATEDIR)/xchain-zlib.compile: $(STATEDIR)/xchain-zlib.prepare
- @$(call targetinfo, xchain-zlib.compile)
- cd $(BUILDDIR)/xchain-zlib/$(ZLIB) && make CC=$(HOSTCC)
- touch $@
-
# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------
@@ -118,15 +88,9 @@ zlib_install: $(STATEDIR)/zlib.install
$(STATEDIR)/zlib.install: $(STATEDIR)/zlib.compile
@$(call targetinfo, zlib.install)
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH make -C $(BUILDDIR)/$(ZLIB) install PREFIX=$(PTXCONF_PREFIX)
+ $(ZLIB_PATH) make -C $(ZLIB_DIR) install
touch $@
-xchain-zlib_install: $(STATEDIR)/xchain-zlib.install
-
-$(STATEDIR)/xchain-zlib.install: $(STATEDIR)/xchain-zlib.compile
- @$(call targetinfo, xchain-zlib.install)
- PATH=$(PTXCONF_PREFIX)/bin:$$PATH make -C $(BUILDDIR)/xchain-zlib/$(ZLIB) install PREFIX=$(PTXCONF_PREFIX)
- touch $@
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -137,13 +101,7 @@ $(STATEDIR)/zlib.targetinstall: $(STATEDIR)/zlib.install
@$(call targetinfo, zlib.targetinstall)
mkdir -p $(ROOTDIR)/lib
cp -d $(ZLIB_DIR)/libz.so* $(ROOTDIR)/lib
- $(CROSSSTRIP) -S $(ROOTDIR)/lib/libz.so*
- touch $@
-
-xchain-zlib_targetinstall: $(STATEDIR)/xchain-zlib.targetinstall
-
-$(STATEDIR)/xchain-zlib.targetinstall: $(STATEDIR)/xchain-zlib.install
- @$(call targetinfo, xchain-zlib.targetinstall)
+ $(CROSSSTRIP) -S -R .note -R .comment $(ROOTDIR)/lib/libz.so*
touch $@
# ----------------------------------------------------------------------------
@@ -153,7 +111,4 @@ $(STATEDIR)/xchain-zlib.targetinstall: $(STATEDIR)/xchain-zlib.install
zlib_clean:
rm -rf $(STATEDIR)/zlib.* $(ZLIB_DIR)
-xchain-zlib_clean:
- rm -rf $(STATEDIR)/xchain-zlib.* $(BUILDDIR)/xchain-zlib
-
# vim: syntax=make
diff --git a/scripts/config.guess b/scripts/config.guess
new file mode 100755
index 000000000..cc726cd15
--- /dev/null
+++ b/scripts/config.guess
@@ -0,0 +1,1388 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+
+timestamp='2003-02-22'
+
+# This file 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.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ arc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ pmax:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mipseb-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ wgrisc:OpenBSD:*:*)
+ echo mipsel-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ if test $UNAME_RELEASE = "V4.0"; then
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ fi
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ # Determine whether the default compiler uses glibc.
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #if __GLIBC__ >= 2
+ LIBC=gnu
+ #else
+ LIBC=
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:3*)
+ echo i586-pc-interix3
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ case `uname -p` in
+ *86) UNAME_PROCESSOR=i686 ;;
+ powerpc) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/scripts/mkprefix b/scripts/mkprefix
index b6602d17b..b3e1b8e10 100755
--- a/scripts/mkprefix
+++ b/scripts/mkprefix
@@ -1,5 +1,5 @@
#!/usr/bin/perl -w
-# $Id: mkprefix,v 1.1 2003/04/24 08:06:32 jst Exp $
+# $Id: mkprefix,v 1.2 2003/07/16 04:23:28 mkl Exp $
require 5.008;
@@ -8,7 +8,7 @@ use Getopt::Mixed qw(nextOption);
my @lines = ();
-my ($REL) = q$Revision: 1.1 $=~m/(\d+(?:\.\d+)+)/;
+my ($REL) = q$Revision: 1.2 $=~m/(\d+(?:\.\d+)+)/;
my $prefix = undef;
my $verbose = undef;
my $reverse = undef;
@@ -50,7 +50,7 @@ while (my ($opt, $val, $pretty) = nextOption()) {
Getopt::Mixed::cleanup();
if (!defined $prefix) {
- print STDERR "Fatal: prefix not specified\n"; die;
+ print STDERR "Fatal: prefix not specified\n\n"; help; die;
}
if (defined $reverse) { esc(\$prefix); }