소스 검색

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.

Manuel Novoa III 23 년 전
부모
커밋
eba708a62b
15개의 변경된 파일1250개의 추가작업 그리고 24개의 파일을 삭제
  1. 1 0
      .cvsignore
  2. 12 7
      Makefile
  3. 6 0
      Rules.mak
  4. 147 0
      extra/Configs/Config.arm
  5. 147 0
      extra/Configs/Config.i386
  6. 161 0
      extra/Configs/Config.m68k
  7. 148 0
      extra/Configs/Config.mips
  8. 148 0
      extra/Configs/Config.mipsel
  9. 147 0
      extra/Configs/Config.powerpc
  10. 169 0
      extra/Configs/Config.sh
  11. 147 0
      extra/Configs/Config.x86
  12. 11 11
      include/math.h
  13. 1 1
      libc/misc/internals/Makefile
  14. 1 1
      libc/stdlib/Makefile
  15. 4 4
      libm/Makefile

+ 1 - 0
.cvsignore

@@ -6,3 +6,4 @@ uClibc_config.h
 uClibc-0*
 libuClibc-0*
 lib
+Config

+ 12 - 7
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 ; \

+ 6 - 0
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....

+ 147 - 0
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

+ 147 - 0
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

+ 161 - 0
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)
+

+ 148 - 0
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

+ 148 - 0
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

+ 147 - 0
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

+ 169 - 0
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
+

+ 147 - 0
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

+ 11 - 11
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);

+ 1 - 1
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)

+ 1 - 1
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))

+ 4 - 4
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) \