summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-03-29 04:50:56 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2015-03-29 04:50:56 -0500
commitcd5f92704e1e17bbc0c15d197f3bc236c7dc9bf2 (patch)
tree1400302b543e4528aedea5d72731983559cfcf36
parentad2bffbf1926051ef333f9899344f6bddf2c03cf (diff)
parent24946289317ea23bb0d1814cca0a499a905f7d6f (diff)
merge uClibc git master
-rw-r--r--Makefile.in2
-rw-r--r--Makerules9
-rw-r--r--extra/Configs/Config.in29
-rw-r--r--extra/Configs/Config.in.arch2
-rw-r--r--extra/Configs/defconfigs/arc/arcv2_defconfig2
-rw-r--r--extra/Configs/defconfigs/arc/defconfig2
-rwxr-xr-xextra/scripts/gen_bits_syscall_h.sh1
-rw-r--r--include/atomic.h235
-rw-r--r--include/complex.h2
-rw-r--r--include/dlfcn.h6
-rw-r--r--include/fcntl.h2
-rw-r--r--include/iconv.h4
-rw-r--r--include/internal/utmp.h92
-rw-r--r--include/malloc.h4
-rw-r--r--include/math.h2
-rw-r--r--include/pty.h1
-rw-r--r--include/setjmp.h19
-rw-r--r--include/spawn.h24
-rw-r--r--include/stdio.h51
-rw-r--r--include/stdlib.h8
-rw-r--r--include/sys/cdefs.h24
-rw-r--r--include/sys/sysmacros.h29
-rw-r--r--include/sys/wait.h18
-rw-r--r--include/ucontext.h6
-rw-r--r--include/unistd.h75
-rw-r--r--include/utmp.h2
-rw-r--r--include/wchar.h8
-rw-r--r--ldso/include/dl-syscall.h10
-rw-r--r--ldso/ldso/arc/elfinterp.c4
-rw-r--r--ldso/ldso/sh/dl-syscalls.h2
-rw-r--r--libc/inet/resolv.c6
-rw-r--r--libc/misc/utmp/Makefile.in4
-rw-r--r--libc/misc/utmp/utent.c312
-rw-r--r--libc/misc/utmp/utxent.c109
-rw-r--r--libc/misc/utmp/wtent.c59
-rw-r--r--libc/stdio/_fpmaxtostr.h22
-rw-r--r--libc/stdio/_vfprintf.c15
-rw-r--r--libc/stdlib/Makefile.in4
-rw-r--r--libc/stdlib/malloc-standard/free.c6
-rw-r--r--libc/stdlib/malloc-standard/malloc.c5
-rw-r--r--libc/stdlib/malloc-standard/memalign.c2
-rw-r--r--libc/stdlib/malloc-standard/realloc.c2
-rw-r--r--libc/string/strverscmp.c69
-rw-r--r--libc/sysdeps/linux/arc/sigaction.c3
-rwxr-xr-xlibc/sysdeps/linux/arc/sys/procfs.h7
-rw-r--r--libc/sysdeps/linux/arm/Makefile.arch4
-rw-r--r--libc/sysdeps/linux/common/Makefile.in1
-rw-r--r--libc/sysdeps/linux/common/bits/kernel-features.h5
-rw-r--r--libc/sysdeps/linux/common/bits/mathcalls.h23
-rw-r--r--libc/sysdeps/linux/common/bits/utmp.h4
-rw-r--r--libc/sysdeps/linux/common/bits/utmpx.h2
-rw-r--r--libc/sysdeps/linux/common/getrandom.c14
-rw-r--r--libc/sysdeps/linux/common/getrusage.c1
-rw-r--r--libc/sysdeps/linux/common/makedev.c42
-rw-r--r--libc/sysdeps/linux/common/stubs.c4
-rw-r--r--libc/sysdeps/linux/common/sys/random.h33
-rw-r--r--libc/sysdeps/linux/mips/bits/mathdef.h7
-rw-r--r--libc/sysdeps/linux/mips/bits/wordsize.h3
-rw-r--r--libc/sysdeps/linux/powerpc/bits/wordsize.h2
-rw-r--r--libc/sysdeps/linux/sh/bits/atomic.h12
-rw-r--r--libc/sysdeps/linux/sh/bits/syscalls.h2
-rw-r--r--libc/sysdeps/linux/sparc/bits/wordsize.h1
-rw-r--r--libc/sysdeps/linux/x86_64/bits/wordsize.h9
-rw-r--r--libcrypt/sha256.c18
-rw-r--r--libcrypt/sha512.c18
-rw-r--r--libm/Makefile.in41
-rw-r--r--libm/float_wrappers.c62
-rw-r--r--libm/ldouble_wrappers.c73
-rw-r--r--libm/s_fdim.c17
-rw-r--r--libm/s_fmax.c6
-rw-r--r--libm/s_fmin.c6
-rw-r--r--libm/s_nextafter.c4
-rw-r--r--libpthread/linuxthreads.old/semaphore.h4
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/pthread.h36
-rw-r--r--libpthread/linuxthreads/semaphore.h4
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/pthread.h36
-rw-r--r--libpthread/nptl/Makefile.in2
-rw-r--r--libpthread/nptl/pthread_atfork.c12
-rw-r--r--libpthread/nptl/semaphore.h4
-rw-r--r--libpthread/nptl/sysdeps/pthread/pthread.h64
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h2
-rw-r--r--librt/Makefile.in3
-rw-r--r--libutil/Makefile.in8
-rw-r--r--libutil/forkpty.c3
-rw-r--r--libutil/login.c6
-rw-r--r--libutil/login_tty.c1
-rw-r--r--libutil/logout.c8
-rw-r--r--libutil/logwtmp.c23
-rw-r--r--libutil/openpty.c1
-rw-r--r--test/.gitignore3
-rw-r--r--test/README3
-rw-r--r--test/Test.mak5
-rw-r--r--test/math/compile_test.c20
-rw-r--r--test/math/libm-test.inc62
-rw-r--r--test/misc/Makefile.in8
-rw-r--r--test/misc/tst-scandir.c2
-rw-r--r--test/misc/tst-utmp.c15
-rw-r--r--test/misc/tst-utmpx.c2
-rw-r--r--test/silly/Makefile.in3
-rw-r--r--test/silly/hello.c2
-rw-r--r--test/silly/tst-atomic-long.c27
-rw-r--r--test/silly/tst-atomic.c573
-rw-r--r--test/stdlib/Makefile.in3
-rw-r--r--test/stdlib/testarc4random.c2
104 files changed, 1869 insertions, 792 deletions
diff --git a/Makefile.in b/Makefile.in
index b4bc4b224..e76449372 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -294,6 +294,7 @@ HEADERS_RM-$(UCLIBC_HAS_THREADS) += *thread*.h semaphore.h \
bits/initspin.h
HEADERS_RM-$(UCLIBC_HAS_THREADS_NATIVE) += atomic.h bits/atomic.h
HEADERS_RM-$(UCLIBC_HAS_OBSTACK) += obstack.h
+HEADERS_RM-$(UCLIBC_HAS_UTMP) += bits/utmp.h utmp.h
HEADERS_RM-$(UCLIBC_HAS_UTMPX) += bits/utmpx.h utmpx.h
HEADERS_RM-$(UCLIBC_HAS_WCHAR) += wchar.h wctype.h
HEADERS_RM-$(UCLIBC_HAS_WORDEXP) += wordexp.h
@@ -310,6 +311,7 @@ HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += \
sys/perm.h \
sys/personality.h \
sys/prctl.h \
+ sys/random.h \
sys/reboot.h \
sys/sendfile.h \
bits/signalfd.h \
diff --git a/Makerules b/Makerules
index 1596988d2..fd6bb190d 100644
--- a/Makerules
+++ b/Makerules
@@ -30,6 +30,8 @@ objs: all_objs
define add_IS_IN_lib
ifneq ($(strip $(2)),)
__add_IS_IN_lib := $(2)
+__add_IS_IN_lib += $(2:.o=.i) $(2:.os=.i) $(2:.oS=.i)
+__add_IS_IN_lib += $(2:.o=.s) $(2:.os=.s) $(2:.oS=.s)
$$(__add_IS_IN_lib): CFLAGS-for-library-members:=$(CFLAGS-$(1)) -DIN_LIB=$(word 1,$(subst /, ,$(1)))
endif
endef
@@ -326,9 +328,10 @@ cmd_hcompile.o = $(HOSTCC) $(filter-out $(PHONY),$<) $(DEPS-$(notdir $@)) -c -o
define create-lds
$(Q)$(RM) $@.lds
- $(Q)$(CC) -nostdlib -nostartfiles -shared -Wl,-z,combreloc \
- -Wl,-z,relro -Wl,--hash-style=gnu -Wl,-z,defs \
- -Wl,--verbose 2>&1 | LC_ALL=C \
+ $(Q)$(CC) $(LDFLAG-fuse-ld) $(CPU_LDFLAGS-y) \
+ -nostdlib -nostartfiles -shared -Wl,-z,combreloc \
+ -Wl,-z,relro $(CFLAG_-Wl--hash-style=gnu) -Wl,-z,defs \
+ -x c /dev/null -Wl,--verbose 2>&1 | LC_ALL=C \
$(SED) -e '/^=========/,/^=========/!d;/^=========/d' \
-e 's/^\([ ]*\)\. = .* + SIZEOF_HEADERS;/&\n\1$(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds
endef
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 18b323781..3c2add655 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -718,6 +718,25 @@ config COMPAT_ATEXIT
Enable this option if you want to update from 0.9.28 to git/0.9.29,
else you will be missing atexit() until you rebuild all apps.
+config UCLIBC_HAS_UTMPX
+ bool "utmpx based support for tracking login/logouts to/from the system"
+ help
+ Answer y to enable support for accessing user accounting database.
+ It can be used to track all login/logout to the system.
+
+config UCLIBC_HAS_UTMP
+ bool "utmp support (XPG2 compat, SVr4 compat)"
+ depends on UCLIBC_HAS_UTMPX
+ help
+ Answer y to enable legacy SVID support for accessing
+ user accounting database:
+ getutent(), getutid(), getutline(), pututline(),
+ setutent(), endutent(), utmpname() in utmp.h
+ It can be used to track all login/logout to the system.
+
+ If unsure, answer N and use corresponding POSIX functions
+ from utmpx.h
+
config UCLIBC_SUSV2_LEGACY
bool "Enable SuSv2 LEGACY functions"
help
@@ -1043,7 +1062,7 @@ config UCLIBC_LINUX_SPECIFIC
help
accept4(), bdflush(),
capget(), capset(), eventfd(), fallocate(),
- fstatfs(), inotify_*(), ioperm(), iopl(),
+ fstatfs(), getrandom(), inotify_*(), ioperm(), iopl(),
madvise(), modify_ldt(), pipe2(), personality(),
prctl()/arch_prctl(), pivot_root(), modify_ldt(),
ppoll(), readahead(), reboot(), remap_file_pages(),
@@ -2060,14 +2079,6 @@ config UCLIBC_HAS_GNU_GLOB
Most people will answer N.
-config UCLIBC_HAS_UTMPX
- bool "utmpx based support for tracking login/logouts to/from the system"
- help
- Answer y to enable support for accessing user accounting database.
- It can be used to track all login/logout to the system.
-
- If unsure, just answer N.
-
endmenu
diff --git a/extra/Configs/Config.in.arch b/extra/Configs/Config.in.arch
index 68e03bf9e..0dae84b06 100644
--- a/extra/Configs/Config.in.arch
+++ b/extra/Configs/Config.in.arch
@@ -191,7 +191,7 @@ config UCLIBC_HAS_FENV
config UCLIBC_HAS_LONG_DOUBLE_MATH
bool "Enable long double support"
depends on DO_C99_MATH
- depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze || TARGET_xtensa
+ depends on TARGET_aarch64 || TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64
default y
help
If you want the uClibc math library to contain the full set of C99
diff --git a/extra/Configs/defconfigs/arc/arcv2_defconfig b/extra/Configs/defconfigs/arc/arcv2_defconfig
index d3a7dc7b2..7c4694eb1 100644
--- a/extra/Configs/defconfigs/arc/arcv2_defconfig
+++ b/extra/Configs/defconfigs/arc/arcv2_defconfig
@@ -7,7 +7,7 @@ KERNEL_HEADERS="%KERNEL_HEADERS%"
# LDSO_CACHE_SUPPORT is not set
LDSO_RUNPATH=y
# LDSO_SAFE_RUNPATH is not set
-LINUXTHREADS_OLD=y
+UCLIBC_HAS_THREADS_NATIVE=y
PTHREADS_DEBUG_SUPPORT=y
UCLIBC_HAS_OBSTACK=y
UCLIBC_SUSV2_LEGACY=y
diff --git a/extra/Configs/defconfigs/arc/defconfig b/extra/Configs/defconfigs/arc/defconfig
index 490bc2267..eebb11521 100644
--- a/extra/Configs/defconfigs/arc/defconfig
+++ b/extra/Configs/defconfigs/arc/defconfig
@@ -6,7 +6,7 @@ KERNEL_HEADERS="%KERNEL_HEADERS%"
# LDSO_CACHE_SUPPORT is not set
LDSO_RUNPATH=y
# LDSO_SAFE_RUNPATH is not set
-LINUXTHREADS_OLD=y
+UCLIBC_HAS_THREADS_NATIVE=y
PTHREADS_DEBUG_SUPPORT=y
UCLIBC_HAS_OBSTACK=y
UCLIBC_SUSV2_LEGACY=y
diff --git a/extra/scripts/gen_bits_syscall_h.sh b/extra/scripts/gen_bits_syscall_h.sh
index c44cd8fa4..bfd06b832 100755
--- a/extra/scripts/gen_bits_syscall_h.sh
+++ b/extra/scripts/gen_bits_syscall_h.sh
@@ -23,6 +23,7 @@ fi
case $CC in
*icc*) CC_SYSNUM_ARGS="-dM" ;;
+*clang*) CC_SYSNUM_ARGS="-dM" ;;
*) CC_SYSNUM_ARGS="-dN" ;;
esac
diff --git a/include/atomic.h b/include/atomic.h
index 307704cba..3680d8714 100644
--- a/include/atomic.h
+++ b/include/atomic.h
@@ -1,5 +1,5 @@
/* Internal macros for atomic operations for GNU C Library.
- Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2002-2015 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@@ -32,7 +32,7 @@
the multi-thread case. The interfaces have the prefix
"catomic_".
- - support functions like barriers. They also have the preifx
+ - support functions like barriers. They also have the prefix
"atomic_".
Architectures must provide a few lowlevel macros (the compare
@@ -198,8 +198,12 @@
/* Add VALUE to *MEM and return the old value of *MEM. */
-#ifndef atomic_exchange_and_add
-# define atomic_exchange_and_add(mem, value) \
+#ifndef atomic_exchange_and_add_acq
+# ifdef atomic_exchange_and_add
+# define atomic_exchange_and_add_acq(mem, value) \
+ atomic_exchange_and_add (mem, value)
+# else
+# define atomic_exchange_and_add_acq(mem, value) \
({ __typeof (*(mem)) __atg6_oldval; \
__typeof (mem) __atg6_memp = (mem); \
__typeof (*(mem)) __atg6_value = (value); \
@@ -213,8 +217,18 @@
__atg6_oldval), 0)); \
\
__atg6_oldval; })
+# endif
#endif
+#ifndef atomic_exchange_and_add_rel
+# define atomic_exchange_and_add_rel(mem, value) \
+ atomic_exchange_and_add_acq(mem, value)
+#endif
+
+#ifndef atomic_exchange_and_add
+# define atomic_exchange_and_add(mem, value) \
+ atomic_exchange_and_add_acq(mem, value)
+#endif
#ifndef catomic_exchange_and_add
# define catomic_exchange_and_add(mem, value) \
@@ -528,6 +542,219