summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2001-05-28 14:38:12 +0000
committerManuel Novoa III <mjn3@codepoet.org>2001-05-28 14:38:12 +0000
commiteba708a62b5bb255a3ba79ab29e9259118aaef34 (patch)
tree449e93560ecdad1ce9b16edb1f9d01510abf97a0
parent54ebc8099e32cb836c33bbb3744e6e498d6257af (diff)
Make selection of uClibc floating point support in printf, etc. seperate
from libm float function support. Also, move all Config files out of the main directory.
-rw-r--r--.cvsignore1
-rw-r--r--Makefile19
-rw-r--r--Rules.mak6
-rw-r--r--extra/Configs/Config.arm147
-rw-r--r--extra/Configs/Config.i386147
-rw-r--r--extra/Configs/Config.m68k161
-rw-r--r--extra/Configs/Config.mips148
-rw-r--r--extra/Configs/Config.mipsel148
-rw-r--r--extra/Configs/Config.powerpc147
-rw-r--r--extra/Configs/Config.sh169
-rw-r--r--extra/Configs/Config.x86147
-rw-r--r--include/math.h22
-rw-r--r--libc/misc/internals/Makefile2
-rw-r--r--libc/stdlib/Makefile2
-rw-r--r--libm/Makefile8
15 files changed, 1250 insertions, 24 deletions
diff --git a/.cvsignore b/.cvsignore
index 0197571b1..45aa35e0c 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -6,3 +6,4 @@ uClibc_config.h
uClibc-0*
libuClibc-0*
lib
+Config
diff --git a/Makefile b/Makefile
index c83a6f89f..04624727b 100644
--- a/Makefile
+++ b/Makefile
@@ -83,20 +83,25 @@ uClibc_config.h: Config
else \
echo "#undef __UCLIBC_HAS_MMU__" >> uClibc_config.h ; \
fi
- @if [ "$(HAS_FLOATS)" = "true" ] ; then \
+ @if [ "$(HAS_FLOATING_POINT)" = "true" ] ; then \
echo "#define __UCLIBC_HAS_FLOATS__ 1" >> uClibc_config.h ; \
else \
echo "#undef __UCLIBC_HAS_FLOATS__" >> uClibc_config.h ; \
fi
- @if [ "$(HAS_DOUBLE)" = "true" ] ; then \
- echo "#define __UCLIBC_HAS_DOUBLE__ 1" >> uClibc_config.h ; \
+ @if [ "$(HAS_LIBM_FLOAT)" = "true" ] ; then \
+ echo "#define __UCLIBC_HAS_LIBM_FLOAT__ 1" >> uClibc_config.h ; \
else \
- echo "#undef __UCLIBC_HAS_DOUBLE__" >> uClibc_config.h ; \
+ echo "#undef __UCLIBC_HAS_LIBM_FLOAT__" >> uClibc_config.h ; \
fi
- @if [ "$(HAS_LONG_DOUBLE)" = "true" ] ; then \
- echo "#define __UCLIBC_HAS_LONG_DOUBLE__ 1" >> uClibc_config.h ; \
+ @if [ "$(HAS_LIBM_DOUBLE)" = "true" ] ; then \
+ echo "#define __UCLIBC_HAS_LIBM_DOUBLE__ 1" >> uClibc_config.h ; \
else \
- echo "#undef __UCLIBC_HAS_LONG_DOUBLE__" >> uClibc_config.h ; \
+ echo "#undef __UCLIBC_HAS_LIBM_DOUBLE__" >> uClibc_config.h ; \
+ fi
+ @if [ "$(HAS_LIBM_LONG_DOUBLE)" = "true" ] ; then \
+ echo "#define __UCLIBC_HAS_LIBM_LONG_DOUBLE__ 1" >> uClibc_config.h ; \
+ else \
+ echo "#undef __UCLIBC_HAS_LIBM_LONG_DOUBLE__" >> uClibc_config.h ; \
fi
@if [ "$(HAS_LONG_LONG)" = "true" ] ; then \
echo "#define __UCLIBC_HAS_LONG_LONG__ 1" >> uClibc_config.h ; \
diff --git a/Rules.mak b/Rules.mak
index e26a75a66..28a1c84a5 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -85,6 +85,12 @@ else
DYNAMIC_LINKER=$(SYSTEM_LDSO)
endif
+# Disable libm if HAS_FLOATING_POINT isn't true.
+ifneq ($(HAS_FLOATING_POINT),true)
+ HAS_LIBM_FLOAT = false
+ HAS_LIBM_DOUBLE = false
+ HAS_LIBM_LONG_DOUBLE = false
+endif
# It turns out the currently, function-sections causes ldelf2flt to segfault.
# So till further notice, this is disabled by default....
diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
new file mode 100644
index 000000000..1d5433b3f
--- /dev/null
+++ b/extra/Configs/Config.arm
@@ -0,0 +1,147 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+TARGET_ARCH=arm
+#TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = #arm-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/usr/src/linux
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = false
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = false
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386
new file mode 100644
index 000000000..e05059bd4
--- /dev/null
+++ b/extra/Configs/Config.i386
@@ -0,0 +1,147 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = #i386-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/usr/src/linux
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = true
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/extra/Configs/Config.m68k b/extra/Configs/Config.m68k
new file mode 100644
index 000000000..69a9623c8
--- /dev/null
+++ b/extra/Configs/Config.m68k
@@ -0,0 +1,161 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+#TARGET_ARCH=i386
+TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+#CROSS = m68k-elf-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/usr/src/linux
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = false
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = false
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = false
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+MALLOC = malloc-simple
+#MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = true
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /opt/uClinux/$(TARGET_ARCH)-pic-elf
+
+#
+# ARCH_CFLAGS if your have something special to add to the CFLAGS
+#
+ARCH_CFLAGS = -Wa,--bitwise-or
+#
+# this is needed for 2.4 m68knommu builds
+#
+ARCH_CFLAGS2 = -I$(KERNEL_SOURCE)/include
+#
+# get this from elsewhere, maybe
+#
+OPTIMIZATION = $(DEBUG_CFLAGS)
+
diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips
new file mode 100644
index 000000000..a3a45c623
--- /dev/null
+++ b/extra/Configs/Config.mips
@@ -0,0 +1,148 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+#TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+TARGET_ARCH=mipsel
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = mipsel-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/home/ds/mips/linux-2.4.3-pre3-idt-rthal
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = false
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/extra/Configs/Config.mipsel b/extra/Configs/Config.mipsel
new file mode 100644
index 000000000..a3a45c623
--- /dev/null
+++ b/extra/Configs/Config.mipsel
@@ -0,0 +1,148 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+#TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+TARGET_ARCH=mipsel
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = mipsel-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/home/ds/mips/linux-2.4.3-pre3-idt-rthal
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = false
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/extra/Configs/Config.powerpc b/extra/Configs/Config.powerpc
new file mode 100644
index 000000000..07b2efc5f
--- /dev/null
+++ b/extra/Configs/Config.powerpc
@@ -0,0 +1,147 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+#TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = #powerpc-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/usr/src/linux
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = true
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/extra/Configs/Config.sh b/extra/Configs/Config.sh
new file mode 100644
index 000000000..f34eed523
--- /dev/null
+++ b/extra/Configs/Config.sh
@@ -0,0 +1,169 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+# Copyright (C) 2001 by Hewlett-Packard Australia
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+#TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = /usr/cygnus/yapp-001013/H-i686-pc-linux-gnulibc2.1/bin/sh-linux-gnu-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=../../../linux
+
+#
+# ARCH_CFLAGS if your have something special to add to the CFLAGS
+#
+ARCH_CFLAGS = -DNO_UNDERSCORES
+
+ifeq ($(strip $(TARGET_ARCH)),sh)
+ifeq ($(strip $(TARGET_PROC)),SH2_BIG_THAMIS)
+ARCH_CFLAGS += -DHIOS -mb -m2 -specs=/usr/cygnus/yapp-001013/H-i686-pc-linux-gnulibc2.1/lib/gcc-lib/sh-linux-gnu/2.96-yapp-001013/specs_sh2
+HAS_MMU = false
+endif
+ifeq ($(strip $(TARGET_PROC)),SH3_BIG_UCLINUX)
+ARCH_CFLAGS += -mb
+HAS_MMU = false
+endif
+ifeq ($(strip $(TARGET_PROC)),SH3_LITTLE_UCLINUX)
+ARCH_CFLAGS += -ml
+HAS_MMU = false
+endif
+ifeq ($(strip $(TARGET_PROC)),SH3)
+ARCH_CFLAGS += -ml
+HAS_MMU = true
+endif
+endif
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = false
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+MALLOC = malloc-simple
+#MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /opt/uClinux/$(TARGET_ARCH)-pic-elf
+
diff --git a/extra/Configs/Config.x86 b/extra/Configs/Config.x86
new file mode 100644
index 000000000..e05059bd4
--- /dev/null
+++ b/extra/Configs/Config.x86
@@ -0,0 +1,147 @@
+# Library Configuration rules for uClibc
+#
+# This file contains rules which are shared between multiple Makefiles. Feel
+# free to adjust to taste...
+# -Erik Andersen <andersen@lineo.com> <andersee@debian.org>
+#
+# Copyright (C) 2000 by Lineo, inc.
+#
+# This program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU Library General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Derived in part from the Linux-8086 C library, the GNU C Library, and several
+# other sundry sources. Files within this library are copyright by their
+# respective copyright holders.
+
+# What arch do you want to compile for...
+#TARGET_ARCH=arm
+TARGET_ARCH=i386
+#TARGET_ARCH=m68k
+#TARGET_ARCH=powerpc
+#TARGET_ARCH=sh
+#TARGET_ARCH=sparc
+
+# If you are running a cross compiler, you may want to set this
+# to something more interesting...
+NATIVE_CC = gcc
+CROSS = #i386-linux-
+CC = $(CROSS)gcc
+AR = $(CROSS)ar
+LD = $(CROSS)ld
+STRIPTOOL = $(CROSS)strip
+#STRIPTOOL = /bin/true
+
+# Set the following to `true' to make a debuggable build, and `false' for
+# production builds.
+DODEBUG = false
+
+# Compiler warnings you want to see
+WARNINGS=-Wall
+
+# Note that 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.
+KERNEL_SOURCE=/usr/src/linux
+
+# Set this to `false' if your CPU doesn't have a memory management unit (MMU).
+# Set it to `true' otherwise.
+HAS_MMU = true
+
+# Set this to `false' if you don't have/need basic floating point support
+# support in libc (strtod, printf, scanf). Set it to `true' otherwise.
+# Note: If not true, Rules.mak disables libm as well.
+HAS_FLOATING_POINT = true
+
+# Set this to `false' if you don't have/need float functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_FLOAT = false
+
+# Set this to `false' if you don't have/need double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_DOUBLE = false
+
+# Set this to `false' if you don't have/need long double functions in libm.
+# Set it to `true' otherwise, and make sure HAS_FLOATING_POINT is true as well.
+HAS_LIBM_LONG_DOUBLE = false
+
+# Set this to `false' if you don't have/need "(unsigned) long long int" support.
+# Set it to `true' otherwise.
+# Affects *printf and *scanf functions.
+# Also omits strto(u)ll, and (u)lltostr from the library if `false'.
+HAS_LONG_LONG = true
+
+# Set this to `false' if you don't have/need locale support; `true' otherwise.
+# Note: Currently only affects the ctype functions. You must also generate
+# a locale file for anything but the C locale. See directory extra/locale for
+# a utility to do so. Also see the following option.
+HAS_LOCALE = false
+
+# Set this to the path of your uClibc locale file directory.
+# Warning! This must be different than the glibc locale directory to avoid
+# name conflicts, as the locale files are entirely different in format!
+LOCALE_DIR = "/usr/share/uClibc-locale/"
+
+# This specifies which malloc implementation is used.
+# "malloc-simple" is very, very small, but is also very, very dumb
+# and does not try to make good use of memory or clean up after itself.
+#
+# "malloc" on the other hand is a bit bigger, but is pretty smart thereby
+# minimizing memory wastage and reusing already allocated memory. This
+# can be lots faster and safer IMHO.
+#
+# "malloc-930716" is from libc-5.3.12 and was/is the standard gnu malloc.
+# It is actually smaller than "malloc", at least on i386. Right now, it
+# only works on i386 (and maybe m68k) because it needs sbrk.
+#MALLOC = malloc-simple
+MALLOC = malloc
+#MALLOC = malloc-930716
+
+# If you want to collect common syscall code into one function, set to this to
+# `true'. Set it to false otherwise.
+# On i386 this saves about than 2.8k over all syscalls.
+# The idea came from the implementation in dietlibc.
+# At present, only affects i386.
+UNIFIED_SYSCALL = false
+
+# If you want large file summit support (greater then 2 Gib),
+# turn this on. This has no effect unless your kernel supports
+# lfs. This currently does nothing, but may someday...
+DOLFS = false
+
+# If you want to include RPC support, enable this. RPC is almost never used
+# for anything except NFS support, so unless you plan to use NFS, leave this
+# disabled. This is off by default.
+INCLUDE_RPC = false
+
+# Installation location. For the default uClinux installation from
+# Lineo for m68k, it should be:
+# /opt/uClinux/m68k-pic-coff
+# so includes installed in: /opt/uClinux/m68k-pic-coff/include
+# libc.a and crt0.o in: /opt/uClinux/m68k-pic-coff/lib
+#
+# For ARM it should be:
+# /opt/uClinux/arm-pic-elf
+# so includes installed in: /opt/uClinux/arm-pic-elf/include
+# libc.a and crt0.o in: /opt/uClinux/arm-pic-elf/lib
+#
+# For x86 this should be:
+# /usr/i386-linux-uclibc
+# so includes installed in: /usr/i386-linux-uclibc/include
+# libc.a, libc.so.#, crt0.o in: /usr/i386-linux-uclibc/lib
+#
+INSTALL_DIR = /usr/$(TARGET_ARCH)-linux-uclibc
diff --git a/include/math.h b/include/math.h
index c6ebcaacc..9aada8e42 100644
--- a/include/math.h
+++ b/include/math.h
@@ -156,7 +156,7 @@
#define ERANGE 34
/* Complex numeral. */
-#ifdef __UCLIBC_HAS_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_DOUBLE__
typedef struct
{
double r;
@@ -164,7 +164,7 @@ typedef struct
} cmplx;
#endif
-#ifdef __UCLIBC_HAS_FLOATS__
+#ifdef __UCLIBC_HAS_LIBM_FLOAT__
typedef struct
{
float r;
@@ -172,7 +172,7 @@ typedef struct
} cmplxf;
#endif
-#ifdef __UCLIBC_HAS_LONG_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_LONG_DOUBLE__
/* Long double complex numeral. */
typedef struct
{
@@ -254,7 +254,7 @@ enum
};
/* Return number of classification appropriate for X. */
-#ifdef __UCLIBC_HAS_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_DOUBLE__
# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? \
__fpclassifyf (x) \
@@ -266,7 +266,7 @@ enum
#endif
-#ifdef __UCLIBC_HAS_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_DOUBLE__
/* Return nonzero value if sign of X is negative. */
extern int signbit(double x);
/* Return nonzero value if X is not +-Inf or NaN. */
@@ -280,13 +280,13 @@ extern int isnan(double x);
__isinff (x) \
: sizeof (x) == sizeof (double) ? \
__isinf (x) : __isinfl (x))
-# else
+#else
# define isinf(x) \
(sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
-# endif
+#endif
-# ifdef __UCLIBC_HAS_LONG_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_LONG_DOUBLE__
/* Return nonzero value if sign of X is negative. */
extern int signbitl(long double x);
/* Return nonzero value if X is not +-Inf or NaN. */
@@ -330,7 +330,7 @@ extern int isnanl(long double x);
-#ifdef __UCLIBC_HAS_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_DOUBLE__
/* 7.12.4 Trigonometric functions */
extern double acos(double x);
extern double asin(double x);
@@ -407,7 +407,7 @@ extern double fmin(double x, double y);
extern double fma(double x, double y, double z);
#endif
-#ifdef __UCLIBC_HAS_FLOATS__
+#ifdef __UCLIBC_HAS_LIBM_FLOAT__
/* 7.12.4 Trigonometric functions */
extern float acosf(float x);
extern float asinf(float x);
@@ -484,7 +484,7 @@ extern float fminf(float x, float y);
extern float fmaf(float x, float y, float z);
#endif
-#ifdef __UCLIBC_HAS_LONG_DOUBLE__
+#ifdef __UCLIBC_HAS_LIBM_LONG_DOUBLE__
/* 7.12.4 Trigonometric functions */
extern long double acosl(long double x);
extern long double asinl(long double x);
diff --git a/libc/misc/internals/Makefile b/libc/misc/internals/Makefile
index 2d0be502c..93faa1929 100644
--- a/libc/misc/internals/Makefile
+++ b/libc/misc/internals/Makefile
@@ -24,7 +24,7 @@ TOPDIR=../../../
include $(TOPDIR)Rules.mak
CSRC=ultostr.c ltostr.c __uClibc_main.c tempname.c
-ifeq ($(HAS_FLOATS),true)
+ifeq ($(HAS_FLOATING_POINT),true)
CSRC += dtostr.c zoicheck.c
endif
ifeq ($(HAS_LONG_LONG),true)
diff --git a/libc/stdlib/Makefile b/libc/stdlib/Makefile
index c8fde662b..6a5db9f34 100644
--- a/libc/stdlib/Makefile
+++ b/libc/stdlib/Makefile
@@ -39,7 +39,7 @@ MOBJ2=atexit.o exit.o
CSRC = abort.c getenv.c mktemp.c qsort.c realpath.c abs.c bsearch.c \
mkstemp.c putenv.c rand.c random.c setenv.c system.c div.c ldiv.c \
getpt.c ptsname.c grantpt.c unlockpt.c
-ifeq ($(HAS_FLOATS),true)
+ifeq ($(HAS_FLOATING_POINT),true)
CSRC += strtod.c
endif
COBJS=$(patsubst %.c,%.o, $(CSRC))
diff --git a/libm/Makefile b/libm/Makefile
index 22e6c8e1c..c07190fb1 100644
--- a/libm/Makefile
+++ b/libm/Makefile
@@ -28,13 +28,13 @@ LIBM_SHARED_FULLNAME=libm-$(MAJOR_VERSION).$(MINOR_VERSION).so
TARGET_CC= $(TOPDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc-gcc
DIRS=
-ifeq ($(strip $(HAS_FLOATS)),true)
+ifeq ($(strip $(HAS_LIBM_FLOAT)),true)
DIRS+=float
endif
-ifeq ($(strip $(HAS_DOUBLE)),true)
+ifeq ($(strip $(HAS_LIBM_DOUBLE)),true)
DIRS+=double
endif
-ifeq ($(strip $(HAS_LONG_DOUBLE)),true)
+ifeq ($(strip $(HAS_LIBM_LONG_DOUBLE)),true)
DIRS+=ldouble
endif
ALL_SUBDIRS = float double ldouble
@@ -50,7 +50,7 @@ $(LIBM): subdirs
tags:
ctags -R
-
+
shared: all
if [ -f $(LIBM) ] ; then \
$(TARGET_CC) $(LDFLAGS) -shared -o $(LIBM_SHARED_FULLNAME) \