Browse Source

Merge remote branch 'origin/master' into nptl_merge

Conflicts:
	Rules.mak
	libc/misc/sysvipc/msgq.c
	test/Rules.mak

Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
Austin Foxley 14 years ago
parent
commit
f757db2d31
100 changed files with 693 additions and 550 deletions
  1. 0 1
      .gitignore
  2. 15 12
      Makefile.in
  3. 3 3
      Makerules
  4. 11 4
      Rules.mak
  5. 0 3
      extra/Configs/Config.alpha
  6. 0 3
      extra/Configs/Config.arm
  7. 0 3
      extra/Configs/Config.avr32
  8. 0 3
      extra/Configs/Config.bfin
  9. 0 3
      extra/Configs/Config.cris
  10. 0 8
      extra/Configs/Config.e1
  11. 0 3
      extra/Configs/Config.frv
  12. 0 3
      extra/Configs/Config.h8300
  13. 0 3
      extra/Configs/Config.hppa
  14. 0 4
      extra/Configs/Config.i960
  15. 0 3
      extra/Configs/Config.ia64
  16. 40 8
      extra/Configs/Config.in
  17. 11 0
      extra/Configs/Config.in.arch
  18. 0 7
      extra/Configs/Config.microblaze
  19. 0 4
      extra/Configs/Config.mips
  20. 0 7
      extra/Configs/Config.nios
  21. 0 6
      extra/Configs/Config.nios2
  22. 0 3
      extra/Configs/Config.powerpc
  23. 0 3
      extra/Configs/Config.sh
  24. 0 3
      extra/Configs/Config.sh64
  25. 0 3
      extra/Configs/Config.sparc
  26. 0 7
      extra/Configs/Config.v850
  27. 0 10
      extra/Configs/Config.vax
  28. 0 3
      extra/Configs/Config.x86_64
  29. 0 4
      extra/Configs/Config.xtensa
  30. 2 2
      extra/config/Makefile
  31. 2 2
      extra/config/Makefile.kconfig
  32. 10 10
      extra/locale/locale_mmap.h
  33. 17 10
      extra/scripts/install_headers.sh
  34. 1 5
      include/a.out.h
  35. 32 1
      include/alloca.h
  36. 5 1
      include/arpa/inet.h
  37. 1 1
      include/arpa/nameser.h
  38. 2 2
      include/arpa/nameser_compat.h
  39. 4 4
      include/assert.h
  40. 21 12
      include/ctype.h
  41. 4 4
      include/elf.h
  42. 67 81
      include/features.h
  43. 4 4
      include/ieee754.h
  44. 134 14
      include/inttypes.h
  45. 30 18
      include/langinfo.h
  46. 8 30
      include/libc-internal.h
  47. 12 11
      include/limits.h
  48. 5 5
      include/locale.h
  49. 2 0
      include/math.h
  50. 9 1
      include/net/ethernet.h
  51. 8 2
      include/net/if_arp.h
  52. 4 0
      include/netinet/ether.h
  53. 6 6
      include/netinet/icmp6.h
  54. 28 13
      include/netinet/in.h
  55. 4 4
      include/netinet/ip6.h
  56. 0 62
      include/netinet/protocols.h
  57. 2 0
      include/nl_types.h
  58. 0 1
      include/paths.h
  59. 15 5
      include/regexp.h
  60. 4 0
      include/rpc/auth.h
  61. 4 0
      include/rpc/auth_des.h
  62. 2 0
      include/signal.h
  63. 16 14
      include/stdlib.h
  64. 3 3
      include/sys/mman.h
  65. 7 3
      include/sys/msg.h
  66. 0 2
      include/sys/poll.h
  67. 2 1
      include/sys/shm.h
  68. 7 2
      include/sys/socket.h
  69. 1 0
      include/sys/stat.h
  70. 4 4
      include/sys/statvfs.h
  71. 5 5
      include/sys/syscall.h
  72. 2 0
      include/sys/timex.h
  73. 18 5
      include/sys/utsname.h
  74. 1 1
      include/sys/wait.h
  75. 2 0
      include/utmp.h
  76. 2 0
      include/values.h
  77. 17 16
      ldso/include/dl-syscall.h
  78. 1 1
      ldso/ldso/bfin/elfinterp.c
  79. 3 3
      ldso/ldso/cris/elfinterp.c
  80. 1 1
      ldso/ldso/frv/elfinterp.c
  81. 2 2
      ldso/ldso/i386/elfinterp.c
  82. 1 1
      ldso/ldso/powerpc/elfinterp.c
  83. 2 2
      ldso/ldso/sh/elfinterp.c
  84. 2 2
      ldso/ldso/sh64/elfinterp.c
  85. 2 2
      ldso/ldso/xtensa/elfinterp.c
  86. 3 5
      libc/misc/assert/__assert.c
  87. 2 2
      libc/misc/sysvipc/msgq.c
  88. 8 14
      libc/stdlib/realpath.c
  89. 1 0
      libc/sysdeps/linux/common/_exit.c
  90. 2 0
      libc/sysdeps/linux/common/bits/mathcalls.h
  91. 2 0
      libc/sysdeps/linux/common/bits/uClibc_ctype.h
  92. 23 0
      libc/sysdeps/linux/common/futimens.c
  93. 2 3
      libc/sysdeps/linux/common/ppoll.c
  94. 2 0
      libc/sysdeps/linux/common/utimensat.c
  95. 1 0
      libc/sysdeps/linux/mips/bits/termios.h
  96. 6 2
      libm/Makefile.in
  97. 5 10
      libm/ldouble_wrappers.c
  98. 2 2
      libnsl/Makefile.in
  99. 2 2
      libresolv/Makefile.in
  100. 2 2
      libutil/Makefile.in

+ 0 - 1
.gitignore

@@ -8,7 +8,6 @@
 #
 #
 *.os
 *.os
 *.oS
 *.oS
-*.dep
 *.a
 *.a
 *.i
 *.i
 *.o
 *.o

+ 15 - 12
Makefile.in

@@ -203,7 +203,7 @@ install: install_runtime install_dev
 
 
 RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)lib $(RUNTIME_PREFIX)lib)
 RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB=$(shell $(top_srcdir)extra/scripts/relative_path.sh $(DEVEL_PREFIX)lib $(RUNTIME_PREFIX)lib)
 
 
-$(top_builddir)extra/scripts/unifdef: $(top_srcdir)extra/scripts/unifdef.c
+$(top_builddir)extra/scripts/unifdef: $(top_srcdir)extra/scripts/unifdef.c|$(@D)
 	$(hcompile.u)
 	$(hcompile.u)
 
 
 # Installs header files.
 # Installs header files.
@@ -212,9 +212,11 @@ $(top_builddir)extra/scripts/unifdef: $(top_srcdir)extra/scripts/unifdef.c
 HEADERS_RM- := \
 HEADERS_RM- := \
 	dl-osinfo.h \
 	dl-osinfo.h \
 	_lfs_64.h \
 	_lfs_64.h \
+	bits/uClibc_arch_features.h \
 	bits/kernel_sigaction.h \
 	bits/kernel_sigaction.h \
 	bits/kernel_stat.h \
 	bits/kernel_stat.h \
 	bits/kernel_types.h \
 	bits/kernel_types.h \
+	bits/syscalls.h \
 	bits/syscalls-common.h \
 	bits/syscalls-common.h \
 	bits/utmpx.h \
 	bits/utmpx.h \
 	bits/uClibc_errno.h \
 	bits/uClibc_errno.h \
@@ -223,9 +225,11 @@ HEADERS_RM- := \
 	bits/atomic.h \
 	bits/atomic.h \
 	bits/sigcontextinfo.h \
 	bits/sigcontextinfo.h \
 	bits/stackinfo.h \
 	bits/stackinfo.h \
-	tls.h
-	# gcc 4.3.1 needs it, dont rm:
-	#bits/uClibc_arch_features.h
+	tls.h \
+	rpc/des_crypt.h \
+	rpc/key_prot.h \
+	rpc/rpc_des.h \
+	sgtty.h
 HEADERS_RM-$(UCLIBC_HAS_FLOATS) += \
 HEADERS_RM-$(UCLIBC_HAS_FLOATS) += \
 	complex.h \
 	complex.h \
 	fpu_control.h \
 	fpu_control.h \
@@ -295,10 +299,6 @@ install_headers: headers $(top_builddir)extra/scripts/unifdef
 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
 	top_builddir=$(top_builddir) \
 	top_builddir=$(top_builddir) \
 	$(top_srcdir)extra/scripts/install_headers.sh include $(PREFIX)$(DEVEL_PREFIX)include
 	$(top_srcdir)extra/scripts/install_headers.sh include $(PREFIX)$(DEVEL_PREFIX)include
-	# Disabled. If libc-internal.h is needed, document here why!
-	#printf '#ifndef _LIBC_INTERNAL_H\n#define _LIBC_INTERNAL_H 1\n#endif\n' >$(PREFIX)$(DEVEL_PREFIX)include/libc-internal.h
-	echo '/* Dont use _syscall#() macros; use the syscall() function */' > \
-		$(PREFIX)$(DEVEL_PREFIX)include/bits/syscalls.h
 	cd $(PREFIX)$(DEVEL_PREFIX)include && $(RM) -r $(HEADERS_RM-)
 	cd $(PREFIX)$(DEVEL_PREFIX)include && $(RM) -r $(HEADERS_RM-)
 ifeq ($(UCLIBC_HAS_WCHAR),)
 ifeq ($(UCLIBC_HAS_WCHAR),)
 	cd $(PREFIX)$(DEVEL_PREFIX)include && mv -f wchar-stub.h wchar.h
 	cd $(PREFIX)$(DEVEL_PREFIX)include && mv -f wchar-stub.h wchar.h
@@ -325,7 +325,7 @@ ifeq ($(HARDWIRED_ABSPATH),y)
 		    $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \
 		    $(top_builddir)lib/libc.so > $(PREFIX)$(DEVEL_PREFIX)lib/libc.so; \
 	fi
 	fi
 else
 else
-	-$(INSTALL) -m 644 lib/libc.so $(PREFIX)$(DEVEL_PREFIX)lib/
+	-$(INSTALL) -m 755 lib/libc.so $(PREFIX)$(DEVEL_PREFIX)lib/
 endif
 endif
 ifeq ($(UCLIBC_HAS_THREADS),y)
 ifeq ($(UCLIBC_HAS_THREADS),y)
 ifneq ($(LINUXTHREADS_OLD),y)
 ifneq ($(LINUXTHREADS_OLD),y)
@@ -337,7 +337,7 @@ ifeq ($(HARDWIRED_ABSPATH),y)
 			>> $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \
 			>> $(PREFIX)$(DEVEL_PREFIX)lib/libpthread.so; \
 	fi
 	fi
 else
 else
-	-$(INSTALL) -m 644 lib/libpthread.so $(PREFIX)$(DEVEL_PREFIX)lib/
+	-$(INSTALL) -m 755 lib/libpthread.so $(PREFIX)$(DEVEL_PREFIX)lib/
 endif
 endif
 endif
 endif
 endif
 endif
@@ -370,7 +370,7 @@ endif
 install_runtime: all
 install_runtime: all
 ifeq ($(HAVE_SHARED),y)
 ifeq ($(HAVE_SHARED),y)
 	$(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)lib
 	$(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)lib
-	$(INSTALL) -m 644 lib/lib*-$(VERSION).so \
+	$(INSTALL) -m 755 lib/lib*-$(VERSION).so \
 		$(PREFIX)$(RUNTIME_PREFIX)lib
 		$(PREFIX)$(RUNTIME_PREFIX)lib
 	(cd lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)lib
 	(cd lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)lib
 	@if [ -x lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so ] ; then \
 	@if [ -x lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so ] ; then \
@@ -396,7 +396,7 @@ hostutils:
 install_hostutils: hostutils
 install_hostutils: hostutils
 	$(Q)$(MAKE) CROSS="$(CROSS)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils utils_install
 	$(Q)$(MAKE) CROSS="$(CROSS)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils utils_install
 
 
-$(addprefix $(top_builddir),include/bits include/sys include/config extra/config/lxdialog extra/locale $(subdirs)):
+$(addprefix $(top_builddir),include/bits include/sys include/config extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
 	$(do_mkdir)
 	$(do_mkdir)
 
 
 # configuration
 # configuration
@@ -436,6 +436,9 @@ defconfig: $(top_builddir)extra/config/conf
 	$(Q)$(top_builddir)extra/config/conf -d extra/Configs/Config.in \
 	$(Q)$(top_builddir)extra/config/conf -d extra/Configs/Config.in \
 		-D extra/Configs/defconfigs/$(ARCH)
 		-D extra/Configs/defconfigs/$(ARCH)
 
 
+menuconfig-clean-y:
+	$(Q)$(MAKE) -C extra/config menuconfig_clean
+
 include_clean:
 include_clean:
 	$(Q)$(RM) $(top_builddir)include/fpu_control.h $(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h
 	$(Q)$(RM) $(top_builddir)include/fpu_control.h $(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h
 	@set -e; \
 	@set -e; \

+ 3 - 3
Makerules

@@ -184,7 +184,7 @@ maybe_exec = \
 
 
 CFLAGS_gen.dep = -MT $@ -MD -MP -MF $(dir $@).$(notdir $@).dep
 CFLAGS_gen.dep = -MT $@ -MD -MP -MF $(dir $@).$(notdir $@).dep
 
 
-cmd_compile.c = $(CC) -c $< -o $@ $(CFLAGS) $(ARCH_CFLAGS) \
+cmd_compile.c = $(CC) -c $< -o $@ $(CFLAGS) \
 	$(CFLAGS-$(suffix $@)) \
 	$(CFLAGS-$(suffix $@)) \
 	$(filter-out $(CFLAGS-OMIT-$(notdir $<)),$(CFLAGS-$(notdir $(<D)))) \
 	$(filter-out $(CFLAGS-OMIT-$(notdir $<)),$(CFLAGS-$(notdir $(<D)))) \
 	$(CFLAGS-$(subst $(top_srcdir),,$(dir $<))) \
 	$(CFLAGS-$(subst $(top_srcdir),,$(dir $<))) \
@@ -198,7 +198,7 @@ cmd_compile.S = $(filter-out -std=gnu99, $(cmd_compile.c)) -D__ASSEMBLER__ $(ASF
 cmd_compile.m = $(cmd_compile.c) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@))
 cmd_compile.m = $(cmd_compile.c) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@))
 cmd_compile.mi= $(cmd_compile.m:-c=-E -dD $(EXTRA_CPPFLAGS))
 cmd_compile.mi= $(cmd_compile.m:-c=-E -dD $(EXTRA_CPPFLAGS))
 
 
-cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@))
+cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@))
 cmd_strip     = $(STRIPTOOL) $(STRIP_FLAGS) $^
 cmd_strip     = $(STRIPTOOL) $(STRIP_FLAGS) $^
 cmd_t_strip   = $(STRIPTOOL) $(STRIP_FLAGS) $@
 cmd_t_strip   = $(STRIPTOOL) $(STRIP_FLAGS) $@
 cmd_ar        = $(AR) $(ARFLAGS) $@ $^
 cmd_ar        = $(AR) $(ARFLAGS) $@ $^
@@ -435,7 +435,7 @@ files.dep := $(libc-a-y) $(libc-so-y) $(libc-nonshared-y) \
 FORCE:
 FORCE:
 
 
 clean: objclean-y headers_clean-y
 clean: objclean-y headers_clean-y
-realclean: clean
+realclean: clean menuconfig-clean-y
 	$(Q)$(RM) $(.depends.dep)
 	$(Q)$(RM) $(.depends.dep)
 
 
 objclean-y: $(objclean-y)
 objclean-y: $(objclean-y)

+ 11 - 4
Rules.mak

@@ -345,6 +345,7 @@ ifeq ($(TARGET_ARCH),arm)
 endif
 endif
 
 
 ifeq ($(TARGET_ARCH),mips)
 ifeq ($(TARGET_ARCH),mips)
+	OPTIMIZATIONS+=-mno-split-addresses
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_2)+=-mips2 -mtune=mips2
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_2)+=-mips2 -mtune=mips2
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_3)+=-mips3 -mtune=mips3
 	CPU_CFLAGS-$(CONFIG_MIPS_ISA_3)+=-mips3 -mtune=mips3
@@ -366,6 +367,7 @@ ifeq ($(TARGET_ARCH),mips)
 endif
 endif
 
 
 ifeq ($(TARGET_ARCH),nios)
 ifeq ($(TARGET_ARCH),nios)
+	OPTIMIZATIONS+=-funaligned-struct-hack
 	CPU_LDFLAGS-y+=-Wl,-m32
 	CPU_LDFLAGS-y+=-Wl,-m32
 	CPU_CFLAGS-y+=-Wl,-m32
 	CPU_CFLAGS-y+=-Wl,-m32
 endif
 endif
@@ -401,6 +403,14 @@ ifeq ($(TARGET_ARCH),h8300)
 	CPU_CFLAGS-$(CONFIG_H8S)    += -ms -mint32
 	CPU_CFLAGS-$(CONFIG_H8S)    += -ms -mint32
 endif
 endif
 
 
+ifeq ($(TARGET_ARCH),i960)
+	OPTIMIZATIONS+=-mh -mint32 #-fsigned-char
+endif
+
+ifeq ($(TARGET_ARCH),e1)
+	OPTIMIZATIONS+=-mgnu-param
+endif
+
 ifeq ($(TARGET_ARCH),cris)
 ifeq ($(TARGET_ARCH),cris)
 	CPU_LDFLAGS-$(CONFIG_CRIS)+=-Wl,-mcrislinux
 	CPU_LDFLAGS-$(CONFIG_CRIS)+=-Wl,-mcrislinux
 	CPU_LDFLAGS-$(CONFIG_CRISV32)+=-Wl,-mcrislinux
 	CPU_LDFLAGS-$(CONFIG_CRISV32)+=-Wl,-mcrislinux
@@ -520,9 +530,6 @@ XWARNINGS+=-Wnonnull -Wundef
 # Works only w/ gcc-3.4 and up, can't be checked for gcc-3.x w/ check_gcc()
 # Works only w/ gcc-3.4 and up, can't be checked for gcc-3.x w/ check_gcc()
 #XWARNINGS+=-Wdeclaration-after-statement
 #XWARNINGS+=-Wdeclaration-after-statement
 endif
 endif
-# Seems to be unused (no ARCH_CFLAGS anywhere), delete?
-# if yes, remove after 0.9.31
-XARCH_CFLAGS=$(call qstrip,$(ARCH_CFLAGS))
 CPU_CFLAGS=$(call qstrip,$(CPU_CFLAGS-y))
 CPU_CFLAGS=$(call qstrip,$(CPU_CFLAGS-y))
 
 
 SSP_DISABLE_FLAGS ?= $(call check_gcc,-fno-stack-protector,)
 SSP_DISABLE_FLAGS ?= $(call check_gcc,-fno-stack-protector,)
@@ -582,7 +589,7 @@ LDFLAGS:=$(LDFLAGS_NOSTRIP) -Wl,-z,defs
 ifeq ($(DODEBUG),y)
 ifeq ($(DODEBUG),y)
 CFLAGS += -O0 -g3 -DDEBUG
 CFLAGS += -O0 -g3 -DDEBUG
 else
 else
-CFLAGS += $(OPTIMIZATION) $(XARCH_CFLAGS) -DNDEBUG
+CFLAGS += $(OPTIMIZATION)
 endif
 endif
 ifeq ($(DOSTRIP),y)
 ifeq ($(DOSTRIP),y)
 LDFLAGS += -Wl,-s
 LDFLAGS += -Wl,-s

+ 0 - 3
extra/Configs/Config.alpha

@@ -14,6 +14,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_HAS_MMU
 	select ARCH_HAS_MMU
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
 	select UCLIBC_HAS_LFS
 	select UCLIBC_HAS_LFS
-
-config ARCH_CFLAGS
-	string

+ 0 - 3
extra/Configs/Config.arm

@@ -12,9 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_ANY_ENDIAN
 	select ARCH_ANY_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target ABI"
 	prompt "Target ABI"
 	default CONFIG_ARM_OABI
 	default CONFIG_ARM_OABI

+ 0 - 3
extra/Configs/Config.avr32

@@ -13,9 +13,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 	select FORCE_SHAREABLE_TEXT_SEGMENTS
 	select FORCE_SHAREABLE_TEXT_SEGMENTS
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target CPU Type"
 	prompt "Target CPU Type"
 	default CONFIG_AVR32_AP7
 	default CONFIG_AVR32_AP7

+ 0 - 3
extra/Configs/Config.bfin

@@ -12,6 +12,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
-
-config ARCH_CFLAGS
-	string

+ 0 - 3
extra/Configs/Config.cris

@@ -12,9 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target Architecture Type"
 	prompt "Target Architecture Type"
 	default CONFIG_CRIS
 	default CONFIG_CRIS

+ 0 - 8
extra/Configs/Config.e1

@@ -13,11 +13,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_SHARED
 	select ARCH_HAS_NO_SHARED
-
-config ARCH_E1 
-	bool
-	default y
-
-config ARCH_CFLAGS
-	string
-	default "-mgnu-param"

+ 0 - 3
extra/Configs/Config.frv

@@ -13,6 +13,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 	select UCLIBC_HAS_FPU
 	select UCLIBC_HAS_FPU
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
-
-config ARCH_CFLAGS
-	string

+ 0 - 3
extra/Configs/Config.h8300

@@ -26,6 +26,3 @@ config CONFIG_H8S
 	bool "H8S (edosk2674)"
 	bool "H8S (edosk2674)"
 
 
 endchoice
 endchoice
-
-config ARCH_CFLAGS
-	string

+ 0 - 3
extra/Configs/Config.hppa

@@ -15,6 +15,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select HAS_NO_THREADS
 	select HAS_NO_THREADS
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
 	select HAVE_NO_SSP
 	select HAVE_NO_SSP
-
-config ARCH_CFLAGS
-	string

+ 0 - 4
extra/Configs/Config.i960

@@ -13,7 +13,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
 	select HAS_NO_THREADS
 	select HAS_NO_THREADS
-
-config ARCH_CFLAGS
-	string
-	default "-mh -mint32 -fsigned-char"

+ 0 - 3
extra/Configs/Config.ia64

@@ -13,6 +13,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_MMU
 	select ARCH_HAS_MMU
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
-
-config ARCH_CFLAGS
-	string

+ 40 - 8
extra/Configs/Config.in

@@ -265,6 +265,7 @@ config HAVE_SHARED
 config FORCE_SHAREABLE_TEXT_SEGMENTS
 config FORCE_SHAREABLE_TEXT_SEGMENTS
 	bool "Only load shared libraries which can share their text segment"
 	bool "Only load shared libraries which can share their text segment"
 	depends on HAVE_SHARED
 	depends on HAVE_SHARED
+	select DOPIC
 	default n
 	default n
 	help
 	help
 	  If you answer Y here, the uClibc native shared library loader will
 	  If you answer Y here, the uClibc native shared library loader will
@@ -282,7 +283,7 @@ config LDSO_LDD_SUPPORT
 	depends on HAVE_SHARED
 	depends on HAVE_SHARED
 	default y
 	default y
 	help
 	help
-	  Enable this to enable all the code needed to support traditional ldd,
+	  Enable all the code needed to support traditional ldd,
 	  which executes the shared library loader to resolve all dependencies
 	  which executes the shared library loader to resolve all dependencies
 	  and then provide a list of shared libraries that are required for an
 	  and then provide a list of shared libraries that are required for an
 	  application to function.  Disabling this option will makes uClibc's
 	  application to function.  Disabling this option will makes uClibc's
@@ -333,14 +334,15 @@ config UCLIBC_STATIC_LDCONFIG
 	  Enable this option to statically link the ldconfig binary.
 	  Enable this option to statically link the ldconfig binary.
 
 
 	  Making ldconfig static can be beneficial if you have a library
 	  Making ldconfig static can be beneficial if you have a library
-	  problem and need to use ldconfig to recover.  Sometimes, it is
+	  problem and need to use ldconfig to recover.  Sometimes it is
 	  preferable to instead keep the size of the system down, in which
 	  preferable to instead keep the size of the system down, in which
 	  case you should disable this option.
 	  case you should disable this option.
 
 
 config LDSO_RUNPATH
 config LDSO_RUNPATH
 	bool "Enable ELF RUNPATH tag support"
 	bool "Enable ELF RUNPATH tag support"
 	depends on HAVE_SHARED
 	depends on HAVE_SHARED
-	default y
+	default y if LDSO_CACHE_SUPPORT
+	default n if !LDSO_CACHE_SUPPORT
 	help
 	help
 	  ELF's may have dynamic RPATH/RUNPATH tags.  These tags list paths
 	  ELF's may have dynamic RPATH/RUNPATH tags.  These tags list paths
 	  which extend the library search paths.  They are really only useful
 	  which extend the library search paths.  They are really only useful
@@ -724,6 +726,31 @@ config UCLIBC_HAS_GETPT
 	def_bool y
 	def_bool y
 endif
 endif
 
 
+config UCLIBC_HAS_LIBUTIL
+	bool "Provide libutil library and functions"
+	depends on UCLIBC_HAS_PTY
+	default n
+	help
+	  Provide a libutil library.
+	  This non-standard conforming library provides the following
+	  utility functions:
+
+	  forkpty(): combines openpty(), fork(2), and login_tty() to
+	               create a new process operating in a pseudo-terminal.
+	  login(): write utmp and wtmp entries
+	  login_tty(): prepares for a login on the tty fd by creating a
+	               new session, making fd the controlling terminal for
+	               the calling process, setting fd to be the standard
+	               input, output, and error streams of the current
+	               process, and closing fd.
+	  logout(): write utmp and wtmp entries
+	  logwtmp(): constructs a utmp structure and calls updwtmp() to
+	               append the structure to the utmp file.
+	  openpty(): finds an available pseudo-terminal and returns
+	               file descriptors for the master and slave
+
+	  This library adds about 3k-4k to your system.
+
 config UCLIBC_HAS_TM_EXTENSIONS
 config UCLIBC_HAS_TM_EXTENSIONS
 	bool "Support 'struct tm' timezone extension fields"
 	bool "Support 'struct tm' timezone extension fields"
 	default y
 	default y
@@ -1184,12 +1211,18 @@ config UCLIBC_HAS_EXTRA_COMPAT_RES_STATE
 	  Answer Y if selecting UCLIBC_HAS_COMPAT_RES_STATE is not enough.
 	  Answer Y if selecting UCLIBC_HAS_COMPAT_RES_STATE is not enough.
 	  As far as I can say, this should never be needed.
 	  As far as I can say, this should never be needed.
 
 
-config UCLIBC_HAS_RESOLV_STUB
+config UCLIBC_HAS_LIBRESOLV_STUB
 	bool "Provide libresolv stub"
 	bool "Provide libresolv stub"
 	default n
 	default n
 	help
 	help
 	  Provide a dummy resolv library.
 	  Provide a dummy resolv library.
 
 
+config UCLIBC_HAS_LIBNSL_STUB
+	bool "Provide libnsl stub"
+	default n
+	help
+	  Provide a dummy nsl library.
+
 endif
 endif
 
 
 
 
@@ -1904,10 +1937,9 @@ config HARDWIRED_ABSPATH
 	  This is a build time optimization.  It has no impact on dynamic
 	  This is a build time optimization.  It has no impact on dynamic
 	  linking at runtime, which doesn't use linker scripts.
 	  linking at runtime, which doesn't use linker scripts.
 
 
-	  You must disable this to use uClibc with a relocatable toolchain,
-	  such as the prebuilt binary cross compilers at
-	  http://uclibc.org/downloads/binaries which may be installed at an
-	  arbitrary location (such as in a user's home directory).
+	  You must disable this to use uClibc with old non-sysroot toolchains,
+	  such as the prebuilt binary cross compilers at:
+	     http://uclibc.org/downloads/binaries
 
 
 	  The amount of time saved by this optimization is actually too small to
 	  The amount of time saved by this optimization is actually too small to
 	  measure. The linker just had to search the library path to find the
 	  measure. The linker just had to search the library path to find the

+ 11 - 0
extra/Configs/Config.in.arch

@@ -160,6 +160,17 @@ config DO_C99_MATH
 	  If your applications require the newer C99 math library functions, 
 	  If your applications require the newer C99 math library functions, 
 	  then answer Y.
 	  then answer Y.
 
 
+config DO_XSI_MATH
+	bool "Enable XSI math extensions to the ISO C standard (bessel)"
+	depends on UCLIBC_HAS_FLOATS
+	default n
+	help
+	  X/Open System Interfaces extensions to ISO C math functions
+	  (differential equation functions):
+
+	  j0, j1, jn - Bessel functions of the first kind
+	  y0, y1, yn - Bessel functions of the second kind
+
 config UCLIBC_HAS_FENV
 config UCLIBC_HAS_FENV
 	bool "Enable C99 Floating-point environment"
 	bool "Enable C99 Floating-point environment"
 	depends on UCLIBC_HAS_FLOATS
 	depends on UCLIBC_HAS_FLOATS

+ 0 - 7
extra/Configs/Config.microblaze

@@ -12,10 +12,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
-
-config ARCH_CFLAGS
-	string
-
-config CROSS
-	string
-	default "mb-"

+ 0 - 4
extra/Configs/Config.mips

@@ -12,10 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_ANY_ENDIAN
 	select ARCH_ANY_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-	default "-mno-split-addresses"
-
 choice
 choice
 	prompt "Target ABI"
 	prompt "Target ABI"
 	default CONFIG_MIPS_O32_ABI
 	default CONFIG_MIPS_O32_ABI

+ 0 - 7
extra/Configs/Config.nios

@@ -14,10 +14,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
 	select HAVE_NO_PIC
 	select HAVE_NO_PIC
-
-config ARCH_CFLAGS
-	string
-	default "-funaligned-struct-hack"
-
-config CROSS
-	string

+ 0 - 6
extra/Configs/Config.nios2

@@ -14,9 +14,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
 	select HAVE_NO_PIC
 	select HAVE_NO_PIC
-
-config ARCH_CFLAGS
-	string
-
-config CROSS
-	string

+ 0 - 3
extra/Configs/Config.powerpc

@@ -13,9 +13,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 	select ARCH_HAS_MMU
 	select ARCH_HAS_MMU
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target Processor Type"
 	prompt "Target Processor Type"
 	default CONFIG_CLASSIC
 	default CONFIG_CLASSIC

+ 0 - 3
extra/Configs/Config.sh

@@ -12,9 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_ANY_ENDIAN
 	select ARCH_ANY_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target Processor Type"
 	prompt "Target Processor Type"
 	default CONFIG_SH4
 	default CONFIG_SH4

+ 0 - 3
extra/Configs/Config.sh64

@@ -12,9 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_ANY_ENDIAN
 	select ARCH_ANY_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target Processor Type"
 	prompt "Target Processor Type"
 	default CONFIG_SH5
 	default CONFIG_SH5

+ 0 - 3
extra/Configs/Config.sparc

@@ -12,9 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_BIG_ENDIAN
 	select ARCH_BIG_ENDIAN
 
 
-config ARCH_CFLAGS
-	string
-
 choice
 choice
 	prompt "Target Processor Type"
 	prompt "Target Processor Type"
 	default CONFIG_SPARC_V8
 	default CONFIG_SPARC_V8

+ 0 - 7
extra/Configs/Config.v850

@@ -13,10 +13,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_MMU
 	select ARCH_HAS_NO_MMU
 	select HAVE_NO_PIC
 	select HAVE_NO_PIC
-
-config ARCH_CFLAGS
-	string
-
-config CROSS
-	string
-	default "v850e-elf-"

+ 0 - 10
extra/Configs/Config.vax

@@ -12,13 +12,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_NO_LDSO
 	select ARCH_HAS_NO_LDSO
-
-config ARCH_CFLAGS
-	string
-
-config ARCH_LDFLAGS
-	string
-
-config CROSS
-	string
-	default "vax-linux-uclibc-"

+ 0 - 3
extra/Configs/Config.x86_64

@@ -12,6 +12,3 @@ config FORCE_OPTIONS_FOR_ARCH
 	default y
 	default y
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_LITTLE_ENDIAN
 	select ARCH_HAS_MMU
 	select ARCH_HAS_MMU
-
-config ARCH_CFLAGS
-	string

+ 0 - 4
extra/Configs/Config.xtensa

@@ -6,7 +6,3 @@
 config TARGET_ARCH
 config TARGET_ARCH
 	string
 	string
 	default "xtensa"
 	default "xtensa"
-
-config ARCH_CFLAGS
-	string
-

+ 2 - 2
extra/config/Makefile

@@ -73,8 +73,8 @@ $(obj)/%:: $(top_srcdir)$(src)/%_shipped
 	@$(disp_gen)
 	@$(disp_gen)
 	$(Q)cat $< > $@
 	$(Q)cat $< > $@
 endif
 endif
-clean:
-	$(do_rm) $(clean-files) conf
+menuconfig_clean:
+	$(do_rm) $(clean-files) conf $(wildcard *.o)
 distclean: clean
 distclean: clean
 	$(do_rm) $(lxdialog) $(conf-objs) $(mconf-objs) \
 	$(do_rm) $(lxdialog) $(conf-objs) $(mconf-objs) \
 		$(kxgettext-objs) \
 		$(kxgettext-objs) \

+ 2 - 2
extra/config/Makefile.kconfig

@@ -150,8 +150,8 @@ clean-files     += config.pot linux.pot
 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
 # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
 PHONY += $(obj)/dochecklxdialog
 PHONY += $(obj)/dochecklxdialog
 $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
 $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
-$(obj)/dochecklxdialog:
-	$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
+#$(obj)/dochecklxdialog:
+#	$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
 
 
 always := dochecklxdialog
 always := dochecklxdialog
 
 

+ 10 - 10
extra/locale/locale_mmap.h

@@ -50,24 +50,24 @@ typedef struct {
 	/* width?? */
 	/* width?? */
 #endif
 #endif
 
 
-	__LOCALE_DATA_COMMON_MMAP(ctype);
-	__LOCALE_DATA_COMMON_MMAP(numeric);
-	__LOCALE_DATA_COMMON_MMAP(monetary);
-	__LOCALE_DATA_COMMON_MMAP(time);
+	__LOCALE_DATA_COMMON_MMAP(ctype)
+	__LOCALE_DATA_COMMON_MMAP(numeric)
+	__LOCALE_DATA_COMMON_MMAP(monetary)
+	__LOCALE_DATA_COMMON_MMAP(time)
 	/* collate is different */
 	/* collate is different */
-	__LOCALE_DATA_COMMON_MMAP(messages);
+	__LOCALE_DATA_COMMON_MMAP(messages)
 
 
 
 
 #ifdef __CTYPE_HAS_8_BIT_LOCALES
 #ifdef __CTYPE_HAS_8_BIT_LOCALES
 	const __codeset_8_bit_t codeset_8_bit[__LOCALE_DATA_NUM_CODESETS];
 	const __codeset_8_bit_t codeset_8_bit[__LOCALE_DATA_NUM_CODESETS];
 #endif
 #endif
 
 
-	__LOCALE_DATA_COMMON_MMIDX(ctype);
-	__LOCALE_DATA_COMMON_MMIDX(numeric);
-	__LOCALE_DATA_COMMON_MMIDX(monetary);
-	__LOCALE_DATA_COMMON_MMIDX(time);
+	__LOCALE_DATA_COMMON_MMIDX(ctype)
+	__LOCALE_DATA_COMMON_MMIDX(numeric)
+	__LOCALE_DATA_COMMON_MMIDX(monetary)
+	__LOCALE_DATA_COMMON_MMIDX(time)
 	/* collate is different */
 	/* collate is different */
-	__LOCALE_DATA_COMMON_MMIDX(messages);
+	__LOCALE_DATA_COMMON_MMIDX(messages)
 
 
 	const uint16_t collate_data[__lc_collate_data_LEN];
 	const uint16_t collate_data[__lc_collate_data_LEN];
 
 

+ 17 - 10
extra/scripts/install_headers.sh

@@ -4,6 +4,10 @@
 # $2 = dst dir
 # $2 = dst dir
 # $top_builddir = well you guessed it
 # $top_builddir = well you guessed it
 
 
+srcdir=${1:-include}
+dstdir=${2:-`. ./.config 2>/dev/null && echo ${DEVEL_PREFIX}/include`}
+: ${top_builddir:=.}
+
 die_if_not_dir()
 die_if_not_dir()
 {
 {
 	for dir in "$@"; do
 	for dir in "$@"; do
@@ -19,9 +23,9 @@ umask 022
 
 
 
 
 # Sanity tests
 # Sanity tests
-die_if_not_dir "$1"
-mkdir -p "$2" 2>/dev/null
-die_if_not_dir "$2"
+die_if_not_dir "${srcdir}"
+mkdir -p "${dstdir}" 2>/dev/null
+die_if_not_dir "${dstdir}"
 die_if_not_dir "$top_builddir"
 die_if_not_dir "$top_builddir"
 if ! test -x "$top_builddir/extra/scripts/unifdef"; then
 if ! test -x "$top_builddir/extra/scripts/unifdef"; then
 	echo "Error: need '$top_builddir/extra/scripts/unifdef' executable"
 	echo "Error: need '$top_builddir/extra/scripts/unifdef' executable"
@@ -31,16 +35,16 @@ fi
 
 
 # Sanitize and copy uclibc headers
 # Sanitize and copy uclibc headers
 (
 (
-# We must cd, or else we'll prepend "$1" to filenames!
-cd "$1" || exit 1
+# We must cd, or else we'll prepend "${srcdir}" to filenames!
+cd "${srcdir}" || exit 1
 find . ! -name '.' -a ! -path '*/.*' | sed -e 's/^\.\///' -e '/^config\//d' \
 find . ! -name '.' -a ! -path '*/.*' | sed -e 's/^\.\///' -e '/^config\//d' \
 	-e '/^config$/d'
 	-e '/^config$/d'
 ) | \
 ) | \
 (
 (
 IFS=''
 IFS=''
 while read -r filename; do
 while read -r filename; do
-	if test -d "$1/$filename"; then
-		mkdir -p "$2/$filename" 2>/dev/null
+	if test -d "${srcdir}/$filename"; then
+		mkdir -p "${dstdir}/$filename" 2>/dev/null
 		continue
 		continue
 	fi
 	fi
 	if test x"${filename##libc-*.h}" = x""; then
 	if test x"${filename##libc-*.h}" = x""; then
@@ -55,15 +59,18 @@ while read -r filename; do
 		-U_LIBC \
 		-U_LIBC \
 		-U__UCLIBC_GEN_LOCALE \
 		-U__UCLIBC_GEN_LOCALE \
 		-U__NO_CTYPE \
 		-U__NO_CTYPE \
-		"$1/$filename" \
+		"${srcdir}/$filename" \
 	| sed -e '/^rtld_hidden_proto[ 	]*([a-zA-Z0-9_]*)$/d' \
 	| sed -e '/^rtld_hidden_proto[ 	]*([a-zA-Z0-9_]*)$/d' \
 	| sed -e '/^lib\(c\|m\|resolv\|dl\|intl\|rt\|nsl\|util\|crypt\|pthread\)_hidden_proto[ 	]*([a-zA-Z0-9_]*)$/d' \
 	| sed -e '/^lib\(c\|m\|resolv\|dl\|intl\|rt\|nsl\|util\|crypt\|pthread\)_hidden_proto[ 	]*([a-zA-Z0-9_]*)$/d' \
-	>"$2/$filename"
+	>"${dstdir}/$filename"
 done
 done
 )
 )
 
 
 
 
 # Fix mode/owner bits
 # Fix mode/owner bits
-cd "$2" || exit 1
+cd "${dstdir}" || exit 1
 chmod -R u=rwX,go=rX . >/dev/null 2>&1
 chmod -R u=rwX,go=rX . >/dev/null 2>&1
 chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$/\1:\2/'` . >/dev/null 2>&1
 chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$/\1:\2/'` . >/dev/null 2>&1
+
+# ignore errors on unrelated files
+exit 0

+ 1 - 5
include/a.out.h

@@ -1,5 +1 @@
-#ifdef _LIBC
-# include_next <linux/a.out.h>
-#else
-# include <linux/a.out.h>
-#endif
+#include <linux/a.out.h>

+ 32 - 1
include/alloca.h

@@ -36,7 +36,38 @@ extern void *alloca (size_t __size) __THROW;
 # define alloca(size)	__builtin_alloca (size)
 # define alloca(size)	__builtin_alloca (size)
 #endif /* GCC.  */
 #endif /* GCC.  */
 
 
-#define __MAX_ALLOCA_CUTOFF	65536
+#ifdef _LIBC
+# define __MAX_ALLOCA_CUTOFF	65536
+
+# include <bits/stackinfo.h>
+# ifdef _STACK_GROWS_DOWN
+#  define extend_alloca(buf, len, newlen) \
+   (__typeof (buf)) ({ size_t __newlen = (newlen);			      \
+		      char *__newbuf = alloca (__newlen);		      \
+		      if (__newbuf + __newlen == (char *) buf)		      \
+			len += __newlen;				      \
+		      else						      \
+			len = __newlen;					      \
+		      __newbuf; })
+# elif defined _STACK_GROWS_UP
+#  define extend_alloca(buf, len, newlen) \
+   (__typeof (buf)) ({ size_t __newlen = (newlen);			      \
+		      char *__newbuf = alloca (__newlen);		      \
+		      char *__buf = (buf);				      \
+		      if (__buf + __newlen == __newbuf)			      \
+			{						      \
+			  len += __newlen;				      \
+			  __newbuf = __buf;				      \
+			}						      \
+		      else						      \
+			len = __newlen;					      \
+		      __newbuf; })
+# else
+#  error unknown stack
+#  define extend_alloca(buf, len, newlen) \
+   alloca (((len) = (newlen)))
+# endif
+#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 5 - 1
include/arpa/inet.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,9 +57,11 @@ libc_hidden_proto(inet_network)
    is a pointer to an internal array containing the string.  */
    is a pointer to an internal array containing the string.  */
 extern char *inet_ntoa (struct in_addr __in) __THROW;
 extern char *inet_ntoa (struct in_addr __in) __THROW;
 libc_hidden_proto(inet_ntoa)
 libc_hidden_proto(inet_ntoa)
+#ifdef __UCLIBC__
 /* Recursion-safe flavor */
 /* Recursion-safe flavor */
 extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW;
 extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW;
 libc_hidden_proto(inet_ntoa_r)
 libc_hidden_proto(inet_ntoa_r)
+#endif
 
 
 /* Convert from presentation format of an Internet number in buffer
 /* Convert from presentation format of an Internet number in buffer
    starting at CP to the binary network format and store result for
    starting at CP to the binary network format and store result for
@@ -84,6 +86,7 @@ libc_hidden_proto(inet_ntop)
 extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
 extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
 libc_hidden_proto(inet_aton)
 libc_hidden_proto(inet_aton)
 
 
+#if 0
 /* Format a network number NET into presentation format and place result
 /* Format a network number NET into presentation format and place result
    in buffer starting at BUF with length of LEN bytes.  */
    in buffer starting at BUF with length of LEN bytes.  */
 extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
 extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
@@ -111,6 +114,7 @@ extern unsigned int inet_nsap_addr (__const char *__cp,
 extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
 extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
 			     char *__buf) __THROW;
 			     char *__buf) __THROW;
 #endif
 #endif
+#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 1 - 1
include/arpa/nameser.h

@@ -287,7 +287,7 @@ typedef enum __ns_type {
 	ns_t_naptr = 35,	/* Naming Authority PoinTeR */
 	ns_t_naptr = 35,	/* Naming Authority PoinTeR */
 	ns_t_kx = 36,		/* Key Exchange */
 	ns_t_kx = 36,		/* Key Exchange */
 	ns_t_cert = 37,		/* Certification record */
 	ns_t_cert = 37,		/* Certification record */
-	ns_t_a6 = 38,		/* IPv6 address (deprecates AAAA) */
+	ns_t_a6 = 38,		/* IPv6 address (deprecated, use ns_t_aaaa) */
 	ns_t_dname = 39,	/* Non-terminal DNAME (for IPv6) */
 	ns_t_dname = 39,	/* Non-terminal DNAME (for IPv6) */
 	ns_t_sink = 40,		/* Kitchen sink (experimentatl) */
 	ns_t_sink = 40,		/* Kitchen sink (experimentatl) */
 	ns_t_opt = 41,		/* EDNS0 option (meta-RR) */
 	ns_t_opt = 41,		/* EDNS0 option (meta-RR) */

+ 2 - 2
include/arpa/nameser_compat.h

@@ -47,7 +47,7 @@
 
 
 typedef struct {
 typedef struct {
 	unsigned	id :16;		/* query identification number */
 	unsigned	id :16;		/* query identification number */
-#if BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 			/* fields in third byte */
 			/* fields in third byte */
 	unsigned	qr: 1;		/* response flag */
 	unsigned	qr: 1;		/* response flag */
 	unsigned	opcode: 4;	/* purpose of message */
 	unsigned	opcode: 4;	/* purpose of message */
@@ -61,7 +61,7 @@ typedef struct {
 	unsigned	cd: 1;		/* checking disabled by resolver */
 	unsigned	cd: 1;		/* checking disabled by resolver */
 	unsigned	rcode :4;	/* response code */
 	unsigned	rcode :4;	/* response code */
 #endif
 #endif
-#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN || __BYTE_ORDER == __PDP_ENDIAN
 			/* fields in third byte */
 			/* fields in third byte */
 	unsigned	rd :1;		/* recursion desired */
 	unsigned	rd :1;		/* recursion desired */
 	unsigned	tc :1;		/* truncated message */
 	unsigned	tc :1;		/* truncated message */

+ 4 - 4
include/assert.h

@@ -51,15 +51,15 @@
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
 /* This prints an "Assertion failed" message and aborts.  */
 /* This prints an "Assertion failed" message and aborts.  */
-extern void __assert __P((const char *, const char *, int, const char *));
+extern void __assert(const char *, const char *, unsigned int, const char *)
+	__THROW __attribute__ ((__noreturn__));
 libc_hidden_proto(__assert)
 libc_hidden_proto(__assert)
 
 
 __END_DECLS
 __END_DECLS
 
 
 # define assert(expr) \
 # define assert(expr) \
-  (__ASSERT_VOID_CAST ((expr) ? 0 :					      \
-		       (__assert (__STRING(expr), __FILE__, __LINE__,    \
-				       __ASSERT_FUNCTION), 0)))
+  (__ASSERT_VOID_CAST ((expr) ? 0 :								\
+		       (__assert (__STRING(expr), __FILE__, __LINE__, __ASSERT_FUNCTION), 0)))
 
 
 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
 /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
    which contains the name of the function currently being defined.
    which contains the name of the function currently being defined.

+ 21 - 12
include/ctype.h

@@ -66,7 +66,8 @@ libc_hidden_proto(tolower)
 extern int toupper(int __c) __THROW;
 extern int toupper(int __c) __THROW;
 libc_hidden_proto(toupper)
 libc_hidden_proto(toupper)
 
 
-#if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
+#if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) && \
+	defined __UCLIBC_SUSV4_LEGACY__
 /* Return nonzero iff C is in the ASCII set
 /* Return nonzero iff C is in the ASCII set
    (i.e., is no more than 7 bits wide).  */
    (i.e., is no more than 7 bits wide).  */
 extern int isascii(int __c) __THROW;
 extern int isascii(int __c) __THROW;
@@ -203,11 +204,12 @@ libc_hidden_proto(__ctype_tolower)
 
 
 #endif /* __UCLIBC_HAS_XLOCALE__ */
 #endif /* __UCLIBC_HAS_XLOCALE__ */
 
 
-
+#ifdef __UCLIBC_SUSV4_LEGACY__
 #define	__isascii(c)	(((c) & ~0x7f) == 0)	/* If C is a 7 bit value.  */
 #define	__isascii(c)	(((c) & ~0x7f) == 0)	/* If C is a 7 bit value.  */
 #define	__toascii(c)	((c) & 0x7f)		/* Mask off high bits.  */
 #define	__toascii(c)	((c) & 0x7f)		/* Mask off high bits.  */
+#endif
 
 
-#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
+#ifdef _LIBC
 /* These are uClibc-specific. */
 /* These are uClibc-specific. */
 #define __isdigit_char(C)    (((unsigned char)((C) - '0')) <= 9)
 #define __isdigit_char(C)    (((unsigned char)((C) - '0')) <= 9)
 #define __isdigit_int(C)     (((unsigned int)((C) - '0')) <= 9)
 #define __isdigit_int(C)     (((unsigned int)((C) - '0')) <= 9)
@@ -278,13 +280,12 @@ __NTH (toupper (int __c))
 #  define toupper(c)	__tobody(c, toupper, __UCLIBC_CTYPE_TOUPPER, (c))
 #  define toupper(c)	__tobody(c, toupper, __UCLIBC_CTYPE_TOUPPER, (c))
 # endif /* Optimizing gcc */
 # endif /* Optimizing gcc */
 
 
-# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
+# if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \
+	&& defined __UCLIBC_SUSV4_LEGACY__
 #  define isascii(c)	__isascii (c)
 #  define isascii(c)	__isascii (c)
 #  define toascii(c)	__toascii (c)
 #  define toascii(c)	__toascii (c)
-#  if __UCLIBC_SUSV4_LEGACY__
-#    define _tolower(c)	((int) (__UCLIBC_CTYPE_TOLOWER)[(int) (c)])
-#    define _toupper(c)	((int) (__UCLIBC_CTYPE_TOUPPER)[(int) (c)])
-#   endif
+#  define _tolower(c)	((int) (__UCLIBC_CTYPE_TOLOWER)[(int) (c)])
+#  define _toupper(c)	((int) (__UCLIBC_CTYPE_TOUPPER)[(int) (c)])
 # endif
 # endif
 
 
 #endif /* not __cplusplus */
 #endif /* not __cplusplus */
@@ -334,8 +335,8 @@ libc_hidden_proto(isxdigit_l)
 extern int isblank_l(int, __locale_t) __THROW;
 extern int isblank_l(int, __locale_t) __THROW;
 libc_hidden_proto(isblank_l)
 libc_hidden_proto(isblank_l)
 
 
-# if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
-
+# if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \
+	&& defined __UCLIBC_SUSV4_LEGACY__
 /* Return nonzero iff C is in the ASCII set
 /* Return nonzero iff C is in the ASCII set
    (i.e., is no more than 7 bits wide).  */
    (i.e., is no more than 7 bits wide).  */
 extern int isascii_l (int __c) __THROW;
 extern int isascii_l (int __c) __THROW;
@@ -378,7 +379,8 @@ libc_hidden_proto(toupper_l)
 #  define __isxdigit_l(c,l)	__isctype_l((c), _ISxdigit, (l))
 #  define __isxdigit_l(c,l)	__isctype_l((c), _ISxdigit, (l))
 #  define __isblank_l(c,l)	__isctype_l((c), _ISblank, (l))
 #  define __isblank_l(c,l)	__isctype_l((c), _ISblank, (l))
 
 
-#  if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
+#  if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \
+	&& defined __UCLIBC_SUSV4_LEGACY__
 #   define __isascii_l(c,l)	((l), __isascii (c))
 #   define __isascii_l(c,l)	((l), __isascii (c))
 #   define __toascii_l(c,l)	((l), __toascii (c))
 #   define __toascii_l(c,l)	((l), __toascii (c))
 #  endif
 #  endif
@@ -396,7 +398,8 @@ libc_hidden_proto(toupper_l)
 #  define isxdigit_l(c,l)	__isxdigit_l ((c), (l))
 #  define isxdigit_l(c,l)	__isxdigit_l ((c), (l))
 #  define isblank_l(c,l)	__isblank_l ((c), (l))
 #  define isblank_l(c,l)	__isblank_l ((c), (l))
 
 
-#  if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN
+#  if (defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN) \
+	&& defined __UCLIBC_SUSV4_LEGACY__
 #   define isascii_l(c,l)	__isascii_l ((c), (l))
 #   define isascii_l(c,l)	__isascii_l ((c), (l))
 #   define toascii_l(c,l)	__toascii_l ((c), (l))
 #   define toascii_l(c,l)	__toascii_l ((c), (l))
 #  endif
 #  endif
@@ -409,4 +412,10 @@ __END_DECLS
 
 
 #endif /* __UCLIBC_HAS_CTYPE_TABLES__ */
 #endif /* __UCLIBC_HAS_CTYPE_TABLES__ */
 
 
+/* We define {__,}isascii for internal use only */
+#if defined _LIBC && !defined __UCLIBC_SUSV4_LEGACY__
+# define __isascii(c) (((c) & ~0x7f) == 0)
+# define isascii(c) __isascii (c)
+#endif
+
 #endif /* ctype.h  */
 #endif /* ctype.h  */

+ 4 - 4
include/elf.h

@@ -2180,10 +2180,10 @@ typedef Elf32_Addr Elf32_Conflict;
 #define R_PPC_DIAB_RELSDA_HA	185	/* like EMB_RELSDA, adjusted high 16 */
 #define R_PPC_DIAB_RELSDA_HA	185	/* like EMB_RELSDA, adjusted high 16 */
 
 
 /* GNU relocs used in PIC code sequences.  */
 /* GNU relocs used in PIC code sequences.  */
-#define R_PPC_REL16		249	/* word32   (sym-.) */
-#define R_PPC_REL16_LO		250	/* half16   (sym-.)@l */
-#define R_PPC_REL16_HI		251	/* half16   (sym-.)@h */
-#define R_PPC_REL16_HA		252	/* half16   (sym-.)@ha */
+#define R_PPC_REL16		249	/* word32   (sym+add-.) */
+#define R_PPC_REL16_LO		250	/* half16   (sym+add-.)@l */
+#define R_PPC_REL16_HI		251	/* half16   (sym+add-.)@h */
+#define R_PPC_REL16_HA		252	/* half16   (sym+add-.)@ha */
 
 
 /* This is a phony reloc to handle any old fashioned TOC16 references
 /* This is a phony reloc to handle any old fashioned TOC16 references
    that may still be in object files.  */
    that may still be in object files.  */

+ 67 - 81
include/features.h

@@ -19,35 +19,6 @@
 #ifndef	_FEATURES_H
 #ifndef	_FEATURES_H
 #define	_FEATURES_H	1
 #define	_FEATURES_H	1
 
 
-/* This macro indicates that the installed library is uClibc.  Use
- * __UCLIBC_MAJOR__ and __UCLIBC_MINOR__ to test for the features in
- * specific releases.  */
-#define	__UCLIBC__		1
-
-/* Load up the current set of uClibc supported features along
- * with the current uClibc major and minor version numbers.
- * For uClibc release 0.9.26, these numbers would be:
- *	#define	__UCLIBC_MAJOR__	0
- *	#define	__UCLIBC_MINOR__	9
- *	#define	__UCLIBC_SUBLEVEL__	26
- */
-#define __need_uClibc_config_h
-#include <bits/uClibc_config.h>
-#undef __need_uClibc_config_h
-#ifdef _LIBC
-#include <bits/uClibc_arch_features.h>
-#endif
-
-/* For uClibc, always optimize for size -- this should disable
- * a lot of expensive inlining...
- * TODO: this is wrong! __OPTIMIZE_SIZE__ is an indicator of
- * gcc -Os compile. We should not mess with compiler inlines.
- * We should instead disable __USE_EXTERN_INLINES unconditionally,
- * or maybe actually audit and test uclibc to work correctly
- * with __USE_EXTERN_INLINES on.
- */
-#define __OPTIMIZE_SIZE__   1
-
 /* These are defined by the user (or the compiler)
 /* These are defined by the user (or the compiler)
    to specify the desired environment:
    to specify the desired environment:
 
 
@@ -189,10 +160,8 @@
 # define _XOPEN_SOURCE	700
 # define _XOPEN_SOURCE	700
 # undef  _XOPEN_SOURCE_EXTENDED
 # undef  _XOPEN_SOURCE_EXTENDED
 # define _XOPEN_SOURCE_EXTENDED	1
 # define _XOPEN_SOURCE_EXTENDED	1
-# ifdef __UCLIBC_HAS_LFS__
-#  undef	 _LARGEFILE64_SOURCE
-#  define _LARGEFILE64_SOURCE	1
-# endif /* __UCLIBC_HAS_LFS__ */
+# undef	 _LARGEFILE64_SOURCE
+# define _LARGEFILE64_SOURCE	1
 # undef  _BSD_SOURCE
 # undef  _BSD_SOURCE
 # define _BSD_SOURCE	1
 # define _BSD_SOURCE	1
 # undef  _SVID_SOURCE
 # undef  _SVID_SOURCE
@@ -201,6 +170,57 @@
 # define _ATFILE_SOURCE	1
 # define _ATFILE_SOURCE	1
 #endif
 #endif
 
 
+/* This macro indicates that the installed library is uClibc.  Use
+ * __UCLIBC_MAJOR__ and __UCLIBC_MINOR__ to test for the features in
+ * specific releases.  */
+#define	__UCLIBC__		1
+
+#ifdef __UCLIBC__
+/* Load up the current set of uClibc supported features along
+ * with the current uClibc major and minor version numbers.
+ * For uClibc release 0.9.26, these numbers would be:
+ *	#define	__UCLIBC_MAJOR__	0
+ *	#define	__UCLIBC_MINOR__	9
+ *	#define	__UCLIBC_SUBLEVEL__	26
+ */
+# define __need_uClibc_config_h
+# include <bits/uClibc_config.h>
+# undef __need_uClibc_config_h
+
+/* For uClibc, always optimize for size -- this should disable
+ * a lot of expensive inlining...
+ * TODO: this is wrong! __OPTIMIZE_SIZE__ is an indicator of
+ * gcc -Os compile. We should not mess with compiler inlines.
+ * We should instead disable __USE_EXTERN_INLINES unconditionally,
+ * or maybe actually audit and test uclibc to work correctly
+ * with __USE_EXTERN_INLINES on.
+ */
+# define __OPTIMIZE_SIZE__   1
+
+/* disable unsupported features */
+# undef _FORTIFY_SOURCE
+# undef __LDBL_COMPAT
+
+# ifndef __UCLIBC_HAS_THREADS__
+#  if defined _REENTRANT || defined _THREAD_SAFE
+#   warning requested reentrant code, but thread support was disabled
+#   undef _REENTRANT
+#   undef _THREAD_SAFE
+#  endif
+# endif
+
+# ifndef __UCLIBC_HAS_LFS__
+#  undef _LARGEFILE64_SOURCE
+/* NOTE: This is probably incorrect on a 64-bit arch... */
+#  if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
+#   error It appears you have defined _FILE_OFFSET_BITS=64.  Unfortunately, \
+uClibc was built without large file support enabled.
+#  endif
+# elif defined __BCC__
+#  error BCC does not support LFS, please disable it
+# endif
+#endif /* __UCLIBC__ */
+
 /* If nothing (other than _GNU_SOURCE) is defined,
 /* If nothing (other than _GNU_SOURCE) is defined,
    define _BSD_SOURCE and _SVID_SOURCE.  */
    define _BSD_SOURCE and _SVID_SOURCE.  */
 #if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
 #if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
@@ -329,8 +349,6 @@
 # define __USE_REENTRANT	1
 # define __USE_REENTRANT	1
 #endif
 #endif
 
 
-/* uClibc does not support _FORTIFY_SOURCE */
-#undef _FORTIFY_SOURCE
 #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
 #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
     && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
     && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
 # if _FORTIFY_SOURCE > 1
 # if _FORTIFY_SOURCE > 1
@@ -343,8 +361,10 @@
 #endif
 #endif
 
 
 /* We do support the IEC 559 math functionality, real and complex.  */
 /* We do support the IEC 559 math functionality, real and complex.  */
+#ifdef __UCLIBC_HAS_FLOATS__
 #define __STDC_IEC_559__		1
 #define __STDC_IEC_559__		1
 #define __STDC_IEC_559_COMPLEX__	1
 #define __STDC_IEC_559_COMPLEX__	1
+#endif
 
 
 #ifdef __UCLIBC_HAS_WCHAR__
 #ifdef __UCLIBC_HAS_WCHAR__
 /* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
 /* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
@@ -362,14 +382,16 @@
 /* This macro indicates that the installed library is the GNU C Library.
 /* This macro indicates that the installed library is the GNU C Library.
    For historic reasons the value now is 6 and this will stay from now
    For historic reasons the value now is 6 and this will stay from now
    on.  The use of this variable is deprecated.  */
    on.  The use of this variable is deprecated.  */
-# undef  __GNU_LIBRARY__
-# define __GNU_LIBRARY__ 6
+/* uClibc WARNING: leave these aligned to the left, don't put a space after '#', else
+ * broken apps could fail the check. */
+#undef  __GNU_LIBRARY__
+#define __GNU_LIBRARY__ 6
 
 
 /* Major and minor version number of the GNU C library package.  Use
 /* Major and minor version number of the GNU C library package.  Use
    these macros to test for features in specific releases.  */
    these macros to test for features in specific releases.  */
 /* Don't do it, if you want to keep uClibc happy.  */
 /* Don't do it, if you want to keep uClibc happy.  */
-# define	__GLIBC__	2
-# define	__GLIBC_MINOR__	2
+#define	__GLIBC__	2
+#define	__GLIBC_MINOR__	2
 #endif
 #endif
 
 
 #define __GLIBC_PREREQ(maj, min) \
 #define __GLIBC_PREREQ(maj, min) \
@@ -395,7 +417,9 @@
    __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
    __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
 # if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
 # if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
 #  define __USE_LARGEFILE	1
 #  define __USE_LARGEFILE	1
+#  ifdef __UCLIBC_HAS_LFS__
 #  define __USE_LARGEFILE64	1
 #  define __USE_LARGEFILE64	1
+#  endif
 # endif
 # endif
 
 
 #endif	/* !ASSEMBLER */
 #endif	/* !ASSEMBLER */
@@ -413,50 +437,12 @@
 # define __USE_EXTERN_INLINES	1
 # define __USE_EXTERN_INLINES	1
 #endif
 #endif
 
 
-
-/* Make sure users large file options agree with uClibc's configuration. */
-#ifndef __UCLIBC_HAS_LFS__
-
-/* If uClibc was built without large file support, output an error if
- * 64-bit file offsets were requested.
- * NOTE: This is probably incorrect on a 64-bit arch... */
-# ifdef __USE_FILE_OFFSET64
-#  error It appears you have defined _FILE_OFFSET_BITS=64.  Unfortunately, \
-uClibc was built without large file support enabled.
-# endif
-
-/* If uClibc was built without large file support and _LARGEFILE64_SOURCE
- * is defined, undefine it. */
-# ifdef _LARGEFILE64_SOURCE
-#  undef _LARGEFILE64_SOURCE
-#  undef __USE_LARGEFILE64
-# endif
-
-/* If we're actually building uClibc with large file support,
- * define __USE_LARGEFILE64 and __USE_LARGEFILE. */
-#elif defined _LIBC
-# undef _LARGEFILE_SOURCE
-# undef _LARGEFILE64_SOURCE
-# undef _FILE_OFFSET_BITS
-# undef __USE_LARGEFILE
-# undef __USE_LARGEFILE64
-# undef __USE_FILE_OFFSET64
-# define _LARGEFILE_SOURCE       1
-# define _LARGEFILE64_SOURCE     1
-# define __USE_LARGEFILE         1
-# define __USE_LARGEFILE64       1
-#endif
-
 #ifdef _LIBC
 #ifdef _LIBC
+# ifdef __UCLIBC_HAS_LFS__
+#  undef _FILE_OFFSET_BITS
+#  undef __USE_FILE_OFFSET64
+# endif
 # include <libc-internal.h>
 # include <libc-internal.h>
 #endif
 #endif
 
 
-/* Some people like to build up uClibc with *-elf toolchains, so
- * a little grease here until we drop '#ifdef __linux__' checks
- * from our source code.
- */
-#ifndef __linux__
-# define __linux__ 1
-#endif
-
 #endif	/* features.h  */
 #endif	/* features.h  */

+ 4 - 4
include/ieee754.h

@@ -80,7 +80,7 @@ union ieee754_double
 	unsigned int mantissa1:32;
 	unsigned int mantissa1:32;
 #endif				/* Big endian.  */
 #endif				/* Big endian.  */
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
-# if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
 	unsigned int mantissa0:20;
 	unsigned int mantissa0:20;
 	unsigned int exponent:11;
 	unsigned int exponent:11;
 	unsigned int negative:1;
 	unsigned int negative:1;
@@ -106,7 +106,7 @@ union ieee754_double
 	unsigned int mantissa0:19;
 	unsigned int mantissa0:19;
 	unsigned int mantissa1:32;
 	unsigned int mantissa1:32;
 #else
 #else
-# if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
 	unsigned int mantissa0:19;
 	unsigned int mantissa0:19;
 	unsigned int quiet_nan:1;
 	unsigned int quiet_nan:1;
 	unsigned int exponent:11;
 	unsigned int exponent:11;
@@ -142,7 +142,7 @@ union ieee854_long_double
 	unsigned int mantissa1:32;
 	unsigned int mantissa1:32;
 #endif
 #endif
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
-# if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
 	unsigned int exponent:15;
 	unsigned int exponent:15;
 	unsigned int negative:1;
 	unsigned int negative:1;
 	unsigned int empty:16;
 	unsigned int empty:16;
@@ -171,7 +171,7 @@ union ieee854_long_double
 	unsigned int mantissa1:32;
 	unsigned int mantissa1:32;
 #endif
 #endif
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
 #if	__BYTE_ORDER == __LITTLE_ENDIAN
-# if	__FLOAT_WORD_ORDER == BIG_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
 	unsigned int exponent:15;
 	unsigned int exponent:15;
 	unsigned int negative:1;
 	unsigned int negative:1;
 	unsigned int empty:16;
 	unsigned int empty:16;

+ 134 - 14
include/inttypes.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2001, 2004, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -70,8 +70,8 @@ typedef wchar_t __gwchar_t;
 # define PRIdLEAST64	__PRI64_PREFIX "d"
 # define PRIdLEAST64	__PRI64_PREFIX "d"
 
 
 # define PRIdFAST8	"d"
 # define PRIdFAST8	"d"
-# define PRIdFAST16	"d"
-# define PRIdFAST32	"d"
+# define PRIdFAST16	__PRIPTR_PREFIX "d"
+# define PRIdFAST32	__PRIPTR_PREFIX "d"
 # define PRIdFAST64	__PRI64_PREFIX "d"
 # define PRIdFAST64	__PRI64_PREFIX "d"
 
 
 
 
@@ -86,8 +86,8 @@ typedef wchar_t __gwchar_t;
 # define PRIiLEAST64	__PRI64_PREFIX "i"
 # define PRIiLEAST64	__PRI64_PREFIX "i"
 
 
 # define PRIiFAST8	"i"
 # define PRIiFAST8	"i"
-# define PRIiFAST16	"i"
-# define PRIiFAST32	"i"
+# define PRIiFAST16	__PRIPTR_PREFIX "i"
+# define PRIiFAST32	__PRIPTR_PREFIX "i"
 # define PRIiFAST64	__PRI64_PREFIX "i"
 # define PRIiFAST64	__PRI64_PREFIX "i"
 
 
 /* Octal notation.  */
 /* Octal notation.  */
@@ -102,8 +102,8 @@ typedef wchar_t __gwchar_t;
 # define PRIoLEAST64	__PRI64_PREFIX "o"
 # define PRIoLEAST64	__PRI64_PREFIX "o"
 
 
 # define PRIoFAST8	"o"
 # define PRIoFAST8	"o"
-# define PRIoFAST16	"o"
-# define PRIoFAST32	"o"
+# define PRIoFAST16	__PRIPTR_PREFIX "o"
+# define PRIoFAST32	__PRIPTR_PREFIX "o"
 # define PRIoFAST64	__PRI64_PREFIX "o"
 # define PRIoFAST64	__PRI64_PREFIX "o"
 
 
 /* Unsigned integers.  */
 /* Unsigned integers.  */
@@ -118,8 +118,8 @@ typedef wchar_t __gwchar_t;
 # define PRIuLEAST64	__PRI64_PREFIX "u"
 # define PRIuLEAST64	__PRI64_PREFIX "u"
 
 
 # define PRIuFAST8	"u"
 # define PRIuFAST8	"u"
-# define PRIuFAST16	"u"
-# define PRIuFAST32	"u"
+# define PRIuFAST16	__PRIPTR_PREFIX "u"
+# define PRIuFAST32	__PRIPTR_PREFIX "u"
 # define PRIuFAST64	__PRI64_PREFIX "u"
 # define PRIuFAST64	__PRI64_PREFIX "u"
 
 
 /* lowercase hexadecimal notation.  */
 /* lowercase hexadecimal notation.  */
@@ -134,8 +134,8 @@ typedef wchar_t __gwchar_t;
 # define PRIxLEAST64	__PRI64_PREFIX "x"
 # define PRIxLEAST64	__PRI64_PREFIX "x"
 
 
 # define PRIxFAST8	"x"
 # define PRIxFAST8	"x"
-# define PRIxFAST16	"x"
-# define PRIxFAST32	"x"
+# define PRIxFAST16	__PRIPTR_PREFIX "x"
+# define PRIxFAST32	__PRIPTR_PREFIX "x"
 # define PRIxFAST64	__PRI64_PREFIX "x"
 # define PRIxFAST64	__PRI64_PREFIX "x"
 
 
 /* UPPERCASE hexadecimal notation.  */
 /* UPPERCASE hexadecimal notation.  */
@@ -150,8 +150,8 @@ typedef wchar_t __gwchar_t;
 # define PRIXLEAST64	__PRI64_PREFIX "X"
 # define PRIXLEAST64	__PRI64_PREFIX "X"
 
 
 # define PRIXFAST8	"X"
 # define PRIXFAST8	"X"
-# define PRIXFAST16	"X"
-# define PRIXFAST32	"X"
+# define PRIXFAST16	__PRIPTR_PREFIX "X"
+# define PRIXFAST32	__PRIPTR_PREFIX "X"
 # define PRIXFAST64	__PRI64_PREFIX "X"
 # define PRIXFAST64	__PRI64_PREFIX "X"
 
 
 
 
@@ -311,7 +311,7 @@ extern intmax_t strtoimax (__const char *__restrict __nptr,
 extern uintmax_t strtoumax (__const char *__restrict __nptr,
 extern uintmax_t strtoumax (__const char *__restrict __nptr,
 			    char ** __restrict __endptr, int __base) __THROW;
 			    char ** __restrict __endptr, int __base) __THROW;
 
 
-#if defined __UCLIBC_HAS_WCHAR__ && __UCLIBC_HAS_WCHAR__
+#ifdef __UCLIBC_HAS_WCHAR__
 /* Like `wcstol' but convert to `intmax_t'.  */
 /* Like `wcstol' but convert to `intmax_t'.  */
 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
 extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
 			   __gwchar_t **__restrict __endptr, int __base)
 			   __gwchar_t **__restrict __endptr, int __base)
@@ -323,6 +323,126 @@ extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
      __THROW;
      __THROW;
 #endif
 #endif
 
 
+#if 0 /*def __USE_EXTERN_INLINES*/
+
+# if __WORDSIZE == 64
+
+extern long int __strtol_internal (__const char *__restrict __nptr,
+				   char **__restrict __endptr,
+				   int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `strtol' but convert to `intmax_t'.  */
+__extern_inline intmax_t
+__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
+{
+  return __strtol_internal (nptr, endptr, base, 0);
+}
+
+extern unsigned long int __strtoul_internal (__const char *
+					     __restrict __nptr,
+					     char ** __restrict __endptr,
+					     int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `strtoul' but convert to `uintmax_t'.  */
+__extern_inline uintmax_t
+__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
+{
+  return __strtoul_internal (nptr, endptr, base, 0);
+}
+
+extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
+				   __gwchar_t **__restrict __endptr,
+				   int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `wcstol' but convert to `intmax_t'.  */
+__extern_inline intmax_t
+__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
+{
+  return __wcstol_internal (nptr, endptr, base, 0);
+}
+
+extern unsigned long int __wcstoul_internal (__const __gwchar_t *
+					     __restrict __nptr,
+					     __gwchar_t **
+					     __restrict __endptr,
+					     int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `wcstoul' but convert to `uintmax_t'.  */
+__extern_inline uintmax_t
+__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
+{
+  return __wcstoul_internal (nptr, endptr, base, 0);
+}
+
+# else /* __WORDSIZE == 32 */
+
+__extension__
+extern long long int __strtoll_internal (__const char *__restrict __nptr,
+					 char **__restrict __endptr,
+					 int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `strtol' but convert to `intmax_t'.  */
+__extern_inline intmax_t
+__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
+{
+  return __strtoll_internal (nptr, endptr, base, 0);
+}
+
+__extension__
+extern unsigned long long int __strtoull_internal (__const char *
+						   __restrict __nptr,
+						   char **
+						   __restrict __endptr,
+						   int __base,
+						   int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `strtoul' but convert to `uintmax_t'.  */
+__extern_inline uintmax_t
+__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
+		  int base))
+{
+  return __strtoull_internal (nptr, endptr, base, 0);
+}
+
+__extension__
+extern long long int __wcstoll_internal (__const __gwchar_t *
+					 __restrict __nptr,
+					 __gwchar_t **__restrict __endptr,
+					 int __base, int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `wcstol' but convert to `intmax_t'.  */
+__extern_inline intmax_t
+__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
+{
+  return __wcstoll_internal (nptr, endptr, base, 0);
+}
+
+
+__extension__
+extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
+						   __restrict __nptr,
+						   __gwchar_t **
+						   __restrict __endptr,
+						   int __base,
+						   int __group)
+  __THROW __nonnull ((1)) __wur;
+/* Like `wcstoul' but convert to `uintmax_t'.  */
+__extern_inline uintmax_t
+__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
+		  __gwchar_t **__restrict endptr, int base))
+{
+  return __wcstoull_internal (nptr, endptr, base, 0);
+}
+
+# endif	/* __WORDSIZE == 32	*/
+#endif	/* Use extern inlines.  */
+
 __END_DECLS
 __END_DECLS
 
 
 #endif /* inttypes.h */
 #endif /* inttypes.h */

+ 30 - 18
include/langinfo.h

@@ -1,5 +1,5 @@
 /* Access to locale-dependent parameters.
 /* Access to locale-dependent parameters.
-   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-2002,2003,2004,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,13 +32,20 @@ __BEGIN_DECLS
    (LC_*) and an item index within the category.  Some code may depend on
    (LC_*) and an item index within the category.  Some code may depend on
    the item values within a category increasing monotonically with the
    the item values within a category increasing monotonically with the
    indices.  */
    indices.  */
+#if 0
+#define _NL_ITEM(category, index)	(((category) << 16) | (index))
+
+/* Extract the category and item index from a constructed `nl_item' value.  */
+#define _NL_ITEM_CATEGORY(item)		((int) (item) >> 16)
+#define _NL_ITEM_INDEX(item)		((int) (item) & 0xffff)
+#else
 #define _NL_ITEM(category, index) \
 #define _NL_ITEM(category, index) \
 	(((category) << __NL_ITEM_CATEGORY_SHIFT) | (index))
 	(((category) << __NL_ITEM_CATEGORY_SHIFT) | (index))
 
 
 /* Extract the category and item index from a constructed `nl_item' value.  */
 /* Extract the category and item index from a constructed `nl_item' value.  */
 #define _NL_ITEM_CATEGORY(item)		((int) (item) >> __NL_ITEM_CATEGORY_SHIFT)
 #define _NL_ITEM_CATEGORY(item)		((int) (item) >> __NL_ITEM_CATEGORY_SHIFT)
 #define _NL_ITEM_INDEX(item)		((int) (item) & __NL_ITEM_INDEX_MASK)
 #define _NL_ITEM_INDEX(item)		((int) (item) & __NL_ITEM_INDEX_MASK)
-
+#endif
 
 
 /* Enumeration of locale items that can be queried with `nl_langinfo'.  */
 /* Enumeration of locale items that can be queried with `nl_langinfo'.  */
 enum
 enum
@@ -312,6 +319,9 @@ enum
   _NL_CTYPE_INDIGITS8_WC,
   _NL_CTYPE_INDIGITS8_WC,
   _NL_CTYPE_INDIGITS9_WC,
   _NL_CTYPE_INDIGITS9_WC,
   _NL_CTYPE_OUTDIGIT0_MB,
   _NL_CTYPE_OUTDIGIT0_MB,
+#else
+  _NL_CTYPE_OUTDIGIT0_MB = _NL_ITEM (__LC_CTYPE, 0),
+#endif
   _NL_CTYPE_OUTDIGIT1_MB,
   _NL_CTYPE_OUTDIGIT1_MB,
   _NL_CTYPE_OUTDIGIT2_MB,
   _NL_CTYPE_OUTDIGIT2_MB,
   _NL_CTYPE_OUTDIGIT3_MB,
   _NL_CTYPE_OUTDIGIT3_MB,
@@ -321,6 +331,7 @@ enum
   _NL_CTYPE_OUTDIGIT7_MB,
   _NL_CTYPE_OUTDIGIT7_MB,
   _NL_CTYPE_OUTDIGIT8_MB,
   _NL_CTYPE_OUTDIGIT8_MB,
   _NL_CTYPE_OUTDIGIT9_MB,
   _NL_CTYPE_OUTDIGIT9_MB,
+#if 0
   _NL_CTYPE_OUTDIGIT0_WC,
   _NL_CTYPE_OUTDIGIT0_WC,
   _NL_CTYPE_OUTDIGIT1_WC,
   _NL_CTYPE_OUTDIGIT1_WC,
   _NL_CTYPE_OUTDIGIT2_WC,
   _NL_CTYPE_OUTDIGIT2_WC,
@@ -340,6 +351,7 @@ enum
   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
   _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
   _NL_CTYPE_TRANSLIT_IGNORE_LEN,
   _NL_CTYPE_TRANSLIT_IGNORE_LEN,
   _NL_CTYPE_TRANSLIT_IGNORE,
   _NL_CTYPE_TRANSLIT_IGNORE,
+  _NL_CTYPE_MAP_TO_NONASCII,
   _NL_CTYPE_EXTRA_MAP_1,
   _NL_CTYPE_EXTRA_MAP_1,
   _NL_CTYPE_EXTRA_MAP_2,
   _NL_CTYPE_EXTRA_MAP_2,
   _NL_CTYPE_EXTRA_MAP_3,
   _NL_CTYPE_EXTRA_MAP_3,
@@ -354,17 +366,7 @@ enum
   _NL_CTYPE_EXTRA_MAP_12,
   _NL_CTYPE_EXTRA_MAP_12,
   _NL_CTYPE_EXTRA_MAP_13,
   _NL_CTYPE_EXTRA_MAP_13,
   _NL_CTYPE_EXTRA_MAP_14,
   _NL_CTYPE_EXTRA_MAP_14,
-#else  /* 0 */
-  _NL_CTYPE_OUTDIGIT0_MB = _NL_ITEM (__LC_CTYPE, 0),
-  _NL_CTYPE_OUTDIGIT1_MB,
-  _NL_CTYPE_OUTDIGIT2_MB,
-  _NL_CTYPE_OUTDIGIT3_MB,
-  _NL_CTYPE_OUTDIGIT4_MB,
-  _NL_CTYPE_OUTDIGIT5_MB,
-  _NL_CTYPE_OUTDIGIT6_MB,
-  _NL_CTYPE_OUTDIGIT7_MB,
-  _NL_CTYPE_OUTDIGIT8_MB,
-  _NL_CTYPE_OUTDIGIT9_MB,
+#else /* 0 */
   _NL_CTYPE_CODESET_NAME,	/* uClibc note: MUST BE LAST ENTRY!!! */
   _NL_CTYPE_CODESET_NAME,	/* uClibc note: MUST BE LAST ENTRY!!! */
   CODESET = _NL_CTYPE_CODESET_NAME,
   CODESET = _NL_CTYPE_CODESET_NAME,
 #define CODESET			CODESET
 #define CODESET			CODESET
@@ -433,6 +435,10 @@ enum
   __N_SIGN_POSN,
   __N_SIGN_POSN,
 #ifdef __USE_GNU
 #ifdef __USE_GNU
 # define N_SIGN_POSN		__N_SIGN_POSN
 # define N_SIGN_POSN		__N_SIGN_POSN
+#endif
+#if 0 /* moved below for some reason on uClibc */
+  _NL_MONETARY_CRNCYSTR,
+#define CRNCYSTR		_NL_MONETARY_CRNCYSTR
 #endif
 #endif
   __INT_P_CS_PRECEDES,
   __INT_P_CS_PRECEDES,
 #ifdef __USE_GNU
 #ifdef __USE_GNU
@@ -458,10 +464,10 @@ enum
 #ifdef __USE_GNU
 #ifdef __USE_GNU
 # define INT_N_SIGN_POSN	__INT_N_SIGN_POSN
 # define INT_N_SIGN_POSN	__INT_N_SIGN_POSN
 #endif
 #endif
-
+#if 1 /* moved here from above */
   _NL_MONETARY_CRNCYSTR,
   _NL_MONETARY_CRNCYSTR,
 #define CRNCYSTR		_NL_MONETARY_CRNCYSTR
 #define CRNCYSTR		_NL_MONETARY_CRNCYSTR
-
+#endif
 #if 0
 #if 0
   _NL_MONETARY_DUO_INT_CURR_SYMBOL,
   _NL_MONETARY_DUO_INT_CURR_SYMBOL,
   _NL_MONETARY_DUO_CURRENCY_SYMBOL,
   _NL_MONETARY_DUO_CURRENCY_SYMBOL,
@@ -591,10 +597,18 @@ enum
   _NL_IDENTIFICATION_CODESET,
   _NL_IDENTIFICATION_CODESET,
   _NL_NUM_LC_IDENTIFICATION,
   _NL_NUM_LC_IDENTIFICATION,
 #endif
 #endif
+
   /* This marks the highest value used.  */
   /* This marks the highest value used.  */
   _NL_NUM
   _NL_NUM
 };
 };
 
 
+/* This macro produces an item you can pass to `nl_langinfo' or
+   `nl_langinfo_l' to get the name of the locale in use for CATEGORY.  */
+#define _NL_LOCALE_NAME(category)	_NL_ITEM ((category), -1)
+#ifdef __USE_GNU
+# define NL_LOCALE_NAME(category)	_NL_LOCALE_NAME (category)
+#endif
+
 
 
 /* Return the current locale's value for ITEM.
 /* Return the current locale's value for ITEM.
    If ITEM is invalid, an empty string is returned.
    If ITEM is invalid, an empty string is returned.
@@ -606,8 +620,7 @@ extern char *nl_langinfo (nl_item __item) __THROW;
 libc_hidden_proto(nl_langinfo)
 libc_hidden_proto(nl_langinfo)
 
 
 
 
-#ifdef __UCLIBC_HAS_XLOCALE__
-#ifdef	__USE_GNU
+#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
 /* This interface is for the extended locale model.  See <locale.h> for
 /* This interface is for the extended locale model.  See <locale.h> for
    more information.  */
    more information.  */
 
 
@@ -618,7 +631,6 @@ libc_hidden_proto(nl_langinfo)
 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
 libc_hidden_proto(nl_langinfo_l)
 libc_hidden_proto(nl_langinfo_l)
 #endif
 #endif
-#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 8 - 30
include/libc-internal.h

@@ -67,36 +67,14 @@ extern const char *__uclibc_progname attribute_hidden;
 
 
 # endif /* IS_IN_libc */
 # endif /* IS_IN_libc */
 
 
-/* #include <alloca.h> */
-#include <bits/stackinfo.h>
-#if defined(_STACK_GROWS_DOWN)
-# define extend_alloca(buf, len, newlen) \
-  (__typeof (buf)) ({ size_t __newlen = (newlen);			      \
-		      char *__newbuf = alloca (__newlen);		      \
-		      if (__newbuf + __newlen == (char *) buf)		      \
-			len += __newlen;				      \
-		      else						      \
-			len = __newlen;					      \
-		      __newbuf; })
-#elif defined(_STACK_GROWS_UP)
-# define extend_alloca(buf, len, newlen) \
-  (__typeof (buf)) ({ size_t __newlen = (newlen);			      \
-		      char *__newbuf = alloca (__newlen);		      \
-		      char *__buf = (buf);				      \
-		      if (__buf + __newlen == __newbuf)			      \
-			{						      \
-			  len += __newlen;				      \
-			  __newbuf = __buf;				      \
-			}						      \
-		      else						      \
-			len = __newlen;					      \
-		      __newbuf; })
-#else
-# warning unknown stack
-# define extend_alloca(buf, len, newlen) \
-  alloca (((len) = (newlen)))
-#endif
-
 #endif /* __ASSEMBLER__ */
 #endif /* __ASSEMBLER__ */
 
 
+/* Some people like to build up uClibc with *-elf toolchains, so
+ * a little grease here until we drop '#ifdef __linux__' checks
+ * from our source code.
+ */
+#ifndef __linux__
+# define __linux__ 1
+#endif
+
 #endif /* _LIBC_INTERNAL_H */
 #endif /* _LIBC_INTERNAL_H */

+ 12 - 11
include/limits.h

@@ -1,4 +1,5 @@
-/* Copyright (C) 1991, 92, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -122,20 +123,20 @@
 #if defined __GNUC__ && !defined _GCC_LIMITS_H_
 #if defined __GNUC__ && !defined _GCC_LIMITS_H_
 /* `_GCC_LIMITS_H_' is what GCC's file defines.  */
 /* `_GCC_LIMITS_H_' is what GCC's file defines.  */
 # include_next <limits.h>
 # include_next <limits.h>
+#endif
 
 
 /* The <limits.h> files in some gcc versions don't define LLONG_MIN,
 /* The <limits.h> files in some gcc versions don't define LLONG_MIN,
    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
    ages are available.  */
    ages are available.  */
-# ifdef __USE_ISOC99
-#  ifndef LLONG_MIN
-#   define LLONG_MIN	LONG_LONG_MIN
-#  endif
-#  ifndef LLONG_MAX
-#   define LLONG_MAX	LONG_LONG_MAX
-#  endif
-#  ifndef ULLONG_MAX
-#   define ULLONG_MAX	ULONG_LONG_MAX
-#  endif
+#if defined __USE_ISOC99 && defined __GNUC__
+# ifndef LLONG_MIN
+#  define LLONG_MIN	(-LLONG_MAX-1)
+# endif
+# ifndef LLONG_MAX
+#  define LLONG_MAX	__LONG_LONG_MAX__
+# endif
+# ifndef ULLONG_MAX
+#  define ULLONG_MAX	(LLONG_MAX * 2ULL + 1)
 # endif
 # endif
 #endif
 #endif
 
 

+ 5 - 5
include/locale.h

@@ -39,6 +39,7 @@ __BEGIN_DECLS
 #define LC_COLLATE        __LC_COLLATE
 #define LC_COLLATE        __LC_COLLATE
 #define LC_MONETARY       __LC_MONETARY
 #define LC_MONETARY       __LC_MONETARY
 #define LC_MESSAGES       __LC_MESSAGES
 #define LC_MESSAGES       __LC_MESSAGES
+#define	LC_ALL		  __LC_ALL
 #if 0
 #if 0
 #define LC_PAPER	  __LC_PAPER
 #define LC_PAPER	  __LC_PAPER
 #define LC_NAME		  __LC_NAME
 #define LC_NAME		  __LC_NAME
@@ -47,9 +48,10 @@ __BEGIN_DECLS
 #define LC_MEASUREMENT	  __LC_MEASUREMENT
 #define LC_MEASUREMENT	  __LC_MEASUREMENT
 #define LC_IDENTIFICATION __LC_IDENTIFICATION
 #define LC_IDENTIFICATION __LC_IDENTIFICATION
 #endif
 #endif
-#define	LC_ALL		  __LC_ALL
 
 
 
 
+__BEGIN_NAMESPACE_STD
+
 /* Structure giving information about numeric and monetary notation.  */
 /* Structure giving information about numeric and monetary notation.  */
 struct lconv
 struct lconv
 {
 {
@@ -121,8 +123,6 @@ struct lconv
 };
 };
 
 
 
 
-__BEGIN_NAMESPACE_STD
-
 /* Set and/or return the current locale.  */
 /* Set and/or return the current locale.  */
 extern char *setlocale (int __category, __const char *__locale) __THROW;
 extern char *setlocale (int __category, __const char *__locale) __THROW;
 
 
@@ -133,7 +133,7 @@ libc_hidden_proto(localeconv)
 __END_NAMESPACE_STD
 __END_NAMESPACE_STD
 
 
 
 
-#if defined(__USE_GNU) && defined(__UCLIBC_HAS_LOCALE__)
+#if defined __USE_GNU && defined __UCLIBC_HAS_LOCALE__
 /* The concept of one static locale per category is not very well
 /* The concept of one static locale per category is not very well
    thought out.  Many applications will need to process its data using
    thought out.  Many applications will need to process its data using
    information from several different locales.  Another application is
    information from several different locales.  Another application is
@@ -145,7 +145,7 @@ __END_NAMESPACE_STD
    Attention: all these functions are *not* standardized in any form.
    Attention: all these functions are *not* standardized in any form.
    This is a proof-of-concept implementation.  */
    This is a proof-of-concept implementation.  */
 
 
-#if defined(__UCLIBC_HAS_XLOCALE__)
+#ifdef __UCLIBC_HAS_XLOCALE__
 /* Get locale datatype definition.  */
 /* Get locale datatype definition.  */
 # include <xlocale.h>
 # include <xlocale.h>
 #endif
 #endif

+ 2 - 0
include/math.h

@@ -377,8 +377,10 @@ extern int matherr (struct exception *__exc);
 #else	/* !SVID */
 #else	/* !SVID */
 
 
 # ifdef __USE_XOPEN
 # ifdef __USE_XOPEN
+#  ifdef __UCLIBC_SUSV4_LEGACY__
 /* X/Open wants another strange constant.  */
 /* X/Open wants another strange constant.  */
 #  define MAXFLOAT	3.40282347e+38F
 #  define MAXFLOAT	3.40282347e+38F
+#  endif
 # endif
 # endif
 
 
 #endif	/* SVID */
 #endif	/* SVID */

+ 9 - 1
include/net/ethernet.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2001, 2008 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -45,9 +45,17 @@ struct ether_header
 
 
 /* Ethernet protocol ID's */
 /* Ethernet protocol ID's */
 #define	ETHERTYPE_PUP		0x0200          /* Xerox PUP */
 #define	ETHERTYPE_PUP		0x0200          /* Xerox PUP */
+#define ETHERTYPE_SPRITE	0x0500		/* Sprite */
 #define	ETHERTYPE_IP		0x0800		/* IP */
 #define	ETHERTYPE_IP		0x0800		/* IP */
 #define	ETHERTYPE_ARP		0x0806		/* Address resolution */
 #define	ETHERTYPE_ARP		0x0806		/* Address resolution */
 #define	ETHERTYPE_REVARP	0x8035		/* Reverse ARP */
 #define	ETHERTYPE_REVARP	0x8035		/* Reverse ARP */
+#define ETHERTYPE_AT		0x809B		/* AppleTalk protocol */
+#define ETHERTYPE_AARP		0x80F3		/* AppleTalk ARP */
+#define	ETHERTYPE_VLAN		0x8100		/* IEEE 802.1Q VLAN tagging */
+#define ETHERTYPE_IPX		0x8137		/* IPX */
+#define	ETHERTYPE_IPV6		0x86dd		/* IP protocol version 6 */
+#define ETHERTYPE_LOOPBACK	0x9000		/* used to test interfaces */
+
 
 
 #define	ETHER_ADDR_LEN	ETH_ALEN                 /* size of ethernet addr */
 #define	ETHER_ADDR_LEN	ETH_ALEN                 /* size of ethernet addr */
 #define	ETHER_TYPE_LEN	2                        /* bytes in type field */
 #define	ETHER_TYPE_LEN	2                        /* bytes in type field */

+ 8 - 2
include/net/if_arp.h

@@ -1,5 +1,5 @@
 /* Definitions for Address Resolution Protocol.
 /* Definitions for Address Resolution Protocol.
-   Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1999,2001,2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
 
@@ -96,7 +96,7 @@ struct arphdr
 #define ARPHRD_ADAPT	264
 #define ARPHRD_ADAPT	264
 #define ARPHRD_ROSE	270
 #define ARPHRD_ROSE	270
 #define ARPHRD_X25	271		/* CCITT X.25.  */
 #define ARPHRD_X25	271		/* CCITT X.25.  */
-#define ARPHDR_HWX25	272		/* Boards with X.25 in firmware.  */
+#define ARPHRD_HWX25	272		/* Boards with X.25 in firmware.  */
 #define ARPHRD_PPP	512
 #define ARPHRD_PPP	512
 #define ARPHRD_CISCO	513		/* Cisco HDLC.  */
 #define ARPHRD_CISCO	513		/* Cisco HDLC.  */
 #define ARPHRD_HDLC	ARPHRD_CISCO
 #define ARPHRD_HDLC	ARPHRD_CISCO
@@ -126,6 +126,12 @@ struct arphdr
 #define ARPHRD_FCFABRIC 787		/* Fibrechanel fabric.  */
 #define ARPHRD_FCFABRIC 787		/* Fibrechanel fabric.  */
 #define ARPHRD_IEEE802_TR 800		/* Magic type ident for TR.  */
 #define ARPHRD_IEEE802_TR 800		/* Magic type ident for TR.  */
 #define ARPHRD_IEEE80211 801		/* IEEE 802.11.  */
 #define ARPHRD_IEEE80211 801		/* IEEE 802.11.  */
+#define ARPHRD_IEEE80211_PRISM 802	/* IEEE 802.11 + Prism2 header.  */
+#define ARPHRD_IEEE80211_RADIOTAP 803	/* IEEE 802.11 + radiotap header.  */
+
+#define ARPHRD_VOID	  0xFFFF	/* Void type, nothing is known.  */
+#define ARPHRD_NONE	  0xFFFE	/* Zero header length.  */
+
 
 
 /* ARP ioctl request.  */
 /* ARP ioctl request.  */
 struct arpreq
 struct arpreq

+ 4 - 0
include/netinet/ether.h

@@ -25,7 +25,9 @@
 /* Get definition of `struct ether_addr'.  */
 /* Get definition of `struct ether_addr'.  */
 #include <netinet/if_ether.h>
 #include <netinet/if_ether.h>
 
 
+#ifdef _LIBC
 #define ETHER_FILE_NAME "/etc/ethers"
 #define ETHER_FILE_NAME "/etc/ethers"
+#endif
 
 
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
@@ -41,6 +43,7 @@ extern struct ether_addr *ether_aton_r (__const char *__asc,
 					struct ether_addr *__addr) __THROW;
 					struct ether_addr *__addr) __THROW;
 libc_hidden_proto(ether_aton_r)
 libc_hidden_proto(ether_aton_r)
 
 
+#if 0
 /* Map 48 bit Ethernet number ADDR to HOSTNAME.  */
 /* Map 48 bit Ethernet number ADDR to HOSTNAME.  */
 extern int ether_ntohost (char *__hostname, __const struct ether_addr *__addr)
 extern int ether_ntohost (char *__hostname, __const struct ether_addr *__addr)
      __THROW;
      __THROW;
@@ -52,6 +55,7 @@ extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 /* Scan LINE and set ADDR and HOSTNAME.  */
 /* Scan LINE and set ADDR and HOSTNAME.  */
 extern int ether_line (__const char *__line, struct ether_addr *__addr,
 extern int ether_line (__const char *__line, struct ether_addr *__addr,
 		       char *__hostname) __THROW;
 		       char *__hostname) __THROW;
+#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 6 - 6
include/netinet/icmp6.h

@@ -161,11 +161,11 @@ struct nd_neighbor_advert     /* neighbor advertisement */
 #define nd_na_code               nd_na_hdr.icmp6_code
 #define nd_na_code               nd_na_hdr.icmp6_code
 #define nd_na_cksum              nd_na_hdr.icmp6_cksum
 #define nd_na_cksum              nd_na_hdr.icmp6_cksum
 #define nd_na_flags_reserved     nd_na_hdr.icmp6_data32[0]
 #define nd_na_flags_reserved     nd_na_hdr.icmp6_data32[0]
-#if     BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 #define ND_NA_FLAG_ROUTER        0x80000000
 #define ND_NA_FLAG_ROUTER        0x80000000
 #define ND_NA_FLAG_SOLICITED     0x40000000
 #define ND_NA_FLAG_SOLICITED     0x40000000
 #define ND_NA_FLAG_OVERRIDE      0x20000000
 #define ND_NA_FLAG_OVERRIDE      0x20000000
-#else   /* BYTE_ORDER == LITTLE_ENDIAN */
+#else   /* __BYTE_ORDER == __LITTLE_ENDIAN */
 #define ND_NA_FLAG_ROUTER        0x00000080
 #define ND_NA_FLAG_ROUTER        0x00000080
 #define ND_NA_FLAG_SOLICITED     0x00000040
 #define ND_NA_FLAG_SOLICITED     0x00000040
 #define ND_NA_FLAG_OVERRIDE      0x00000020
 #define ND_NA_FLAG_OVERRIDE      0x00000020
@@ -299,10 +299,10 @@ struct rr_pco_use      /* use prefix part */
 #define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK  0x20
 #define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK  0x20
 #define ICMP6_RR_PCOUSE_RAFLAGS_AUTO    0x10
 #define ICMP6_RR_PCOUSE_RAFLAGS_AUTO    0x10
 
 
-#if BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 # define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000
 # define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80000000
 # define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000
 # define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40000000
-#elif BYTE_ORDER == LITTLE_ENDIAN
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
 # define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80
 # define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80
 # define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40
 # define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40
 #endif
 #endif
@@ -316,10 +316,10 @@ struct rr_result       /* router renumbering result message */
     struct in6_addr     rrr_prefix;
     struct in6_addr     rrr_prefix;
   };
   };
 
 
-#if BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 # define ICMP6_RR_RESULT_FLAGS_OOB       0x0002
 # define ICMP6_RR_RESULT_FLAGS_OOB       0x0002
 # define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
 # define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0001
-#elif BYTE_ORDER == LITTLE_ENDIAN
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
 # define ICMP6_RR_RESULT_FLAGS_OOB       0x0200
 # define ICMP6_RR_RESULT_FLAGS_OOB       0x0200
 # define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
 # define ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100
 #endif
 #endif

+ 28 - 13
include/netinet/in.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007
+/* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008
    Free Software Foundation, Inc.
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
@@ -53,6 +53,8 @@ enum
 #define IPPROTO_IDP		IPPROTO_IDP
 #define IPPROTO_IDP		IPPROTO_IDP
     IPPROTO_TP = 29,	   /* SO Transport Protocol Class 4.  */
     IPPROTO_TP = 29,	   /* SO Transport Protocol Class 4.  */
 #define IPPROTO_TP		IPPROTO_TP
 #define IPPROTO_TP		IPPROTO_TP
+    IPPROTO_DCCP = 33,	   /* Datagram Congestion Control Protocol.  */
+#define IPPROTO_DCCP		IPPROTO_DCCP
     IPPROTO_IPV6 = 41,     /* IPv6 header.  */
     IPPROTO_IPV6 = 41,     /* IPv6 header.  */
 #define IPPROTO_IPV6		IPPROTO_IPV6
 #define IPPROTO_IPV6		IPPROTO_IPV6
     IPPROTO_ROUTING = 43,  /* IPv6 routing header.  */
     IPPROTO_ROUTING = 43,  /* IPv6 routing header.  */
@@ -83,6 +85,8 @@ enum
 #define IPPROTO_COMP		IPPROTO_COMP
 #define IPPROTO_COMP		IPPROTO_COMP
     IPPROTO_SCTP = 132,	   /* Stream Control Transmission Protocol.  */
     IPPROTO_SCTP = 132,	   /* Stream Control Transmission Protocol.  */
 #define IPPROTO_SCTP		IPPROTO_SCTP
 #define IPPROTO_SCTP		IPPROTO_SCTP
+    IPPROTO_UDPLITE = 136, /* UDP-Lite protocol.  */
+#define IPPROTO_UDPLITE		IPPROTO_UDPLITE
     IPPROTO_RAW = 255,	   /* Raw IP packets.  */
     IPPROTO_RAW = 255,	   /* Raw IP packets.  */
 #define IPPROTO_RAW		IPPROTO_RAW
 #define IPPROTO_RAW		IPPROTO_RAW
     IPPROTO_MAX
     IPPROTO_MAX
@@ -195,13 +199,17 @@ struct in6_addr
   {
   {
     union
     union
       {
       {
-	uint8_t	u6_addr8[16];
-	uint16_t u6_addr16[8];
-	uint32_t u6_addr32[4];
-      } in6_u;
-#define s6_addr			in6_u.u6_addr8
-#define s6_addr16		in6_u.u6_addr16
-#define s6_addr32		in6_u.u6_addr32
+	uint8_t	__u6_addr8[16];
+#if defined __USE_MISC || defined __USE_GNU
+	uint16_t __u6_addr16[8];
+	uint32_t __u6_addr32[4];
+#endif
+      } __in6_u;
+#define s6_addr			__in6_u.__u6_addr8
+#if defined __USE_MISC || defined __USE_GNU
+# define s6_addr16		__in6_u.__u6_addr16
+# define s6_addr32		__in6_u.__u6_addr32
+#endif
   };
   };
 
 
 extern const struct in6_addr in6addr_any;        /* :: */
 extern const struct in6_addr in6addr_any;        /* :: */
@@ -213,11 +221,8 @@ libc_hidden_proto(in6addr_loopback)
 #define INET_ADDRSTRLEN 16
 #define INET_ADDRSTRLEN 16
 #define INET6_ADDRSTRLEN 46
 #define INET6_ADDRSTRLEN 46
 
 
-/* Get the definition of the macro to define the common sockaddr members.  */
-#include <bits/socket.h>
-
 
 
-#if 1 /* defined __UCLIBC_HAS_IPV4__ */
+#if 1 /*def __UCLIBC_HAS_IPV4__*/
 /* Structure describing an Internet socket address.  */
 /* Structure describing an Internet socket address.  */
 struct sockaddr_in
 struct sockaddr_in
   {
   {
@@ -244,6 +249,7 @@ struct sockaddr_in6
   };
   };
 
 
 
 
+#if defined __USE_MISC || defined __USE_GNU
 /* IPv4 multicast request.  */
 /* IPv4 multicast request.  */
 struct ip_mreq
 struct ip_mreq
   {
   {
@@ -265,6 +271,8 @@ struct ip_mreq_source
     /* IP address of interface.  */
     /* IP address of interface.  */
     struct in_addr imr_sourceaddr;
     struct in_addr imr_sourceaddr;
   };
   };
+#endif
+
 
 
 /* Likewise, for IPv6.  */
 /* Likewise, for IPv6.  */
 struct ipv6_mreq
 struct ipv6_mreq
@@ -277,6 +285,7 @@ struct ipv6_mreq
   };
   };
 
 
 
 
+#if defined __USE_MISC || defined __USE_GNU
 /* Multicast group request.  */
 /* Multicast group request.  */
 struct group_req
 struct group_req
   {
   {
@@ -343,6 +352,7 @@ struct group_filter
 				   - sizeof (struct sockaddr_storage)	      \
 				   - sizeof (struct sockaddr_storage)	      \
 				   + ((numsrc)				      \
 				   + ((numsrc)				      \
 				      * sizeof (struct sockaddr_storage)))
 				      * sizeof (struct sockaddr_storage)))
+#endif
 
 
 
 
 /* Get system-specific definitions.  */
 /* Get system-specific definitions.  */
@@ -432,13 +442,17 @@ libc_hidden_proto(htons)
 	 && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2])  \
 	 && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2])  \
 	 && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3]))
 	 && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3]))
 
 
+#if defined __USE_MISC || defined __USE_GNU
 /* Bind socket to a privileged IP port.  */
 /* Bind socket to a privileged IP port.  */
 extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW;
 extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __THROW;
 libc_hidden_proto(bindresvport)
 libc_hidden_proto(bindresvport)
 
 
+# if 0 /*def __UCLIBC_HAS_IPV6__*/
 /* The IPv6 version of this function.  */
 /* The IPv6 version of this function.  */
 extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
 extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
      __THROW;
      __THROW;
+# endif
+#endif
 
 
 
 
 #define IN6_IS_ADDR_MC_NODELOCAL(a) \
 #define IN6_IS_ADDR_MC_NODELOCAL(a) \
@@ -461,6 +475,8 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
 	(IN6_IS_ADDR_MULTICAST(a)					      \
 	(IN6_IS_ADDR_MULTICAST(a)					      \
 	 && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe))
 	 && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe))
 
 
+
+#if 0 /*def __USE_GNU*/
 /* IPv6 packet information.  */
 /* IPv6 packet information.  */
 struct in6_pktinfo
 struct in6_pktinfo
   {
   {
@@ -476,7 +492,6 @@ struct ip6_mtuinfo
   };
   };
 
 
 
 
-#if 0 /*def __USE_GNU*/
 /* Obsolete hop-by-hop and Destination Options Processing (RFC 2292).  */
 /* Obsolete hop-by-hop and Destination Options Processing (RFC 2292).  */
 extern int inet6_option_space (int __nbytes)
 extern int inet6_option_space (int __nbytes)
      __THROW __attribute_deprecated__;
      __THROW __attribute_deprecated__;

+ 4 - 4
include/netinet/ip6.h

@@ -102,11 +102,11 @@ struct ip6_frag
     uint32_t  ip6f_ident;	/* identification */
     uint32_t  ip6f_ident;	/* identification */
   };
   };
 
 
-#if BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 # define IP6F_OFF_MASK       0xfff8  /* mask out offset from _offlg */
 # define IP6F_OFF_MASK       0xfff8  /* mask out offset from _offlg */
 # define IP6F_RESERVED_MASK  0x0006  /* reserved bits in ip6f_offlg */
 # define IP6F_RESERVED_MASK  0x0006  /* reserved bits in ip6f_offlg */
 # define IP6F_MORE_FRAG      0x0001  /* more-fragments flag */
 # define IP6F_MORE_FRAG      0x0001  /* more-fragments flag */
-#else   /* BYTE_ORDER == LITTLE_ENDIAN */
+#else   /* __BYTE_ORDER == __LITTLE_ENDIAN */
 # define IP6F_OFF_MASK       0xf8ff  /* mask out offset from _offlg */
 # define IP6F_OFF_MASK       0xf8ff  /* mask out offset from _offlg */
 # define IP6F_RESERVED_MASK  0x0600  /* reserved bits in ip6f_offlg */
 # define IP6F_RESERVED_MASK  0x0600  /* reserved bits in ip6f_offlg */
 # define IP6F_MORE_FRAG      0x0100  /* more-fragments flag */
 # define IP6F_MORE_FRAG      0x0100  /* more-fragments flag */
@@ -176,11 +176,11 @@ struct ip6_opt_router
   };
   };
 
 
 /* Router alert values (in network byte order) */
 /* Router alert values (in network byte order) */
-#if BYTE_ORDER == BIG_ENDIAN
+#if __BYTE_ORDER == __BIG_ENDIAN
 # define IP6_ALERT_MLD	0x0000
 # define IP6_ALERT_MLD	0x0000
 # define IP6_ALERT_RSVP	0x0001
 # define IP6_ALERT_RSVP	0x0001
 # define IP6_ALERT_AN	0x0002
 # define IP6_ALERT_AN	0x0002
-#else /* BYTE_ORDER == LITTLE_ENDING */
+#else /* __BYTE_ORDER == __LITTLE_ENDING */
 # define IP6_ALERT_MLD	0x0000
 # define IP6_ALERT_MLD	0x0000
 # define IP6_ALERT_RSVP	0x0100
 # define IP6_ALERT_RSVP	0x0100
 # define IP6_ALERT_AN	0x0200
 # define IP6_ALERT_AN	0x0200

+ 0 - 62
include/netinet/protocols.h

@@ -1,62 +0,0 @@
-/* protocols.h */
-#ifndef _NETINET_PROTOCOLS_H
-#define _NETINET_PROTOCOLS_H
-
-#define IP_ICMP		  1
-#define IP_IGMP		  2
-#define IP_GGP 		  3
-#define IP_ST  		  5
-#define IP_TCP 		  6
-#define IP_UCL 		  7
-#define IP_EGP 		  8
-#define IP_IGP 		  9
-#define IP_BBN_RCC_MON	 10
-#define IP_NVP_II	 11
-#define IP_PUP		 12
-#define IP_ARGUS	 13
-#define IP_EMCON	 14
-#define IP_XNET		 15
-#define IP_CHAOS	 16
-#define IP_UDP		 17
-#define IP_MUX		 18
-#define IP_DCN_MEAS	 19
-#define IP_HMP		 20
-#define IP_PRM		 21
-#define IP_XNS_IDP	 22
-#define IP_TRUNK1	 23
-#define IP_TRUNK2	 24
-#define IP_LEAF1	 25
-#define IP_LEAF2	 26
-#define IP_RDP		 27
-#define IP_IRTP		 28
-#define IP_ISO_TP4	 29
-#define IP_NETBLT	 30
-#define IP_MFE_NSP	 31
-#define IP_MERIT_INP	 32
-#define IP_SEP		 33
-#define IP_3PC		 34
-#define IP_CFTP		 62
-#define SAT_EXPAK	 64
-#define IP_RVD		 66
-#define IP_IPPC		 67
-#define IP_SAT_MON	 69
-#define IP_VISA		 70
-#define IP_IPCV		 71
-#define IP_BR_SAT_MON	 76
-#define IP_SUN_ND	 77
-#define IP_WB_MON	 78
-#define IP_WB_EXPAK	 79
-#define IP_ISO_IP	 80
-#define IP_VMTP		 81
-#define IP_SECURE_VMTP	 82
-#define IP_VINES	 83
-#define IP_TTP		 84
-#define NSFNET_IGP	 85
-#define IP_DGP		 86
-#define IP_TCF		 87
-#define IP_IGRP		 88
-#define IP_OSPFIGP	 89
-#define IP_SPRITE_RPG	 90
-#define IP_LARP		 91
-
-#endif /*  _NETINET_PROTOCOLS_H*/

+ 2 - 0
include/nl_types.h

@@ -40,6 +40,7 @@ typedef void *nl_catd;
 /* Type used by `nl_langinfo'.  */
 /* Type used by `nl_langinfo'.  */
 typedef int nl_item;
 typedef int nl_item;
 
 
+#if 0
 /* Open message catalog for later use, returning descriptor.
 /* Open message catalog for later use, returning descriptor.
 
 
    This function is a possible cancellation point and therefore not
    This function is a possible cancellation point and therefore not
@@ -53,6 +54,7 @@ extern char *catgets (nl_catd __catalog, int __set, int __number,
 
 
 /* Close message CATALOG.  */
 /* Close message CATALOG.  */
 extern int catclose (nl_catd __catalog) __THROW __nonnull ((1));
 extern int catclose (nl_catd __catalog) __THROW __nonnull ((1));
+#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 0 - 1
include/paths.h

@@ -64,7 +64,6 @@
 #define	_PATH_VI	"/usr/bin/vi"
 #define	_PATH_VI	"/usr/bin/vi"
 #define _PATH_WTMP	"/var/log/wtmp"
 #define _PATH_WTMP	"/var/log/wtmp"
 
 
-/* uClibc */
 #ifdef _LIBC
 #ifdef _LIBC
 #define _PATH_PASSWD	"/etc/passwd"
 #define _PATH_PASSWD	"/etc/passwd"
 #define _PATH_GROUP	"/etc/group"
 #define _PATH_GROUP	"/etc/group"

+ 15 - 5
include/regexp.h

@@ -1,4 +1,5 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2004, 2008
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 
@@ -81,6 +82,7 @@
 
 
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
+#if 0
 /* Interface variables.  They contain the results of the successful
 /* Interface variables.  They contain the results of the successful
    calls to `setp' and `advance'.  */
    calls to `setp' and `advance'.  */
 extern char *loc1;
 extern char *loc1;
@@ -89,6 +91,7 @@ extern char *loc2;
 /* The use of this variable in the `advance' function is not
 /* The use of this variable in the `advance' function is not
    supported.  */
    supported.  */
 extern char *locs;
 extern char *locs;
+#endif
 
 
 
 
 #ifndef __DO_NOT_DEFINE_COMPILE
 #ifndef __DO_NOT_DEFINE_COMPILE
@@ -129,8 +132,9 @@ compile (char *__restrict instring, char *__restrict expbuf,
   __expr_ptr = (regex_t *) expbuf;
   __expr_ptr = (regex_t *) expbuf;
   /* The remaining space in the buffer can be used for the compiled
   /* The remaining space in the buffer can be used for the compiled
      pattern.  */
      pattern.  */
-  __expr_ptr->buffer = expbuf + sizeof (regex_t);
-  __expr_ptr->allocated = endbuf -  (char *) __expr_ptr->buffer;
+  __expr_ptr->__REPB_PREFIX (buffer) = expbuf + sizeof (regex_t);
+  __expr_ptr->__REPB_PREFIX (allocated)
+    = endbuf - (char *) __expr_ptr->__REPB_PREFIX (buffer);
 
 
   while ((__ch = (GETC ())) != eof)
   while ((__ch = (GETC ())) != eof)
     {
     {
@@ -162,7 +166,10 @@ compile (char *__restrict instring, char *__restrict expbuf,
 	}
 	}
       __input_buffer[__current_size++] = __ch;
       __input_buffer[__current_size++] = __ch;
     }
     }
-  __input_buffer[__current_size++] = '\0';
+  if (__current_size)
+    __input_buffer[__current_size++] = '\0';
+  else
+    __input_buffer = "";
 
 
   /* Now compile the pattern.  */
   /* Now compile the pattern.  */
   __error = regcomp (__expr_ptr, __input_buffer, REG_NEWLINE);
   __error = regcomp (__expr_ptr, __input_buffer, REG_NEWLINE);
@@ -198,11 +205,13 @@ compile (char *__restrict instring, char *__restrict expbuf,
       }
       }
 
 
   /* Everything is ok.  */
   /* Everything is ok.  */
-  RETURN ((char *) (__expr_ptr->buffer + __expr_ptr->used));
+  RETURN ((char *) (__expr_ptr->__REPB_PREFIX (buffer)
+		    + __expr_ptr->__REPB_PREFIX (used)));
 }
 }
 #endif
 #endif
 
 
 
 
+#if 0
 /* Find the next match in STRING.  The compiled regular expression is
 /* Find the next match in STRING.  The compiled regular expression is
    found in the buffer starting at EXPBUF.  `loc1' will return the
    found in the buffer starting at EXPBUF.  `loc1' will return the
    first character matched and `loc2' points to the next unmatched
    first character matched and `loc2' points to the next unmatched
@@ -215,6 +224,7 @@ extern int step (__const char *__restrict __string,
    position of the first unmatched character.  */
    position of the first unmatched character.  */
 extern int advance (__const char *__restrict __string,
 extern int advance (__const char *__restrict __string,
 		    __const char *__restrict __expbuf) __THROW;
 		    __const char *__restrict __expbuf) __THROW;
+#endif
 
 
 
 
 __END_DECLS
 __END_DECLS

+ 4 - 0
include/rpc/auth.h

@@ -176,11 +176,13 @@ extern AUTH *authunix_create_default (void);
 libc_hidden_proto(authunix_create_default)
 libc_hidden_proto(authunix_create_default)
 extern AUTH *authnone_create (void) __THROW;
 extern AUTH *authnone_create (void) __THROW;
 libc_hidden_proto(authnone_create)
 libc_hidden_proto(authnone_create)
+#if 0
 extern AUTH *authdes_create (const char *__servername, u_int __window,
 extern AUTH *authdes_create (const char *__servername, u_int __window,
 			     struct sockaddr *__syncaddr, des_block *__ckey)
 			     struct sockaddr *__syncaddr, des_block *__ckey)
      __THROW;
      __THROW;
 extern AUTH *authdes_pk_create (const char *, netobj *, u_int,
 extern AUTH *authdes_pk_create (const char *, netobj *, u_int,
 				struct sockaddr *, des_block *) __THROW;
 				struct sockaddr *, des_block *) __THROW;
+#endif
 
 
 
 
 #define AUTH_NONE	0		/* no authentication */
 #define AUTH_NONE	0		/* no authentication */
@@ -192,6 +194,7 @@ extern AUTH *authdes_pk_create (const char *, netobj *, u_int,
 #define AUTH_DH		AUTH_DES	/* Diffie-Hellman (this is DES) */
 #define AUTH_DH		AUTH_DES	/* Diffie-Hellman (this is DES) */
 #define AUTH_KERB       4               /* kerberos style */
 #define AUTH_KERB       4               /* kerberos style */
 
 
+#if 0
 /*
 /*
  *  Netname manipulating functions
  *  Netname manipulating functions
  *
  *
@@ -216,6 +219,7 @@ extern int key_gendes (des_block *);
 extern int key_setsecret (char *);
 extern int key_setsecret (char *);
 extern int key_secretkey_is_set (void);
 extern int key_secretkey_is_set (void);
 extern int key_get_conv (char *, des_block *);
 extern int key_get_conv (char *, des_block *);
+#endif
 
 
 /*
 /*
  * XDR an opaque authentication struct.
  * XDR an opaque authentication struct.

+ 4 - 0
include/rpc/auth_des.h

@@ -24,6 +24,7 @@
 
 
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
+#if 0
 /* There are two kinds of "names": fullnames and nicknames */
 /* There are two kinds of "names": fullnames and nicknames */
 enum authdes_namekind
 enum authdes_namekind
   {
   {
@@ -47,6 +48,7 @@ struct authdes_cred
     struct authdes_fullname adc_fullname;
     struct authdes_fullname adc_fullname;
     uint32_t adc_nickname;
     uint32_t adc_nickname;
   };
   };
+#endif
 
 
 /* A timeval replacement for !32bit platforms */
 /* A timeval replacement for !32bit platforms */
 struct rpc_timeval
 struct rpc_timeval
@@ -55,6 +57,7 @@ struct rpc_timeval
     uint32_t tv_usec;           /* Microseconds.  */
     uint32_t tv_usec;           /* Microseconds.  */
   };
   };
 
 
+#if 0
 /* A des authentication verifier */
 /* A des authentication verifier */
 struct authdes_verf
 struct authdes_verf
   {
   {
@@ -102,6 +105,7 @@ extern int getpublickey (__const char *__name, char *__key) __THROW;
    the key.  */
    the key.  */
 extern int getsecretkey (__const char *__name, char *__key,
 extern int getsecretkey (__const char *__name, char *__key,
 			 __const char *__passwd) __THROW;
 			 __const char *__passwd) __THROW;
+#endif
 
 
 extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep,
 extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep,
 		  struct rpc_timeval *__timeout) __THROW;
 		  struct rpc_timeval *__timeout) __THROW;

+ 2 - 0
include/signal.h

@@ -376,10 +376,12 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
 
 
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 
 
+# ifdef __UCLIBC_SUSV4_LEGACY__
 /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
 /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
    (causing them to fail with EINTR); if INTERRUPT is zero, make system
    (causing them to fail with EINTR); if INTERRUPT is zero, make system
    calls be restarted after signal SIG.  */
    calls be restarted after signal SIG.  */
 extern int siginterrupt (int __sig, int __interrupt) __THROW;
 extern int siginterrupt (int __sig, int __interrupt) __THROW;
+# endif
 
 
 # include <bits/sigstack.h>
 # include <bits/sigstack.h>
 # ifdef __USE_XOPEN
 # ifdef __USE_XOPEN

+ 16 - 14
include/stdlib.h

@@ -90,7 +90,7 @@ typedef union
 # define WIFEXITED(status)	__WIFEXITED (__WAIT_INT (status))
 # define WIFEXITED(status)	__WIFEXITED (__WAIT_INT (status))
 # define WIFSIGNALED(status)	__WIFSIGNALED (__WAIT_INT (status))
 # define WIFSIGNALED(status)	__WIFSIGNALED (__WAIT_INT (status))
 # define WIFSTOPPED(status)	__WIFSTOPPED (__WAIT_INT (status))
 # define WIFSTOPPED(status)	__WIFSTOPPED (__WAIT_INT (status))
-# if 0 /* def __WIFCONTINUED */
+# ifdef __WIFCONTINUED
 #  define WIFCONTINUED(status)	__WIFCONTINUED (__WAIT_INT (status))
 #  define WIFCONTINUED(status)	__WIFCONTINUED (__WAIT_INT (status))
 # endif
 # endif
 #endif	/* X/Open and <sys/wait.h> not included.  */
 #endif	/* X/Open and <sys/wait.h> not included.  */
@@ -141,12 +141,13 @@ __END_NAMESPACE_C99
 #if 0
 #if 0
 #define	MB_CUR_MAX	(__ctype_get_mb_cur_max ())
 #define	MB_CUR_MAX	(__ctype_get_mb_cur_max ())
 extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
 extern size_t __ctype_get_mb_cur_max (void) __THROW __wur;
-#endif
+#else
 #ifdef __UCLIBC_HAS_WCHAR__
 #ifdef __UCLIBC_HAS_WCHAR__
 #define	MB_CUR_MAX	(_stdlib_mb_cur_max ())
 #define	MB_CUR_MAX	(_stdlib_mb_cur_max ())
 extern size_t _stdlib_mb_cur_max (void) __THROW __wur;
 extern size_t _stdlib_mb_cur_max (void) __THROW __wur;
 libc_hidden_proto(_stdlib_mb_cur_max)
 libc_hidden_proto(_stdlib_mb_cur_max)
 #endif
 #endif
+#endif
 
 
 
 
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
@@ -240,8 +241,7 @@ __END_NAMESPACE_C99
 #endif /* ISO C99 or GCC and use MISC.  */
 #endif /* ISO C99 or GCC and use MISC.  */
 
 
 
 
-#ifdef __UCLIBC_HAS_XLOCALE__
-#ifdef __USE_GNU
+#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
 /* The concept of one static locale per category is not very well
 /* The concept of one static locale per category is not very well
    thought out.  Many applications will need to process its data using
    thought out.  Many applications will need to process its data using
    information from several different locales.  Another application is
    information from several different locales.  Another application is
@@ -296,9 +296,7 @@ extern long double strtold_l (__const char *__restrict __nptr,
 			      __locale_t __loc)
 			      __locale_t __loc)
      __THROW __nonnull ((1, 3)) __wur;
      __THROW __nonnull ((1, 3)) __wur;
 #endif /* __UCLIBC_HAS_FLOATS__ */
 #endif /* __UCLIBC_HAS_FLOATS__ */
-
 #endif /* GNU */
 #endif /* GNU */
-#endif /* __UCLIBC_HAS_XLOCALE__ */
 
 
 
 
 #if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
 #if defined __USE_SVID || defined __USE_XOPEN_EXTENDED
@@ -494,13 +492,16 @@ __END_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
 /* Re-allocate the previously allocated block
 /* Re-allocate the previously allocated block
    in PTR, making the new block SIZE bytes long.  */
    in PTR, making the new block SIZE bytes long.  */
+/* __attribute_malloc__ is not used, because if realloc returns
+   the same pointer that was passed to it, aliasing needs to be allowed
+   between objects pointed by the old and new pointers.  */
 extern void *realloc (void *__ptr, size_t __size)
 extern void *realloc (void *__ptr, size_t __size)
-     __THROW __attribute_malloc__ __attribute_warn_unused_result__;
+     __THROW __attribute_warn_unused_result__;
 /* Free a block allocated by `malloc', `realloc' or `calloc'.  */
 /* Free a block allocated by `malloc', `realloc' or `calloc'.  */
 extern void free (void *__ptr) __THROW;
 extern void free (void *__ptr) __THROW;
 __END_NAMESPACE_STD
 __END_NAMESPACE_STD
 
 
-#ifdef	__USE_MISC
+#if 0 /*def	__USE_MISC*/
 /* Free a block.  An alias for `free'.	(Sun Unices).  */
 /* Free a block.  An alias for `free'.	(Sun Unices).  */
 extern void cfree (void *__ptr) __THROW;
 extern void cfree (void *__ptr) __THROW;
 #endif /* Use misc.  */
 #endif /* Use misc.  */
@@ -560,10 +561,12 @@ extern char *getenv (__const char *__name) __THROW __nonnull ((1)) __wur;
 libc_hidden_proto(getenv)
 libc_hidden_proto(getenv)
 __END_NAMESPACE_STD
 __END_NAMESPACE_STD
 
 
+#if 0
 /* This function is similar to the above but returns NULL if the
 /* This function is similar to the above but returns NULL if the
    programs is running with SUID or SGID enabled.  */
    programs is running with SUID or SGID enabled.  */
 extern char *__secure_getenv (__const char *__name)
 extern char *__secure_getenv (__const char *__name)
      __THROW __nonnull ((1)) __wur;
      __THROW __nonnull ((1)) __wur;
+#endif
 
 
 #if defined __USE_SVID || defined __USE_XOPEN
 #if defined __USE_SVID || defined __USE_XOPEN
 /* The SVID says this is in <stdio.h>, but this seems a better place.	*/
 /* The SVID says this is in <stdio.h>, but this seems a better place.	*/
@@ -659,7 +662,6 @@ extern char *canonicalize_file_name (__const char *__name)
      __THROW __nonnull ((1)) __wur;
      __THROW __nonnull ((1)) __wur;
 #endif
 #endif
 
 
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 /* Return the canonical absolute name of file NAME.  If RESOLVED is
 /* Return the canonical absolute name of file NAME.  If RESOLVED is
    null, the result is malloc'd; otherwise, if the canonical name is
    null, the result is malloc'd; otherwise, if the canonical name is
    PATH_MAX chars or more, returns null with `errno' set to
    PATH_MAX chars or more, returns null with `errno' set to
@@ -667,8 +669,7 @@ extern char *canonicalize_file_name (__const char *__name)
    returns the name in RESOLVED.  */
    returns the name in RESOLVED.  */
 /* we choose to handle __resolved==NULL as crash :) */
 /* we choose to handle __resolved==NULL as crash :) */
 extern char *realpath (__const char *__restrict __name,
 extern char *realpath (__const char *__restrict __name,
-		       char *__restrict __resolved) __THROW __wur __nonnull((2));
-#endif
+		       char *__restrict __resolved) __THROW __wur;
 
 
 
 
 /* Shorthand for type of comparison functions.  */
 /* Shorthand for type of comparison functions.  */
@@ -725,12 +726,11 @@ __END_NAMESPACE_C99
 #endif
 #endif
 
 
 
 
-#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED || defined __USE_BSD
+#if ( defined __USE_SVID || defined __USE_XOPEN_EXTENDED ) && defined __UCLIBC_HAS_FLOATS__
 /* Convert floating point numbers to strings.  The returned values are
 /* Convert floating point numbers to strings.  The returned values are
    valid only until another call to the same function.  */
    valid only until another call to the same function.  */
 
 
 # ifdef __UCLIBC_SUSV3_LEGACY__
 # ifdef __UCLIBC_SUSV3_LEGACY__
-
 #if 0
 #if 0
 /* Convert VALUE to a string with NDIGIT digits and return a pointer to
 /* Convert VALUE to a string with NDIGIT digits and return a pointer to
    this.  Set *DECPT with the position of the decimal character and *SIGN
    this.  Set *DECPT with the position of the decimal character and *SIGN
@@ -752,6 +752,7 @@ extern char *gcvt (double __value, int __ndigit, char *__buf)
      __THROW __nonnull ((3)) __wur;
      __THROW __nonnull ((3)) __wur;
 # endif /* __UCLIBC_SUSV3_LEGACY__ */
 # endif /* __UCLIBC_SUSV3_LEGACY__ */
 
 
+
 # if 0 /*def __USE_MISC*/
 # if 0 /*def __USE_MISC*/
 /* Long double versions of above functions.  */
 /* Long double versions of above functions.  */
 extern char *qecvt (long double __value, int __ndigit,
 extern char *qecvt (long double __value, int __ndigit,
@@ -784,6 +785,7 @@ extern int qfcvt_r (long double __value, int __ndigit,
 # endif	/* misc */
 # endif	/* misc */
 #endif	/* use MISC || use X/Open Unix */
 #endif	/* use MISC || use X/Open Unix */
 
 
+
 #ifdef __UCLIBC_HAS_WCHAR__
 #ifdef __UCLIBC_HAS_WCHAR__
 __BEGIN_NAMESPACE_STD
 __BEGIN_NAMESPACE_STD
 /* Return the length of the multibyte character
 /* Return the length of the multibyte character
@@ -809,7 +811,7 @@ __END_NAMESPACE_STD
 #endif /* __UCLIBC_HAS_WCHAR__ */
 #endif /* __UCLIBC_HAS_WCHAR__ */
 
 
 
 
-#ifdef __USE_SVID
+#if 0 /*def __USE_SVID*/
 /* Determine whether the string value of RESPONSE matches the affirmation
 /* Determine whether the string value of RESPONSE matches the affirmation
    or negative response expression as specified by the LC_MESSAGES category
    or negative response expression as specified by the LC_MESSAGES category
    in the program's current locale.  Returns 1 if affirmative, 0 if
    in the program's current locale.  Returns 1 if affirmative, 0 if

+ 3 - 3
include/sys/mman.h

@@ -1,5 +1,5 @@
 /* Definitions for BSD-style memory management.
 /* Definitions for BSD-style memory management.
-   Copyright (C) 1994-2000, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1994-2000, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -59,8 +59,8 @@ extern void *mmap (void *__addr, size_t __len, int __prot,
 		   int __flags, int __fd, __off_t __offset) __THROW;
 		   int __flags, int __fd, __off_t __offset) __THROW;
 libc_hidden_proto(mmap)
 libc_hidden_proto(mmap)
 #else
 #else
-# ifdef __REDIRECT
-extern void * __REDIRECT (mmap,
+# ifdef __REDIRECT_NTH
+extern void * __REDIRECT_NTH (mmap,
 			      (void *__addr, size_t __len, int __prot,
 			      (void *__addr, size_t __len, int __prot,
 			       int __flags, int __fd, __off64_t __offset),
 			       int __flags, int __fd, __off64_t __offset),
 			      mmap64);
 			      mmap64);

+ 7 - 3
include/sys/msg.h

@@ -1,4 +1,5 @@
-/* Copyright (C) 1995,1996,1997,1999,2000,2003 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1997,1999,2000,2003,2006,2007
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +22,9 @@
 
 
 #include <features.h>
 #include <features.h>
 
 
+#define __need_size_t
+#include <stddef.h>
+
 /* Get common definition of System V style IPC.  */
 /* Get common definition of System V style IPC.  */
 #include <sys/ipc.h>
 #include <sys/ipc.h>
 
 
@@ -66,8 +70,8 @@ extern int msgget (key_t __key, int __msgflg) __THROW;
 
 
    This function is a cancellation point and therefore not marked with
    This function is a cancellation point and therefore not marked with
    __THROW.  */
    __THROW.  */
-extern int msgrcv (int __msqid, void *__msgp, size_t __msgsz,
-		   long int __msgtyp, int __msgflg);
+extern ssize_t msgrcv (int __msqid, void *__msgp, size_t __msgsz,
+		       long int __msgtyp, int __msgflg);
 
 
 /* Send message to message queue.
 /* Send message to message queue.
 
 

+ 0 - 2
include/sys/poll.h

@@ -30,8 +30,6 @@
 /* Get the timespec definition.  */
 /* Get the timespec definition.  */
 # define __need_timespec
 # define __need_timespec
 # include <time.h>
 # include <time.h>
-/* get NULL definition. */
-# include <stddef.h>
 #endif
 #endif
 
 
 
 

+ 2 - 1
include/sys/shm.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -41,6 +41,7 @@ typedef __pid_t pid_t;
 # endif
 # endif
 #endif	/* X/Open */
 #endif	/* X/Open */
 
 
+
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
 /* The following System V style IPC functions implement a shared memory
 /* The following System V style IPC functions implement a shared memory

+ 7 - 2
include/sys/socket.h

@@ -1,5 +1,6 @@
 /* Declarations of socket constants, types, and functions.
 /* Declarations of socket constants, types, and functions.
-   Copyright (C) 1991,92,1994-2001,2003 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,1994-2001,2003,2005,2007,2008
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -27,6 +28,10 @@ __BEGIN_DECLS
 #include <sys/uio.h>
 #include <sys/uio.h>
 #define	__need_size_t
 #define	__need_size_t
 #include <stddef.h>
 #include <stddef.h>
+#ifdef __USE_GNU
+/* Get the __sigset_t definition.  */
+# include <bits/sigset.h>
+#endif
 
 
 
 
 /* This operating system-specific header file defines the SOCK_*, PF_*,
 /* This operating system-specific header file defines the SOCK_*, PF_*,
@@ -231,7 +236,7 @@ libc_hidden_proto(accept)
 extern int shutdown (int __fd, int __how) __THROW;
 extern int shutdown (int __fd, int __how) __THROW;
 
 
 
 
-#ifdef __USE_XOPEN2K
+#if 0 /*def __USE_XOPEN2K*/
 /* Determine wheter socket is at a out-of-band mark.  */
 /* Determine wheter socket is at a out-of-band mark.  */
 extern int sockatmark (int __fd) __THROW;
 extern int sockatmark (int __fd) __THROW;
 #endif
 #endif

+ 1 - 0
include/sys/stat.h

@@ -375,6 +375,7 @@ extern int utimensat (int __fd, __const char *__path,
 		      __const struct timespec __times[2],
 		      __const struct timespec __times[2],
 		      int __flags)
 		      int __flags)
      __THROW __nonnull ((2));
      __THROW __nonnull ((2));
+libc_hidden_proto(utimensat)
 #endif
 #endif
 
 
 #ifdef __USE_XOPEN2K8
 #ifdef __USE_XOPEN2K8

+ 4 - 4
include/sys/statvfs.h

@@ -54,8 +54,8 @@ extern int statvfs (__const char *__restrict __file,
      __THROW __nonnull ((1, 2));
      __THROW __nonnull ((1, 2));
 libc_hidden_proto(statvfs)
 libc_hidden_proto(statvfs)
 #else
 #else
-# ifdef __REDIRECT
-extern int __REDIRECT (statvfs,
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (statvfs,
 			   (__const char *__restrict __file,
 			   (__const char *__restrict __file,
 			    struct statvfs *__restrict __buf), statvfs64)
 			    struct statvfs *__restrict __buf), statvfs64)
      __nonnull ((1, 2));
      __nonnull ((1, 2));
@@ -76,8 +76,8 @@ extern int fstatvfs (int __fildes, struct statvfs *__buf)
      __THROW __nonnull ((2));
      __THROW __nonnull ((2));
 libc_hidden_proto(fstatvfs)
 libc_hidden_proto(fstatvfs)
 #else
 #else
-# ifdef __REDIRECT
-extern int __REDIRECT (fstatvfs, (int __fildes, struct statvfs *__buf),
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (fstatvfs, (int __fildes, struct statvfs *__buf),
 			   fstatvfs64) __nonnull ((2));
 			   fstatvfs64) __nonnull ((2));
 # else
 # else
 #  define fstatvfs fstatvfs64
 #  define fstatvfs fstatvfs64

+ 5 - 5
include/sys/syscall.h

@@ -19,18 +19,18 @@
 #ifndef _SYSCALL_H
 #ifndef _SYSCALL_H
 #define _SYSCALL_H	1
 #define _SYSCALL_H	1
 
 
+/* User application code should use syscall(). */
+
+#include <features.h>
+#include <bits/sysnum.h>
+#ifdef _LIBC
 /* The _syscall#() macros are for uClibc internal use only.
 /* The _syscall#() macros are for uClibc internal use only.
- * User application code should use syscall() instead.
  *
  *
  * The kernel provided _syscall[0-6] macros from asm/unistd.h are not suitable
  * The kernel provided _syscall[0-6] macros from asm/unistd.h are not suitable
  * for use in uClibc as they lack PIC support etc, so for uClibc we use our own
  * for use in uClibc as they lack PIC support etc, so for uClibc we use our own
  * local _syscall# macros to be certain all such variations are handled
  * local _syscall# macros to be certain all such variations are handled
  * properly.
  * properly.
  */
  */
-
-#include <features.h>
-#include <bits/sysnum.h>
-#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
 # include <bits/syscalls.h>
 # include <bits/syscalls.h>
 # include <bits/syscalls-common.h>
 # include <bits/syscalls-common.h>
 #endif
 #endif

+ 2 - 0
include/sys/timex.h

@@ -116,7 +116,9 @@ struct timex
 
 
 __BEGIN_DECLS
 __BEGIN_DECLS
 
 
+#if 0
 extern int __adjtimex (struct timex *__ntx) __THROW;
 extern int __adjtimex (struct timex *__ntx) __THROW;
+#endif
 extern int adjtimex (struct timex *__ntx) __THROW;
 extern int adjtimex (struct timex *__ntx) __THROW;
 libc_hidden_proto(adjtimex)
 libc_hidden_proto(adjtimex)
 
 

+ 18 - 5
include/sys/utsname.h

@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 96, 97, 99 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,94,96,97,99,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    This file is part of the GNU C Library.
 
 
    The GNU C Library is free software; you can redistribute it and/or
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,26 +29,38 @@ __BEGIN_DECLS
 
 
 #include <bits/utsname.h>
 #include <bits/utsname.h>
 
 
+#ifndef _UTSNAME_SYSNAME_LENGTH
+# define _UTSNAME_SYSNAME_LENGTH _UTSNAME_LENGTH
+#endif
 #ifndef _UTSNAME_NODENAME_LENGTH
 #ifndef _UTSNAME_NODENAME_LENGTH
 # define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH
 # define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH
 #endif
 #endif
+#ifndef _UTSNAME_RELEASE_LENGTH
+# define _UTSNAME_RELEASE_LENGTH _UTSNAME_LENGTH
+#endif
+#ifndef _UTSNAME_VERSION_LENGTH
+# define _UTSNAME_VERSION_LENGTH _UTSNAME_LENGTH
+#endif
+#ifndef _UTSNAME_MACHINE_LENGTH
+# define _UTSNAME_MACHINE_LENGTH _UTSNAME_LENGTH
+#endif
 
 
 /* Structure describing the system and machine.  */
 /* Structure describing the system and machine.  */
 struct utsname
 struct utsname
   {
   {
     /* Name of the implementation of the operating system.  */
     /* Name of the implementation of the operating system.  */
-    char sysname[_UTSNAME_LENGTH];
+    char sysname[_UTSNAME_SYSNAME_LENGTH];
 
 
     /* Name of this node on the network.  */
     /* Name of this node on the network.  */
     char nodename[_UTSNAME_NODENAME_LENGTH];
     char nodename[_UTSNAME_NODENAME_LENGTH];
 
 
     /* Current release level of this implementation.  */
     /* Current release level of this implementation.  */
-    char release[_UTSNAME_LENGTH];
+    char release[_UTSNAME_RELEASE_LENGTH];
     /* Current version level of this release.  */
     /* Current version level of this release.  */
-    char version[_UTSNAME_LENGTH];
+    char version[_UTSNAME_VERSION_LENGTH];
 
 
     /* Name of the hardware type the system is running on.  */
     /* Name of the hardware type the system is running on.  */
-    char machine[_UTSNAME_LENGTH];
+    char machine[_UTSNAME_MACHINE_LENGTH];
 
 
 #if _UTSNAME_DOMAIN_LENGTH - 0
 #if _UTSNAME_DOMAIN_LENGTH - 0
     /* Name of the domain of this node on the network.  */
     /* Name of the domain of this node on the network.  */
@@ -61,6 +73,7 @@ struct utsname
   };
   };
 
 
 #ifdef __USE_SVID
 #ifdef __USE_SVID
+/* Note that SVID assumes all members have the same size.  */
 # define SYS_NMLN  _UTSNAME_LENGTH
 # define SYS_NMLN  _UTSNAME_LENGTH
 #endif
 #endif
 
 

+ 1 - 1
include/sys/wait.h

@@ -85,7 +85,7 @@ typedef union
 # define WIFEXITED(status)	__WIFEXITED(__WAIT_INT(status))
 # define WIFEXITED(status)	__WIFEXITED(__WAIT_INT(status))
 # define WIFSIGNALED(status)	__WIFSIGNALED(__WAIT_INT(status))
 # define WIFSIGNALED(status)	__WIFSIGNALED(__WAIT_INT(status))
 # define WIFSTOPPED(status)	__WIFSTOPPED(__WAIT_INT(status))
 # define WIFSTOPPED(status)	__WIFSTOPPED(__WAIT_INT(status))
-# if 0 /*def __WIFCONTINUED*/
+# ifdef __WIFCONTINUED
 #  define WIFCONTINUED(status)	__WIFCONTINUED(__WAIT_INT(status))
 #  define WIFCONTINUED(status)	__WIFCONTINUED(__WAIT_INT(status))
 # endif
 # endif
 #endif	/* <stdlib.h> not included.  */
 #endif	/* <stdlib.h> not included.  */

+ 2 - 0
include/utmp.h

@@ -37,6 +37,7 @@ __BEGIN_DECLS
 
 
 
 
 
 
+#ifdef __UCLIBC_HAS_LIBUTIL__
 /* Make FD be the controlling terminal, stdin, stdout, and stderr;
 /* Make FD be the controlling terminal, stdin, stdout, and stderr;
    then close FD.  Returns 0 on success, nonzero on error.  */
    then close FD.  Returns 0 on success, nonzero on error.  */
 extern int login_tty (int __fd) __THROW;
 extern int login_tty (int __fd) __THROW;
@@ -51,6 +52,7 @@ extern int logout (__const char *__ut_line) __THROW;
 /* Append to wtmp an entry for the current time and the given info.  */
 /* Append to wtmp an entry for the current time and the given info.  */
 extern void logwtmp (__const char *__ut_line, __const char *__ut_name,
 extern void logwtmp (__const char *__ut_line, __const char *__ut_name,
 		     __const char *__ut_host) __THROW;
 		     __const char *__ut_host) __THROW;
+#endif
 
 
 /* Append entry UTMP to the wtmp-like file WTMP_FILE.  */
 /* Append entry UTMP to the wtmp-like file WTMP_FILE.  */
 extern void updwtmp (__const char *__wtmp_file, __const struct utmp *__utmp)
 extern void updwtmp (__const char *__wtmp_file, __const struct utmp *__utmp)

+ 2 - 0
include/values.h

@@ -53,7 +53,9 @@
 #include <float.h>
 #include <float.h>
 
 
 #define	MAXDOUBLE	DBL_MAX
 #define	MAXDOUBLE	DBL_MAX
+#ifdef __UCLIBC_SUSV4_LEGACY__
 #define	MAXFLOAT	FLT_MAX
 #define	MAXFLOAT	FLT_MAX
+#endif
 #define	MINDOUBLE	DBL_MIN
 #define	MINDOUBLE	DBL_MIN
 #define	MINFLOAT	FLT_MIN
 #define	MINFLOAT	FLT_MIN
 #define	DMINEXP		DBL_MIN_EXP
 #define	DMINEXP		DBL_MIN_EXP

+ 17 - 16
ldso/include/dl-syscall.h

@@ -36,60 +36,60 @@
    dynamic linking at all, so we cannot return any error codes.
    dynamic linking at all, so we cannot return any error codes.
    We just punt if there is an error. */
    We just punt if there is an error. */
 #define __NR__dl_exit __NR_exit
 #define __NR__dl_exit __NR_exit
-static __always_inline _syscall1(void, _dl_exit, int, status);
+static __always_inline _syscall1(void, _dl_exit, int, status)
 
 
 #define __NR__dl_close __NR_close
 #define __NR__dl_close __NR_close
-static __always_inline _syscall1(int, _dl_close, int, fd);
+static __always_inline _syscall1(int, _dl_close, int, fd)
 
 
 #define __NR__dl_open __NR_open
 #define __NR__dl_open __NR_open
 static __always_inline _syscall3(int, _dl_open, const char *, fn, int, flags,
 static __always_inline _syscall3(int, _dl_open, const char *, fn, int, flags,
-                        __kernel_mode_t, mode);
+                        __kernel_mode_t, mode)
 
 
 #define __NR__dl_write __NR_write
 #define __NR__dl_write __NR_write
 static __always_inline _syscall3(unsigned long, _dl_write, int, fd,
 static __always_inline _syscall3(unsigned long, _dl_write, int, fd,
-                        const void *, buf, unsigned long, count);
+                        const void *, buf, unsigned long, count)
 
 
 #define __NR__dl_read __NR_read
 #define __NR__dl_read __NR_read
 static __always_inline _syscall3(unsigned long, _dl_read, int, fd,
 static __always_inline _syscall3(unsigned long, _dl_read, int, fd,
-                        const void *, buf, unsigned long, count);
+                        const void *, buf, unsigned long, count)
 
 
 #define __NR__dl_mprotect __NR_mprotect
 #define __NR__dl_mprotect __NR_mprotect
 static __always_inline _syscall3(int, _dl_mprotect, const void *, addr,
 static __always_inline _syscall3(int, _dl_mprotect, const void *, addr,
-                        unsigned long, len, int, prot);
+                        unsigned long, len, int, prot)
 
 
 #define __NR__dl_stat __NR_stat
 #define __NR__dl_stat __NR_stat
 static __always_inline _syscall2(int, _dl_stat, const char *, file_name,
 static __always_inline _syscall2(int, _dl_stat, const char *, file_name,
-                        struct stat *, buf);
+                        struct stat *, buf)
 
 
 #define __NR__dl_fstat __NR_fstat
 #define __NR__dl_fstat __NR_fstat
-static __always_inline _syscall2(int, _dl_fstat, int, fd, struct stat *, buf);
+static __always_inline _syscall2(int, _dl_fstat, int, fd, struct stat *, buf)
 
 
 #define __NR__dl_munmap __NR_munmap
 #define __NR__dl_munmap __NR_munmap
-static __always_inline _syscall2(int, _dl_munmap, void *, start, unsigned long, length);
+static __always_inline _syscall2(int, _dl_munmap, void *, start, unsigned long, length)
 
 
 #ifdef __NR_getxuid
 #ifdef __NR_getxuid
 # define __NR_getuid __NR_getxuid
 # define __NR_getuid __NR_getxuid
 #endif
 #endif
 #define __NR__dl_getuid __NR_getuid
 #define __NR__dl_getuid __NR_getuid
-static __always_inline _syscall0(uid_t, _dl_getuid);
+static __always_inline _syscall0(uid_t, _dl_getuid)
 
 
 #ifndef __NR_geteuid
 #ifndef __NR_geteuid
 # define __NR_geteuid __NR_getuid
 # define __NR_geteuid __NR_getuid
 #endif
 #endif
 #define __NR__dl_geteuid __NR_geteuid
 #define __NR__dl_geteuid __NR_geteuid
-static __always_inline _syscall0(uid_t, _dl_geteuid);
+static __always_inline _syscall0(uid_t, _dl_geteuid)
 
 
 #ifdef __NR_getxgid
 #ifdef __NR_getxgid
 # define __NR_getgid __NR_getxgid
 # define __NR_getgid __NR_getxgid
 #endif
 #endif
 #define __NR__dl_getgid __NR_getgid
 #define __NR__dl_getgid __NR_getgid
-static __always_inline _syscall0(gid_t, _dl_getgid);
+static __always_inline _syscall0(gid_t, _dl_getgid)
 
 
 #ifndef __NR_getegid
 #ifndef __NR_getegid
 # define __NR_getegid __NR_getgid
 # define __NR_getegid __NR_getgid
 #endif
 #endif
 #define __NR__dl_getegid __NR_getegid
 #define __NR__dl_getegid __NR_getegid
-static __always_inline _syscall0(gid_t, _dl_getegid);
+static __always_inline _syscall0(gid_t, _dl_getegid)
 
 
 #ifdef __NR_getxpid
 #ifdef __NR_getxpid
 # define __NR_getpid __NR_getxpid
 # define __NR_getpid __NR_getxpid
@@ -99,17 +99,18 @@ static __always_inline _syscall0(gid_t, _dl_getpid);
 
 
 #define __NR__dl_readlink __NR_readlink
 #define __NR__dl_readlink __NR_readlink
 static __always_inline _syscall3(int, _dl_readlink, const char *, path, char *, buf,
 static __always_inline _syscall3(int, _dl_readlink, const char *, path, char *, buf,
-                        size_t, bufsiz);
+                        size_t, bufsiz)
 
 
 #ifdef __UCLIBC_HAS_SSP__
 #ifdef __UCLIBC_HAS_SSP__
 # include <sys/time.h>
 # include <sys/time.h>
 # define __NR__dl_gettimeofday __NR_gettimeofday
 # define __NR__dl_gettimeofday __NR_gettimeofday
 static __always_inline _syscall2(int, _dl_gettimeofday, struct timeval *, tv,
 static __always_inline _syscall2(int, _dl_gettimeofday, struct timeval *, tv,
 # ifdef __USE_BSD
 # ifdef __USE_BSD
-                        struct timezone *, tz);
+                        struct timezone *
 # else
 # else
-                        void *, tz);
+                        void *
 # endif
 # endif
+						, tz)
 #endif
 #endif
 
 
 /* Some architectures always use 12 as page shift for mmap2() eventhough the
 /* Some architectures always use 12 as page shift for mmap2() eventhough the

+ 1 - 1
ldso/ldso/bfin/elfinterp.c

@@ -306,7 +306,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 		}
 		}
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, reloc_addr->entry_point, reloc_addr);
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
 #endif
 #endif
 	return 0;
 	return 0;
 
 

+ 3 - 3
ldso/ldso/cris/elfinterp.c

@@ -77,7 +77,7 @@ _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
 		_dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
 		if (_dl_debug_detail)
 		if (_dl_debug_detail)
 			_dl_dprintf(_dl_debug_file,
 			_dl_dprintf(_dl_debug_file,
-				    "\n\tpatched: %x ==> %x @ %x",
+				    "\n\tpatched: %x ==> %x @ %x\n",
 				    *got_addr, new_addr, got_addr);
 				    *got_addr, new_addr, got_addr);
 	}
 	}
 	if (!_dl_debug_nofixups) {
 	if (!_dl_debug_nofixups) {
@@ -219,7 +219,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 
@@ -260,7 +260,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 

+ 1 - 1
ldso/ldso/frv/elfinterp.c

@@ -310,7 +310,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt,
 		}
 		}
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, reloc_addr->entry_point, reloc_addr);
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, reloc_addr->entry_point, reloc_addr);
 #endif
 #endif
 	return 0;
 	return 0;
 
 

+ 2 - 2
ldso/ldso/i386/elfinterp.c

@@ -254,7 +254,7 @@ _dl_do_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 
@@ -294,7 +294,7 @@ _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\n\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 

+ 1 - 1
ldso/ldso/powerpc/elfinterp.c

@@ -304,7 +304,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
  out_nocode:
  out_nocode:
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 	return 0;
 	return 0;
 }
 }

+ 2 - 2
ldso/ldso/sh/elfinterp.c

@@ -243,7 +243,7 @@ _dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
 	}
 	}
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	    if (_dl_debug_reloc && _dl_debug_detail)
 	    if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 
 	return 0;
 	return 0;
@@ -280,7 +280,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct dyn_elf *scope,
 	}
 	}
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x", old_val, *reloc_addr, reloc_addr);
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 	return 0;
 	return 0;
 
 

+ 2 - 2
ldso/ldso/sh64/elfinterp.c

@@ -280,7 +280,7 @@ static int _dl_do_reloc(struct elf_resolve *tpnt,struct dyn_elf *scope,
 
 
 #ifdef __SUPPORT_LD_DEBUG__
 #ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 
@@ -318,7 +318,7 @@ static int _dl_do_lazy_reloc(struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #ifdef __SUPPORT_LD_DEBUG__
 #ifdef __SUPPORT_LD_DEBUG__
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x",
+		_dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
 			    old_val, *reloc_addr, reloc_addr);
 			    old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 

+ 2 - 2
ldso/ldso/xtensa/elfinterp.c

@@ -213,7 +213,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct dyn_elf *scope,
 	}
 	}
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x",
+		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
 					 old_val, *reloc_addr, reloc_addr);
 					 old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 
 
@@ -252,7 +252,7 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct dyn_elf *scope,
 
 
 #if defined (__SUPPORT_LD_DEBUG__)
 #if defined (__SUPPORT_LD_DEBUG__)
 	if (_dl_debug_reloc && _dl_debug_detail)
 	if (_dl_debug_reloc && _dl_debug_detail)
-		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x",
+		_dl_dprintf (_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
 					 old_val, *reloc_addr, reloc_addr);
 					 old_val, *reloc_addr, reloc_addr);
 #endif
 #endif
 	return 0;
 	return 0;

+ 3 - 5
libc/misc/assert/__assert.c

@@ -30,8 +30,6 @@
 #include <stdio.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <unistd.h>
-#include <bits/uClibc_uintmaxtostr.h>
-
 
 
 /* Get the prototype from assert.h as a double-check. */
 /* Get the prototype from assert.h as a double-check. */
 #undef NDEBUG
 #undef NDEBUG
@@ -43,8 +41,8 @@
 
 
 static smallint in_assert;			/* bss inits to 0. */
 static smallint in_assert;			/* bss inits to 0. */
 
 
-void attribute_noreturn __assert(const char *assertion, const char * filename,
-			  int linenumber, register const char * function)
+void __assert(const char *assertion, const char * filename,
+	      unsigned int linenumber, register const char * function)
 {
 {
 	if (!in_assert) {
 	if (!in_assert) {
 		in_assert = 1;
 		in_assert = 1;
@@ -62,7 +60,7 @@ void attribute_noreturn __assert(const char *assertion, const char * filename,
 				assertion
 				assertion
 				);
 				);
 	}
 	}
+	/* shouldn't we? fflush(stderr); */
 	abort();
 	abort();
 }
 }
-
 libc_hidden_def(__assert)
 libc_hidden_def(__assert)

+ 2 - 2
libc/misc/sysvipc/msgq.c

@@ -49,10 +49,10 @@ struct new_msg_buf{
 #ifdef L_msgrcv
 #ifdef L_msgrcv
 #ifdef __NR_msgrcv
 #ifdef __NR_msgrcv
 #define __NR___syscall_msgrcv __NR_msgrcv
 #define __NR___syscall_msgrcv __NR_msgrcv
-static inline _syscall5(int, __syscall_msgrcv, int, msqid, void *, msgp,
+static inline _syscall5(ssize_t, __syscall_msgrcv, int, msqid, void *, msgp,
 			size_t, msgsz, long int, msgtyp, int, msgflg)
 			size_t, msgsz, long int, msgtyp, int, msgflg)
 #endif
 #endif
-static inline int do_msgrcv (int msqid, void *msgp, size_t msgsz,
+static inline ssize_t do_msgrcv (int msqid, void *msgp, size_t msgsz,
 			    long int msgtyp, int msgflg)
 			    long int msgtyp, int msgflg)
 {
 {
 #ifdef __NR_msgrcv
 #ifdef __NR_msgrcv

+ 8 - 14
libc/stdlib/realpath.c

@@ -36,19 +36,10 @@
 
 
 #define MAX_READLINKS 32
 #define MAX_READLINKS 32
 
 
-#ifdef __STDC__
 char *realpath(const char *path, char got_path[])
 char *realpath(const char *path, char got_path[])
-#else
-char *realpath(path, got_path)
-const char *path;
-char got_path[];
-#endif
 {
 {
 	char copy_path[PATH_MAX];
 	char copy_path[PATH_MAX];
-	/* use user supplied buffer directly - reduces stack usage */
-	/* char got_path[PATH_MAX]; */
-	char *max_path;
-	char *new_path;
+	char *max_path, *new_path, *allocated_path;
 	size_t path_len;
 	size_t path_len;
 	int readlinks = 0;
 	int readlinks = 0;
 #ifdef S_IFLNK
 #ifdef S_IFLNK
@@ -72,12 +63,13 @@ char got_path[];
 	/* Copy so that path is at the end of copy_path[] */
 	/* Copy so that path is at the end of copy_path[] */
 	strcpy(copy_path + (PATH_MAX-1) - path_len, path);
 	strcpy(copy_path + (PATH_MAX-1) - path_len, path);
 	path = copy_path + (PATH_MAX-1) - path_len;
 	path = copy_path + (PATH_MAX-1) - path_len;
+	allocated_path = got_path ? NULL : (got_path = malloc(PATH_MAX));
 	max_path = got_path + PATH_MAX - 2; /* points to last non-NUL char */
 	max_path = got_path + PATH_MAX - 2; /* points to last non-NUL char */
 	new_path = got_path;
 	new_path = got_path;
 	if (*path != '/') {
 	if (*path != '/') {
 		/* If it's a relative pathname use getcwd for starters. */
 		/* If it's a relative pathname use getcwd for starters. */
 		if (!getcwd(new_path, PATH_MAX - 1))
 		if (!getcwd(new_path, PATH_MAX - 1))
-			return NULL;
+			goto err;
 		new_path += strlen(new_path);
 		new_path += strlen(new_path);
 		if (new_path[-1] != '/')
 		if (new_path[-1] != '/')
 			*new_path++ = '/';
 			*new_path++ = '/';
@@ -114,6 +106,8 @@ char got_path[];
 		while (*path != '\0' && *path != '/') {
 		while (*path != '\0' && *path != '/') {
 			if (new_path > max_path) {
 			if (new_path > max_path) {
 				__set_errno(ENAMETOOLONG);
 				__set_errno(ENAMETOOLONG);
+ err:
+				free(allocated_path);
 				return NULL;
 				return NULL;
 			}
 			}
 			*new_path++ = *path++;
 			*new_path++ = *path++;
@@ -122,7 +116,7 @@ char got_path[];
 		/* Protect against infinite loops. */
 		/* Protect against infinite loops. */
 		if (readlinks++ > MAX_READLINKS) {
 		if (readlinks++ > MAX_READLINKS) {
 			__set_errno(ELOOP);
 			__set_errno(ELOOP);
-			return NULL;
+			goto err;
 		}
 		}
 		path_len = strlen(path);
 		path_len = strlen(path);
 		/* See if last (so far) pathname component is a symlink. */
 		/* See if last (so far) pathname component is a symlink. */
@@ -133,13 +127,13 @@ char got_path[];
 			if (link_len < 0) {
 			if (link_len < 0) {
 				/* EINVAL means the file exists but isn't a symlink. */
 				/* EINVAL means the file exists but isn't a symlink. */
 				if (errno != EINVAL) {
 				if (errno != EINVAL) {
-					return NULL;
+					goto err;
 				}
 				}
 			} else {
 			} else {
 				/* Safe sex check. */
 				/* Safe sex check. */
 				if (path_len + link_len >= PATH_MAX - 2) {
 				if (path_len + link_len >= PATH_MAX - 2) {
 					__set_errno(ENAMETOOLONG);
 					__set_errno(ENAMETOOLONG);
-					return NULL;
+					goto err;
 				}
 				}
 				/* Note: readlink doesn't add the null byte. */
 				/* Note: readlink doesn't add the null byte. */
 				/* copy_path[link_len] = '\0'; - we don't need it too */
 				/* copy_path[link_len] = '\0'; - we don't need it too */

+ 1 - 0
libc/sysdeps/linux/common/_exit.c

@@ -31,3 +31,4 @@ void attribute_noreturn _exit(int status)
 	}
 	}
 }
 }
 libc_hidden_def(_exit)
 libc_hidden_def(_exit)
+weak_alias(_exit,_Exit)

+ 2 - 0
libc/sysdeps/linux/common/bits/mathcalls.h

@@ -244,6 +244,7 @@ __END_NAMESPACE_C99
 /* Return nonzero if VALUE is not a number.  */
 /* Return nonzero if VALUE is not a number.  */
 __MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__))
 __MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__))
 
 
+# ifdef __DO_XSI_MATH__
 /* Bessel functions.  */
 /* Bessel functions.  */
 __MATHCALL (j0,, (_Mdouble_))
 __MATHCALL (j0,, (_Mdouble_))
 __MATHCALL (j1,, (_Mdouble_))
 __MATHCALL (j1,, (_Mdouble_))
@@ -251,6 +252,7 @@ __MATHCALL (jn,, (int, _Mdouble_))
 __MATHCALL (y0,, (_Mdouble_))
 __MATHCALL (y0,, (_Mdouble_))
 __MATHCALL (y1,, (_Mdouble_))
 __MATHCALL (y1,, (_Mdouble_))
 __MATHCALL (yn,, (int, _Mdouble_))
 __MATHCALL (yn,, (int, _Mdouble_))
+# endif
 #endif
 #endif
 
 
 
 

+ 2 - 0
libc/sysdeps/linux/common/bits/uClibc_ctype.h

@@ -103,12 +103,14 @@ __BEGIN_DECLS
 
 
 /* Now some non-ansi/iso c99 macros. */
 /* Now some non-ansi/iso c99 macros. */
 
 
+#ifndef __UCLIBC_SUSV4_LEGACY__
 #define __isascii(c) (((c) & ~0x7f) == 0)
 #define __isascii(c) (((c) & ~0x7f) == 0)
 #define __toascii(c) ((c) & 0x7f)
 #define __toascii(c) ((c) & 0x7f)
 /* Works correctly *only* on lowercase letters! */
 /* Works correctly *only* on lowercase letters! */
 #define _toupper(c) ((c) ^ 0x20)
 #define _toupper(c) ((c) ^ 0x20)
 /* Works correctly *only* on letters (of any case) and numbers */
 /* Works correctly *only* on letters (of any case) and numbers */
 #define _tolower(c) ((c) | 0x20)
 #define _tolower(c) ((c) | 0x20)
+#endif
 
 
 __END_DECLS
 __END_DECLS
 
 

+ 23 - 0
libc/sysdeps/linux/common/futimens.c

@@ -0,0 +1,23 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * futimens() implementation for uClibc
+ *
+ * Copyright (C) 2009 Bernhard Reutner-Fischer <uclibc@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#define __need_timespec
+#include <time.h>
+#ifdef __NR_utimensat
+extern int utimensat (int __fd, __const char *__path,
+	__const struct timespec __times[2],
+	int __flags) __THROW;
+libc_hidden_proto(utimensat)
+
+int futimens (int fd, __const struct timespec ts[2])
+{
+	return utimensat(fd, 0, ts, 0);
+}
+#endif

+ 2 - 3
libc/sysdeps/linux/common/ppoll.c

@@ -20,10 +20,10 @@
 #include <signal.h>
 #include <signal.h>
 #include <sys/syscall.h>
 #include <sys/syscall.h>
 #include <sys/poll.h>
 #include <sys/poll.h>
+#define __need_NULL
+#include <stddef.h>
 
 
 #if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
 #if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
-
-
 int
 int
 ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
 ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
        const sigset_t *sigmask)
        const sigset_t *sigmask)
@@ -39,5 +39,4 @@ ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
 	return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
 	return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
 }
 }
 libc_hidden_def(ppoll)
 libc_hidden_def(ppoll)
-
 #endif
 #endif

+ 2 - 0
libc/sysdeps/linux/common/utimensat.c

@@ -11,6 +11,8 @@
 
 
 #ifdef __NR_utimensat
 #ifdef __NR_utimensat
 _syscall4(int, utimensat, int, fd, const char *, path, const struct timespec *, times, int, flags)
 _syscall4(int, utimensat, int, fd, const char *, path, const struct timespec *, times, int, flags)
+libc_hidden_def(utimensat)
 #else
 #else
 /* should add emulation with utimens() and /proc/self/fd/ ... */
 /* should add emulation with utimens() and /proc/self/fd/ ... */
 #endif
 #endif
+

+ 1 - 0
libc/sysdeps/linux/mips/bits/termios.h

@@ -73,6 +73,7 @@ struct termios
 #define IXANY	0004000		/* Any character will restart after stop.  */
 #define IXANY	0004000		/* Any character will restart after stop.  */
 #define IXOFF	0010000		/* Enable start/stop input control.  */
 #define IXOFF	0010000		/* Enable start/stop input control.  */
 #define IMAXBEL 0020000		/* Ring bell when input queue is full.  */
 #define IMAXBEL 0020000		/* Ring bell when input queue is full.  */
+#define IUTF8   0040000		/* Input is UTF8.  */
 
 
 /* c_oflag bits */
 /* c_oflag bits */
 #define OPOST	0000001		/* Perform output processing.  */
 #define OPOST	0000001		/* Perform output processing.  */

+ 6 - 2
libm/Makefile.in

@@ -56,8 +56,8 @@ LD_MSRC := ldouble_wrappers.c
 ifeq ($(DO_C99_MATH),y)
 ifeq ($(DO_C99_MATH),y)
 libm_CSRC := \
 libm_CSRC := \
 	e_acos.c e_acosh.c e_asin.c e_atan2.c e_atanh.c e_cosh.c \
 	e_acos.c e_acosh.c e_asin.c e_atan2.c e_atanh.c e_cosh.c \
-	e_exp.c e_fmod.c e_hypot.c e_j0.c \
-	e_j1.c e_jn.c e_lgamma_r.c e_log.c e_log2.c e_log10.c \
+	e_exp.c e_fmod.c e_hypot.c \
+	e_lgamma_r.c e_log.c e_log2.c e_log10.c \
 	e_pow.c e_remainder.c e_rem_pio2.c e_scalb.c e_sinh.c \
 	e_pow.c e_remainder.c e_rem_pio2.c e_scalb.c e_sinh.c \
 	e_sqrt.c k_cos.c k_rem_pio2.c k_sin.c k_standard.c k_tan.c \
 	e_sqrt.c k_cos.c k_rem_pio2.c k_sin.c k_standard.c k_tan.c \
 	s_asinh.c s_atan.c s_cbrt.c s_ceil.c s_copysign.c s_cos.c \
 	s_asinh.c s_atan.c s_cbrt.c s_ceil.c s_copysign.c s_cos.c \
@@ -209,6 +209,10 @@ libm_CSRC := \
 FL_MOBJ := sqrtf.o
 FL_MOBJ := sqrtf.o
 endif
 endif
 
 
+ifeq ($(DO_XSI_MATH),y)
+libm_CSRC += e_j0.c e_j1.c e_jn.c
+endif
+
 # assume that arch specific versions are provided as single sources/objects
 # assume that arch specific versions are provided as single sources/objects
 ifeq ($(UCLIBC_HAS_FPU),y)
 ifeq ($(UCLIBC_HAS_FPU),y)
 ifeq ($(DO_C99_MATH),y)
 ifeq ($(DO_C99_MATH),y)

+ 5 - 10
libm/ldouble_wrappers.c

@@ -505,28 +505,23 @@ long double significandl(long double x)
 #ifdef __DO_C99_MATH__
 #ifdef __DO_C99_MATH__
 
 
 #ifdef L___fpclassifyl
 #ifdef L___fpclassifyl
-int_WRAPPER1(__fpclassify)
-libm_hidden_def(__fpclassifyl)
+int_WRAPPER_C99(__fpclassify)
 #endif
 #endif
 
 
 #ifdef L___finitel
 #ifdef L___finitel
-int_WRAPPER1(__finite)
-libm_hidden_def(__finitel)
+int_WRAPPER_C99(__finite)
 #endif
 #endif
 
 
 #ifdef L___signbitl
 #ifdef L___signbitl
-int_WRAPPER1(__signbit)
-libm_hidden_def(__signbitl)
+int_WRAPPER_C99(__signbit)
 #endif
 #endif
 
 
 #ifdef L___isnanl
 #ifdef L___isnanl
-int_WRAPPER1(__isnan)
-libm_hidden_def(__isnanl)
+int_WRAPPER_C99(__isnan)
 #endif
 #endif
 
 
 #ifdef L___isinfl
 #ifdef L___isinfl
-int_WRAPPER1(__isinf)
-libm_hidden_def(__isinfl)
+int_WRAPPER_C99(__isinf)
 #endif
 #endif
 
 
 #endif
 #endif

+ 2 - 2
libnsl/Makefile.in

@@ -28,8 +28,8 @@ libnsl-a-y := $(libnsl_OBJ)
 endif
 endif
 libnsl-so-y := $(libnsl_OBJ:.o=.os)
 libnsl-so-y := $(libnsl_OBJ:.o=.os)
 
 
-lib-a-y += $(top_builddir)lib/libnsl.a
-lib-so-y += $(top_builddir)lib/libnsl.so
+lib-a-$(UCLIBC_HAS_LIBNSL_STUB) += $(top_builddir)lib/libnsl.a
+lib-so-$(UCLIBC_HAS_LIBNSL_STUB) += $(top_builddir)lib/libnsl.so
 objclean-y += libnsl_clean
 objclean-y += libnsl_clean
 
 
 ifeq ($(DOPIC),y)
 ifeq ($(DOPIC),y)

+ 2 - 2
libresolv/Makefile.in

@@ -28,8 +28,8 @@ libresolv-a-y := $(libresolv_OBJ)
 endif
 endif
 libresolv-so-y := $(libresolv_OBJ:.o=.os)
 libresolv-so-y := $(libresolv_OBJ:.o=.os)
 
 
-lib-a-$(UCLIBC_HAS_RESOLV_STUB)  += $(top_builddir)lib/libresolv.a
-lib-so-$(UCLIBC_HAS_RESOLV_STUB) += $(top_builddir)lib/libresolv.so
+lib-a-$(UCLIBC_HAS_LIBRESOLV_STUB)  += $(top_builddir)lib/libresolv.a
+lib-so-$(UCLIBC_HAS_LIBRESOLV_STUB) += $(top_builddir)lib/libresolv.so
 objclean-y += libresolv_clean
 objclean-y += libresolv_clean
 
 
 ifeq ($(DOPIC),y)
 ifeq ($(DOPIC),y)

+ 2 - 2
libutil/Makefile.in

@@ -35,8 +35,8 @@ libutil-a-y := $(libutil_OBJ)
 endif
 endif
 libutil-so-y := $(libutil_OBJ:.o=.os)
 libutil-so-y := $(libutil_OBJ:.o=.os)
 
 
-lib-a-y += $(top_builddir)lib/libutil.a
-lib-so-y += $(top_builddir)lib/libutil.so
+lib-a-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.a
+lib-so-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.so
 objclean-y += libutil_clean
 objclean-y += libutil_clean
 
 
 ifeq ($(DOMULTI),n)
 ifeq ($(DOMULTI),n)

Some files were not shown because too many files changed in this diff