devel
Threads by month
- ----- 2025 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
September 2016
- 5 participants
- 17 discussions

[RFC PATCH] libpthread/nptl: Use arch-dependent unwind-forcedunwind.c if available
by Ignacy Gawędzki 30 Nov '16
by Ignacy Gawędzki 30 Nov '16
30 Nov '16
Using unwind-forcedunwind.c from nptl/sysdeps/pthread doesn't work
well on ARM, see
nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c for an
explanation.
The following code example shows what's wrong without the ARM-specific
version.
--------------------------------------------------------------------
struct Foo {
~Foo();
};
Foo::~Foo() {}
void f()
{
Foo a;
throw 0;
}
int main()
{
try {
f();
} catch (int) {
std::cerr << "caught" << std::endl;
}
return 0;
}
--------------------------------------------------------------------
Compile without any optimizations (it's important that Foo's
destructor is not inlined) and link with -lpthread. The thrown
exception is not caught as expected and the program aborts.
Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki(a)green-communications.fr>
---
libpthread/nptl/sysdeps/pthread/Makefile.in | 4 ++--
libpthread/nptl/sysdeps/pthread/pthread-unwind-forcedunwind.c | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 libpthread/nptl/sysdeps/pthread/pthread-unwind-forcedunwind.c
diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
index 9d99f31..6325c0d 100644
--- a/libpthread/nptl/sysdeps/pthread/Makefile.in
+++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
@@ -40,7 +40,7 @@ CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE
CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE
CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE
CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE
-CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-pthread-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-OMIT-librt-cancellation.c = -DIS_IN_libpthread
CFLAGS-OMIT-rt-unwind-resume.c = -DIS_IN_libpthread
@@ -49,7 +49,7 @@ CFLAGS-librt-cancellation.c = -DIS_IN_librt \
CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
-fexceptions -fasynchronous-unwind-tables
-libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, unwind-forcedunwind)
+libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, pthread-unwind-forcedunwind)
librt-pt-routines-y = librt-cancellation.c
librt-pt-shared-only-routines-y = rt-unwind-resume.c
diff --git a/libpthread/nptl/sysdeps/pthread/pthread-unwind-forcedunwind.c b/libpthread/nptl/sysdeps/pthread/pthread-unwind-forcedunwind.c
new file mode 100644
index 0000000..fc04eb4
--- /dev/null
+++ b/libpthread/nptl/sysdeps/pthread/pthread-unwind-forcedunwind.c
@@ -0,0 +1 @@
+#include <unwind-forcedunwind.c>
--
2.7.4
2
27

uClibc-ng - small C library for embedded systems branch master updated. v1.0.18-2-g15186b9
by wbx@helium.openadk.org 30 Sep '16
by wbx@helium.openadk.org 30 Sep '16
30 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 15186b99774df74cf8ab02acd1a3f0ffd4c54ca1 (commit)
from 8c53e7524dfb9127b006e773307fdaa4df899a04 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 15186b99774df74cf8ab02acd1a3f0ffd4c54ca1
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Fri Sep 30 04:49:58 2016 +0200
ubacktrace/uargp: remove unneeded and false linker scripts
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 28 ----------------------------
extra/Configs/Config.in | 9 +++------
2 files changed, 3 insertions(+), 34 deletions(-)
diff --git a/Rules.mak b/Rules.mak
index 15dfa37..67189ff 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -140,7 +140,6 @@ export MAJOR_VERSION MINOR_VERSION SUBLEVEL VERSION ABI_VERSION LC_ALL
LIBC := libc
SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
-UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
UCLIBC_LDSO_NAME := ld-uClibc
ARCH_NATIVE_BIT := 32
@@ -548,33 +547,6 @@ link.asneeded = $(if $(CC_FLAG_ASNEEDED),$(if $(CC_FLAG_NO_ASNEEDED),$(CC_FLAG_A
# Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
ifndef ASNEEDED
export ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
-
-# Only used in installed libc.so linker script
-ifeq ($(UCLIBC_HAS_BACKTRACE),y)
-ifeq ($(HARDWIRED_ABSPATH),y)
-UBACKTRACE_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UBACKTRACE_DSO))
-else
-UBACKTRACE_FULL_NAME := $(UBACKTRACE_DSO)
-endif
-export UBACKTRACE_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && \
- echo "GROUP ( AS_NEEDED ( $(UBACKTRACE_FULL_NAME) ) )" || \
- echo "GROUP ( $(UBACKTRACE_FULL_NAME) )")
-else
-export UBACKTRACE_ASNEEDED:=""
-endif
-ifeq ($(UCLIBC_HAS_ARGP),y)
-ifeq ($(HARDWIRED_ABSPATH),y)
-# Only used in installed libc.so linker script
-UARGP_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/libuargp.so.$(MAJOR_VERSION))
-else
-UARGP_FULL_NAME := libuargp.so.$(MAJOR_VERSION)
-endif
-export UARGP_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && \
- echo "GROUP ( AS_NEEDED ( $(UARGP_FULL_NAME) ) )" || \
- echo "GROUP ( $(UARGP_FULL_NAME) )")
-else
-export UARGP_ASNEEDED:=""
-endif
endif
# Add a bunch of extra pedantic annoyingly strict checks
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index fc6669b..c5e54e1 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -1896,8 +1896,6 @@ config UCLIBC_HAS_ARGP
`--help' and `--version' options.
A library can export an argp option parser, which programs can easily
use in conjunction with their own option parser.
- A new shared object "libuargp" is created. The "libc.so" linker script
- contains the AS_NEEDED entry for getting the libuargp linked automatically.
Argp support is needed by elfutils libdw.
Most people can safely answer N.
@@ -2391,12 +2389,11 @@ config UCLIBC_HAS_BACKTRACE
bool "Add support for application self-debugging"
depends on HAVE_SHARED
help
- Answer Y here to compile support for application self-debugging, by adding
- a new shared object "libubacktrace.so" that provides the following new
- functions:
+ Answer Y here to compile support for application self-debugging that
+ provides the following new functions:
backtrace, backtrace_symbols, backtrace_symbols_fd
- The backtrace functionality is currently supported on SH platform, and it
+ The backtrace functionality is currently supported on some platforms, and it
based on dwarf2 informations to properly work, so any application that
want to use backtrace needs to be built with -fexceptions flag.
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.18-1-g8c53e75
by wbx@helium.openadk.org 29 Sep '16
by wbx@helium.openadk.org 29 Sep '16
29 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 8c53e7524dfb9127b006e773307fdaa4df899a04 (commit)
from 0eaa809ba2232b022932f2c79b5e780543587d37 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8c53e7524dfb9127b006e773307fdaa4df899a04
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Thu Sep 29 11:40:52 2016 +0200
locale: remove building for the host, as it breaks
-----------------------------------------------------------------------
Summary of changes:
utils/Makefile.in | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 5457776..8666f89 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -64,10 +64,6 @@ BUILD_CFLAGS-ldd.host := \
-I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
-I$(top_srcdir)ldso/include \
-include $(top_srcdir)include/elf.h
-BUILD_CFLAGS-locale.host := \
- -DNOT_IN_libc \
- -I$(top_srcdir)utils/ \
- -I.
BUILD_CFLAGS-iconv.host := \
-include $(top_builddir)extra/locale/c8tables.h \
-I$(top_srcdir)libc/misc/wchar -DL_iconv_main
@@ -97,7 +93,6 @@ endif
utils_OBJ := $(patsubst %,$(utils_OUT)/%,$(utils_OBJ))
hostutils_OBJ := $(patsubst %,%.host,$(utils_OBJ))
-hostutils_LOCALE_OBJ := $(patsubst %,%.host,$(utils_LOCALE_OBJ))
utils: $(utils_OBJ) $(utils_LOCALE_OBJ)
@@ -109,10 +104,7 @@ $(utils_OBJ): $(utils_OUT)/% : $(utils_DIR)/%.c | $(libc)
$(utils_OUT)/locale: $(top_srcdir)extra/locale/programs/locale.c | $(libc)
$(compile.u)
-$(utils_OUT)/locale.host: $(top_srcdir)extra/locale/programs/locale.c | $(libc)
- $(hcompile.u)
-
-hostutils: $(hostutils_OBJ) $(hostutils_LOCALE_OBJ)
+hostutils: $(hostutils_OBJ)
$(hostutils_OBJ): $(utils_OUT)/%.host : $(utils_DIR)/%.c
$(hcompile.u)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0
Hi Embedded Hackers,
I cut a new release today. I think most important
change is the commit:
use a single libc and deduplicate threading code
Please report any breakage or regressions.
Have fun!
Thanks
Waldemar
Here are the complete changes:
Eric Le Bihan (1):
librt: fix path parsing in __spawni()
Eugeniy Paltsev (1):
ARC: Fix max ULP for cosine test
Leonid Lisovskiy (1):
linuxthreads: Fix up pthread.h for XPG7.
Rahul Bedarkar (1):
elf-{fdpic, dsbt}.h: avoid void pointer's subtraction
Vineet Gupta (1):
ARC: Support syscall ABI v4
Waldemar Brodkorb (21):
sunrpc: Do not use alloca in clntudp_call
arm: fix compile in thumb mode
linuxthreads: install libpthread_nonshared.a
delete dead code, use -Wdeclaration-after-statement by default
mips: add NaN support
remove DOMULTI support
test: disable regex tests
microblaze: fixup headers to make gdb compile happy
sync header with glibc
remove dead code and documentation
always assume tgkill is present
linuxthreads: use tkill syscall for raise
test: sync tst-atfork2 with GNU libc
use a single libc and deduplicate threading code
locale: cleanup support
microblaze: add ulps file
test: fix parallel build issue
ldd: fix compile for some architectures
test: remove ULPs for unsupported architecture
locale: disable parallel build as it is broken here
bump for release
1
0

uClibc-ng - small C library for embedded systems annotated tag v1.0.18 created. v1.0.18
by wbx@helium.openadk.org 27 Sep '16
by wbx@helium.openadk.org 27 Sep '16
27 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The annotated tag, v1.0.18 has been created
at 924d84e2d2ceeb76a0372676a783c84602741fc8 (tag)
tagging 0eaa809ba2232b022932f2c79b5e780543587d37 (commit)
replaces v1.0.17
tagged by Waldemar Brodkorb
on Tue Sep 27 21:26:39 2016 +0200
- Log -----------------------------------------------------------------
release 1.0.18 - Delirium Nocturnum
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
iQIcBAABCAAGBQJX6sfxAAoJEMEz+QKmmH5iuJoP+wWbMKGLBaY28nBdYJXPVkLh
3ZRtJxkHBllHSiYkiC24ox8uhreIxMeFWtKu2k5ylxv9ESe2Cp6y/m32uaQH1YtC
g/2dDNvg4B+KIOhcQmXccuufP9IvdComH8rCFwdv/D6mtBCUlDMD/HLVF7ojgoqe
qB/N3d7UVEM1ZUTRmK2SnCZFKd3r0DUIae46RjK+dNYejpFFO1lct7OLJbodo+wl
GZBnE5f4feIPj8zxk+1GSNIiuS2pkge3gb5sIZsxzBB9i3jNu7rt2sO3W0zNzQ6d
kzCukYGIcWci+2ltmbEezr4k5H1V1aXfxJrWDFaaJW1u1dsElz0eahjKGRBPO41/
/Fs4wfQJNpdtgIWLYzv9Y1h9It/uAI3g/1E5Q+TTQDMbHhzbjv58SB2ms1qI/I+M
N+LjYQKOPwIkBeQ9nhriDParLbm+xQV8uizeXODP5+ectX2GbL6wbCaQxf6gTgnM
DcH68s2xwrVrjN9It3jFMCcLjq0rW5eoRTn4pqt9k17qvihP8jZFUmtL5liBvGre
zin5YWKhAieSwtge8sXB7c3OVAfwp1MOY+0pqdw2O5dwvaReb4/yUjephueduROj
ELTo0+pRaR+1rxSwHsWONd0zrIFIGUBvJU4Jf243dDmTbHUhCpHmRrud7qp5cm4b
Ght6NnuuAkdoKH+D4Rpi
=L1Cf
-----END PGP SIGNATURE-----
Eric Le Bihan (1):
librt: fix path parsing in __spawni()
Eugeniy Paltsev (1):
ARC: Fix max ULP for cosine test
Leonid Lisovskiy (1):
linuxthreads: Fix up pthread.h for XPG7.
Rahul Bedarkar (1):
elf-{fdpic, dsbt}.h: avoid void pointer's subtraction
Vineet Gupta (1):
ARC: Support syscall ABI v4
Waldemar Brodkorb (21):
sunrpc: Do not use alloca in clntudp_call
arm: fix compile in thumb mode
linuxthreads: install libpthread_nonshared.a
delete dead code, use -Wdeclaration-after-statement by default
mips: add NaN support
remove DOMULTI support
test: disable regex tests
microblaze: fixup headers to make gdb compile happy
sync header with glibc
remove dead code and documentation
always assume tgkill is present
linuxthreads: use tkill syscall for raise
test: sync tst-atfork2 with GNU libc
use a single libc and deduplicate threading code
locale: cleanup support
microblaze: add ulps file
test: fix parallel build issue
ldd: fix compile for some architectures
test: remove ULPs for unsupported architecture
locale: disable parallel build as it is broken here
bump for release
-----------------------------------------------------------------------
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.17-26-g0eaa809
by wbx@helium.openadk.org 27 Sep '16
by wbx@helium.openadk.org 27 Sep '16
27 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 0eaa809ba2232b022932f2c79b5e780543587d37 (commit)
from 4c68c74d91fe42c576b5b5da9ed113aa025e7f09 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0eaa809ba2232b022932f2c79b5e780543587d37
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Sep 27 21:17:41 2016 +0200
bump for release
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Rules.mak b/Rules.mak
index 9b76e4f..15dfa37 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -127,7 +127,7 @@ export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
# Now config hard core
MAJOR_VERSION := 1
MINOR_VERSION := 0
-SUBLEVEL := 17
+SUBLEVEL := 18
EXTRAVERSION :=
VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
ABI_VERSION := $(MAJOR_VERSION)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.17-25-g4c68c74
by wbx@helium.openadk.org 27 Sep '16
by wbx@helium.openadk.org 27 Sep '16
27 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 4c68c74d91fe42c576b5b5da9ed113aa025e7f09 (commit)
from 4b7d25c83cdcaa50625647408e388c3b400fafce (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4c68c74d91fe42c576b5b5da9ed113aa025e7f09
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Sep 27 21:14:01 2016 +0200
locale: disable parallel build as it is broken here
-----------------------------------------------------------------------
Summary of changes:
extra/locale/Makefile.in | 2 ++
1 file changed, 2 insertions(+)
diff --git a/extra/locale/Makefile.in b/extra/locale/Makefile.in
index a16f82b..c23461a 100644
--- a/extra/locale/Makefile.in
+++ b/extra/locale/Makefile.in
@@ -5,6 +5,8 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
+.NOTPARALLEL:
+
locale_DIR := $(top_srcdir)extra/locale
locale_OUT := $(top_builddir)extra/locale
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.17-24-g4b7d25c
by wbx@helium.openadk.org 27 Sep '16
by wbx@helium.openadk.org 27 Sep '16
27 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 4b7d25c83cdcaa50625647408e388c3b400fafce (commit)
via 2b1421826c8f074da53b3c01611c2bab61e3aa76 (commit)
via dd3d37c44ef2016a69ce28de7d483d23120acfa9 (commit)
via 62a8b660f429394eea93cddc1cd70c2c7b463074 (commit)
via b5d946a333f8faff998160c4da499c3c25a2d3ac (commit)
via 29ff9055c80efe77a7130767a9fcb3ab8c67e8ce (commit)
from b06f85d62c41a4ed108628b1c564203f36c0ab4e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4b7d25c83cdcaa50625647408e388c3b400fafce
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Sep 27 18:20:45 2016 +0200
test: remove ULPs for unsupported architecture
commit 2b1421826c8f074da53b3c01611c2bab61e3aa76
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Sep 27 18:18:36 2016 +0200
ldd: fix compile for some architectures
Reorder entries alphabetically (architecture name as order
criterium) and remove unused entries.
commit dd3d37c44ef2016a69ce28de7d483d23120acfa9
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Tue Sep 27 18:18:18 2016 +0200
test: fix parallel build issue
commit 62a8b660f429394eea93cddc1cd70c2c7b463074
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Mon Sep 26 20:22:31 2016 +0200
microblaze: add ulps file
commit b5d946a333f8faff998160c4da499c3c25a2d3ac
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sat Sep 24 10:29:47 2016 +0200
locale: cleanup support
Enable locale application to be build when utils are
build. Remove useless compile and link warnings.
Default to minimal locale builds.
Signed-off-by: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
commit 29ff9055c80efe77a7130767a9fcb3ab8c67e8ce
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sat Sep 24 02:55:31 2016 +0200
use a single libc and deduplicate threading code
Similar to musl libc a single libc has many benefits and solves
some open issues with uClibc-ng.
- no pthread_mutex_* weak symbols exported anymore
- applications no longer failing to link when either
-lrt or -lpthread are missing for dynamic and static linking mode
- smaller C library
- slightly better runtime performance
-----------------------------------------------------------------------
Summary of changes:
Makefile.in | 30 +-
Rules.mak | 8 +-
extra/Configs/Config.in | 16 +-
extra/locale/Makefile.in | 9 +-
extra/locale/gen_collate.c | 18 -
extra/locale/gen_locale.c | 2 -
extra/locale/gen_wc8bit.c | 19 -
extra/locale/gen_wctype.c | 1 -
ldso/ldso/arm/dl-syscalls.h | 37 +-
ldso/ldso/fdpic/dl-inlines.h | 2 +-
ldso/libdl/Makefile.in | 18 -
libc/Makefile.in | 31 +-
libc/misc/internals/__uClibc_main.c | 45 -
libc/misc/locale/locale.c | 13 -
libc/signal/Makefile.in | 7 +-
libc/sysdeps/linux/arm/Makefile.arch | 1 -
libc/sysdeps/linux/arm/libc-thumb_atomics.S | 1 -
libc/sysdeps/linux/common/Makefile.in | 10 +-
libc/sysdeps/linux/common/bits/uClibc_locale.h | 5 -
libc/sysdeps/linux/i386/Makefile.arch | 3 +-
libcrypt/Makefile.in | 27 -
libintl/Makefile.in | 26 -
libm/Makefile.in | 27 -
libnsl/Makefile.in | 27 -
libpthread/linuxthreads/Makefile.in | 43 +-
libpthread/linuxthreads/forward.c | 173 ---
libpthread/linuxthreads/internals.h | 3 +-
libpthread/linuxthreads/libc_pthread_init.c | 11 +-
libpthread/linuxthreads/manager.c | 3 -
libpthread/linuxthreads/pthread.c | 98 +-
.../linuxthreads/sysdeps/pthread/bits/libc-lock.h | 66 +-
.../sysdeps/pthread/pthread-functions.h | 113 --
libpthread/nptl/Makefile.in | 54 +-
libpthread/nptl/forward.c | 169 ---
libpthread/nptl/init.c | 74 +-
libpthread/nptl/pt-system.c | 35 -
libpthread/nptl/pthreadP.h | 7 +-
libpthread/nptl/pthread_setgid.c | 3 -
libpthread/nptl/pthread_setuid.c | 3 -
libpthread/nptl/res.c | 26 -
libpthread/nptl/sysdeps/arm/Makefile.arch | 1 -
libpthread/nptl/sysdeps/arm/aeabi_read_tp.S | 1 -
libpthread/nptl/sysdeps/arm/thumb_atomics.S | 1 -
libpthread/nptl/sysdeps/metag/metag_load_tp.S | 7 -
libpthread/nptl/sysdeps/mips/nptl-sysdep.S | 2 -
libpthread/nptl/sysdeps/pthread/Makefile.in | 51 -
libpthread/nptl/sysdeps/pthread/bits/libc-lock.h | 10 -
libpthread/nptl/sysdeps/pthread/pt-initfini.c | 128 --
libpthread/nptl/sysdeps/pthread/pt-sigaction.c | 7 +-
.../nptl/sysdeps/pthread/pthread-functions.h | 108 --
libpthread/nptl/sysdeps/pthread/setxid.h | 6 +-
libpthread/nptl/sysdeps/pthread/uClibc-glue.h | 1 -
.../sysdeps/unix/sysv/linux/Makefile.commonarch | 1 -
.../nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch | 3 +-
.../unix/sysv/linux/arc/pt-__syscall_error.c | 7 -
.../sysv/linux/arc/pt-__syscall_rt_sigaction.c | 13 -
.../nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | 5 +-
.../unix/sysv/linux/arm/pt-__syscall_error.c | 1 -
.../sysv/linux/arm/pt-__syscall_rt_sigaction.c | 1 -
.../sysdeps/unix/sysv/linux/i386/Makefile.arch | 2 +-
.../unix/sysv/linux/i386/pt-__syscall_error.c | 1 -
.../nptl/sysdeps/unix/sysv/linux/jmp-unwind.c | 7 -
.../sysdeps/unix/sysv/linux/libc_pthread_init.c | 24 +-
.../sysdeps/unix/sysv/linux/metag/Makefile.arch | 3 +-
.../unix/sysv/linux/metag/pt-__syscall_error.c | 7 -
.../sysv/linux/metag/pt-__syscall_rt_sigaction.c | 7 -
.../sysdeps/unix/sysv/linux/mips/Makefile.arch | 2 +-
.../sysv/linux/mips/pt-__syscall_rt_sigaction.c | 1 -
.../sysdeps/unix/sysv/linux/powerpc/Makefile.arch | 5 +-
.../unix/sysv/linux/powerpc/pt-__syscall_error.c | 1 -
.../nptl/sysdeps/unix/sysv/linux/pt-sigwait.c | 2 -
.../nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c | 125 --
.../sysdeps/unix/sysv/linux/sparc/Makefile.arch | 5 +-
.../unix/sysv/linux/sparc/pt-__syscall_error.c | 1 -
.../sysdeps/unix/sysv/linux/x86_64/Makefile.arch | 2 +-
.../unix/sysv/linux/x86_64/pt-__syscall_error.c | 1 -
.../sysdeps/unix/sysv/linux/xtensa/Makefile.arch | 1 -
.../sysdeps/unix/sysv/linux/xtensa/pt-initfini.c | 134 --
libpthread/nptl/sysdeps/xtensa/Makefile.arch | 3 -
libresolv/Makefile.in | 27 -
librt/Makefile.in | 34 -
libuargp/Makefile.in | 25 -
libubacktrace/Makefile.in | 23 -
libutil/Makefile.in | 27 -
test/argp/Makefile.in | 2 -
...-test-ulps-xtensa => libm-test-ulps-microblaze} | 0
test/math/libm-test-ulps-s390 | 1332 --------------------
test/tls/Makefile.in | 11 +
utils/Makefile.in | 4 +-
utils/ldd.c | 39 +-
90 files changed, 125 insertions(+), 3351 deletions(-)
delete mode 100644 libc/sysdeps/linux/arm/libc-thumb_atomics.S
delete mode 100644 libpthread/linuxthreads/forward.c
delete mode 100644 libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
delete mode 100644 libpthread/nptl/forward.c
delete mode 100644 libpthread/nptl/pt-system.c
delete mode 100644 libpthread/nptl/pthread_setgid.c
delete mode 100644 libpthread/nptl/pthread_setuid.c
delete mode 100644 libpthread/nptl/res.c
delete mode 100644 libpthread/nptl/sysdeps/arm/aeabi_read_tp.S
delete mode 100644 libpthread/nptl/sysdeps/arm/thumb_atomics.S
delete mode 100644 libpthread/nptl/sysdeps/metag/metag_load_tp.S
delete mode 100644 libpthread/nptl/sysdeps/mips/nptl-sysdep.S
delete mode 100644 libpthread/nptl/sysdeps/pthread/pt-initfini.c
delete mode 100644 libpthread/nptl/sysdeps/pthread/pthread-functions.h
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_rt_sigaction.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_rt_sigaction.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-__syscall_rt_sigaction.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/pt-sigwait.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-__syscall_error.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pt-initfini.c
copy test/math/{libm-test-ulps-xtensa => libm-test-ulps-microblaze} (100%)
delete mode 100644 test/math/libm-test-ulps-s390
diff --git a/Makefile.in b/Makefile.in
index 5965685..c289ed3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -363,12 +363,19 @@ else
$(Q)cd $(PREFIX)$(DEVEL_PREFIX)include && $(RM) -f wchar-stub.h
endif
+EMPTY_LIB_NAMES = m crypt nsl resolv util dl rt pthread intl
+EMPTY_LIBS = $(EMPTY_LIB_NAMES:%=lib/lib%.a)
+
+$(EMPTY_LIBS):
+ rm -f $(top_builddir)$@
+ $(AR) rc $(top_builddir)$@
+
# Installs startfiles
install_startfiles: startfiles | $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)
-$(INSTALL) -m 644 $(startfiles) $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
# Installs development library links.
-install_dev: install_headers install_runtime install_startfiles | $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)
+install_dev: install_headers install_runtime install_startfiles $(EMPTY_LIBS) | $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)
-$(INSTALL) -m 644 $(top_builddir)lib/*.a $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
ifeq ($(HAVE_SHARED),y)
for i in `cd $(top_builddir) && find lib/ -type l -name 'lib[a-zA-Z]*.so' | \
@@ -389,28 +396,7 @@ else
-$(INSTALL) -m 755 $(top_builddir)lib/libc.so $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
endif
echo "$(UBACKTRACE_ASNEEDED)" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so
-ifeq ($(UCLIBC_HAS_ARGP),y)
-# Add the AS_NEEDED entry for libuargp.so
- if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_MAJORNAME) ] ; then \
- echo "GROUP ( $(UARGP_ASNEEDED) )" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
- fi
-endif
-ifeq ($(UCLIBC_HAS_THREADS),y)
-ifneq ($(UCLIBC_HAS_LINUXTHREADS),y)
-ifeq ($(HARDWIRED_ABSPATH),y)
- if [ -f $(top_builddir)lib/libpthread.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(ABI_VERSION) ] ; then \
- $(RM) $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
- cp $(top_srcdir)extra/scripts/format.lds $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
- echo "GROUP ( $(RUNTIME_PREFIX)$(MULTILIB_DIR)/libpthread.so.$(ABI_VERSION) $(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread_nonshared.a )" \
- >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
- $(SED) -i -e 's://:/:g' $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libpthread.so; \
- fi
-else
- -$(INSTALL) -m 755 $(top_builddir)lib/libpthread.so $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
-endif
-endif
-endif
ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
$(LN) -sf $(RUNTIME_PREFIX_LIB_FROM_DEVEL_PREFIX_LIB)libthread_db.so.1 \
$(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libthread_db.so
diff --git a/Rules.mak b/Rules.mak
index f226dca..9b76e4f 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -156,14 +156,10 @@ endif
UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
NONSHARED_LIBNAME := uclibc_nonshared.a
+NONSHARED_LIBPTHREAD := libpthread_nonshared.a
+
libc := $(top_builddir)lib/$(SHARED_LIBNAME)
libc.depend := $(top_builddir)lib/$(SHARED_LIBNAME:.$(ABI_VERSION)=)
-ifneq ($(ARCH_HAS_NO_SHARED),y)
-libdl.depend := $(top_builddir)lib/libdl.so
-endif
-ifneq ($(HAS_NO_THREADS),y)
-libpthread.depend := $(top_builddir)lib/libpthread.so
-endif
interp := $(top_builddir)lib/interp.os
ldso := $(top_builddir)lib/$(UCLIBC_LDSO)
headers_dep := $(top_builddir)include/bits/sysnum.h \
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index 12dc0df..fc6669b 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -1526,14 +1526,7 @@ choice
prompt "Locale data"
depends on UCLIBC_HAS_LOCALE
- default UCLIBC_BUILD_ALL_LOCALE
-
-config UCLIBC_BUILD_ALL_LOCALE
- bool "All locales"
- depends on UCLIBC_HAS_LOCALE
- help
- This builds all the locales that are available on your
- host-box.
+ default UCLIBC_BUILD_MINIMAL_LOCALE
config UCLIBC_BUILD_MINIMAL_LOCALE
bool "Only selected locales"
@@ -1542,6 +1535,13 @@ config UCLIBC_BUILD_MINIMAL_LOCALE
If you do not need all locales that are available on your
host-box, then set this to 'Y'.
+config UCLIBC_BUILD_ALL_LOCALE
+ bool "All locales"
+ depends on UCLIBC_HAS_LOCALE
+ help
+ This builds all the locales that are available on your
+ host-box.
+
endchoice
config UCLIBC_BUILD_MINIMAL_LOCALES
diff --git a/extra/locale/Makefile.in b/extra/locale/Makefile.in
index 117993f..a16f82b 100644
--- a/extra/locale/Makefile.in
+++ b/extra/locale/Makefile.in
@@ -8,11 +8,6 @@
locale_DIR := $(top_srcdir)extra/locale
locale_OUT := $(top_builddir)extra/locale
-# command used to download source code
-WGET := wget --passive-ftp
-
-LOCALE_DATA_FILENAME := uClibc-locale-20081111-$(ARCH_NATIVE_BIT)-$(if $(ARCH_LITTLE_ENDIAN),el,eb).tgz
-
BUILD_CFLAGS-locale-common := \
-D__UCLIBC_GEN_LOCALE \
-I$(top_builddir)
@@ -72,7 +67,7 @@ locale_headers: $(locale_headers-y)
# we do not know though which locales were really enabled for libc at build time
ifeq ($(wildcard /usr/include/iconv.h),)
-$(locale_OUT)/codesets.txt:
+$(locale_OUT)/codesets.txt: $(locale_OUT)/gen_wc8bit
@if [ ! -f $@ ] ; then \
set -e; \
echo " "; \
@@ -117,7 +112,7 @@ endif
# the lines beginning w/ '#-' are mandatory
# at least one conversion is needed (euro/cyrillic)
-$(locale_OUT)/locales.txt: $(locale_DIR)/LOCALES
+$(locale_OUT)/locales.txt: $(locale_DIR)/LOCALES $(locale_OUT)/gen_locale
@$(disp_gen)
ifeq ($(UCLIBC_BUILD_MINIMAL_LOCALE),y)
$(Q)echo "@euro e" > $@
diff --git a/extra/locale/gen_collate.c b/extra/locale/gen_collate.c
index 15582c1..fc219ad 100644
--- a/extra/locale/gen_collate.c
+++ b/extra/locale/gen_collate.c
@@ -339,7 +339,6 @@ static section_t *new_section(const char *name)
snprintf(buf, sizeof(buf), "%s %05d", cur_col->name, anonsection);
++anonsection;
}
-#warning devel code
/* verbose_msg(VDETAIL, "section %s\n", name); */
p->name = xsymdup(name);
p->itm_list = NULL;
@@ -350,7 +349,6 @@ static section_t *new_section(const char *name)
/* memset(p->rules, 0, MAX_COLLATION_WEIGHTS); */
/* memset(cur_rule, R_FORWARD, 4); */
-#warning devel code
if (*p->name == 'a') {
cur_num_weights = p->num_rules = 4;
memset(p->rules, R_FORWARD, 4);
@@ -725,7 +723,6 @@ static void processfile(void)
const keyword_table_t *k;
order_state = 0;
-#warning devel code
/* cur_num_weights = 0; */
/* cur_num_weights = 4; */
/* memset(cur_rule, R_FORWARD, 4); */
@@ -1289,7 +1286,6 @@ static int old_main(int argc, char **argv)
override_len, multistart_len, weightstr_len,
wcs2colidt_len, index2weight_len, index2ruleidx_len,
ruletable_len,
-#warning mult by 2 for rule indecies
(override_len + multistart_len + weightstr_len
+ wcs2colidt_len + index2weight_len + index2ruleidx_len + ruletable_len) * 2,
(override_len + multistart_len + weightstr_len
@@ -1515,7 +1511,6 @@ static void do_copy(void)
++s;
if (cur_base && !strcmp(cur_base->name,s)) {
/* verbose_msg(VDETAIL, "skipping copy of base file %s\n", s); */
-#warning need to update last in order and position or check
return;
}
/* verbose_msg(VDETAIL, "full copy of %s\n", s); */
@@ -1601,7 +1596,6 @@ static ll_item_t *find_section_list_item(const char *name, col_locale_t *loc)
p = loc->section_list;
while (p) {
-#warning devel code
/* if (!((p->data_type == DT_SECTION) || (p->data_type == DT_REORDER))) { */
/* verbose_msg(VDETAIL, "fsli = %d\n", p->data_type); */
/* } */
@@ -1744,7 +1738,6 @@ static void add_colitem(char *item, char *def)
p = new_colitem(item, def);
-#warning devel code
if (superset) {
if (tfind(p, &cur_base->root_colitem, colitem_cmp)) {
/* verbose_msg(VDETAIL, "skipping superset duplicate collating item \"%s\"\n", p->string); */
@@ -1865,7 +1858,6 @@ static void do_order_start(void)
cur_section = sect;
/* fprintf(stdout, "cur_section now %s\n", cur_section->name); */
-#warning need to add section to weight list?
/* now do rules */
do {
@@ -1945,7 +1937,6 @@ static void do_reorder_after(void)
error_msg("currently reorder_after is not supported in supersets");
}
-#warning have to use rule for current section!!!
if (!(t = next_token())) {
error_msg("missing arg for reorder_after");
@@ -1996,10 +1987,8 @@ static void do_reorder_after(void)
memcpy(cur_section->rules, save_cur_rule, MAX_COLLATION_WEIGHTS);
-#warning devel code
/* verbose_msg(VDETAIL, "reorder -- %s %d\n", ((weighted_item_t *)(lli->data))->symbol, w->num_weights); */
-#warning hack to get around hu_HU reorder-after problem
/* if (!w->num_weights) { */
/* } else { */
@@ -2406,7 +2395,6 @@ static ll_item_t *init_comm_ptr(void)
comm_cur_ptr = comm_cur_ptr->next;
}
-#warning devel code
/* { */
/* ll_item_t *p = comm_cur_ptr; */
/* verbose_msg(VDETAIL, "init_comm_ptr\n"); */
@@ -2672,7 +2660,6 @@ static void finalize_base(void)
base_locale_array[base_locale_len].index2weight_offset = index2weight_len;
base_locale_array[base_locale_len].index2ruleidx_offset = index2ruleidx_len;
if (!strcmp(cur_base->name,"ja_JP") || !strcmp(cur_base->name,"ko_KR")) {
-#warning fix the index2weight check!!
index2weight_len_inc = 0;
}
/* printf("%s -- index2weight_len = %d\n", cur_base->name, index2weight_len); */
@@ -2709,14 +2696,12 @@ static void finalize_base(void)
if (lli->data_type & DT_RANGE) {
i += mr;
mr = 0;
-#warning check ko_kR and 9
/* ++i; */
lli->idx = i;
assert(!rli);
rli = lli;
verbose_msg(VDETAIL, "range pre = %d after = ", i);
i += ((range_item_t *)(lli->data))->length + 1;
-#warning check ko_kR and 9
/* ++i; */
verbose_msg(VDETAIL, "%d\n", i);
if (!index2weight_len_inc) { /* ko_KR hack */
@@ -2740,7 +2725,6 @@ static void finalize_base(void)
} else {
assert(lli->data_type & DT_REORDER);
r = ll_len( ((section_t *)(lli->data))->itm_list );
-#warning check ko_kR and 9
if (r > mr) {
mr = r;
}
@@ -2762,7 +2746,6 @@ static void finalize_base(void)
i += mr;
mr = 0;
i = lli->idx + ((range_item_t *)(lli->data))->length + 1;
-#warning check
} else if ((lli->data_type & DT_WEIGHTED) && !(s->data_type & DT_REORDER)) {
i += mr;
mr = 0;
@@ -3247,7 +3230,6 @@ static void finalize_base(void)
#endif
-#warning handle UNDEFINED idx specially? what if in only some of derived?
/* base_locale_array[base_locale_len].undefined_idx = final_index_val0("UNDEFINED"); */
base_locale_array[base_locale_len].undefined_idx = 0;
diff --git a/extra/locale/gen_locale.c b/extra/locale/gen_locale.c
index 5e89360..a2cb52e 100644
--- a/extra/locale/gen_locale.c
+++ b/extra/locale/gen_locale.c
@@ -1080,8 +1080,6 @@ static void lc_monetary_C(int X, int k)
int j, m;
char c_buf[2];
-#warning fix the char entries for monetary... target signedness of char may be different!
-
c_buf[1] = 0;
c_buf[0] = *nl_langinfo(X);
j = addstring(c_buf);
diff --git a/extra/locale/gen_wc8bit.c b/extra/locale/gen_wc8bit.c
index e16b283..8031df1 100644
--- a/extra/locale/gen_wc8bit.c
+++ b/extra/locale/gen_wc8bit.c
@@ -127,25 +127,6 @@ int main(int argc, char **argv)
pclose(fp);
}
-#if 0
- if (argc == 1) {
- /* User requested 8-bit codesets, but didn't list any... */
- /* Allow to build, just so this feature can be left on in config. */
- printf("#ifdef __CTYPE_HAS_8_BIT_LOCALES\n");
- printf("#warning ignoring 8 bit codesets request"
- " as no codesets specified.\n");
- printf("#endif\n");
- printf("#undef __CTYPE_HAS_8_BIT_LOCALES\n\n");
-
- printf("#define __LOCALE_DATA_NUM_CODESETS\t\t0\n");
- printf("#define __LOCALE_DATA_CODESET_LIST\t\t\"\"\n");
- return EXIT_SUCCESS;
- }
-
-/* printf("#define __CTYPE_HAS_8_BIT_LOCALES\t1\n\n"); */
- printf("#ifdef __CTYPE_HAS_8_BIT_LOCALES\n\n");
-#endif
-
if (argc == 1) {
printf("#undef __CTYPE_HAS_8_BIT_LOCALES\n\n");
diff --git a/extra/locale/gen_wctype.c b/extra/locale/gen_wctype.c
index d5b5c5c..7034509 100644
--- a/extra/locale/gen_wctype.c
+++ b/extra/locale/gen_wctype.c
@@ -682,7 +682,6 @@ int main(int argc, char **argv)
output_table("ctype", &cttable);
output_table("uplow", &ultable);
-#warning fix the upper bound on the upper/lower tables... save 200 bytes or so
printf("#define __LOCALE_DATA_WCuplow_diffs %7u\n", ul_count);
printf("\n#ifdef WANT_WCuplow_diff_data\n\n");
printf("\nstatic const short __LOCALE_DATA_WCuplow_diff_data[%zu] = {",
diff --git a/ldso/ldso/arm/dl-syscalls.h b/ldso/ldso/arm/dl-syscalls.h
index 195461f..f40c4fd 100644
--- a/ldso/ldso/arm/dl-syscalls.h
+++ b/ldso/ldso/arm/dl-syscalls.h
@@ -1,36 +1 @@
-/* _call_via_rX calls are used in thumb ldso because of calls via
- * function pointers, but ldso is not linked with anything which
- * provides them, so define them here (only required for thumb).
- */
-#if defined(__thumb__)
-__asm__(
- ".macro call_via register\n"
- " .global _call_via_\\register\n"
- " .hidden _call_via_\\register\n"
- " .type _call_via_\\register, %function\n"
- " .thumb_func\n"
- "_call_via_\\register:\n"
- " bx \\register\n"
- " .size _call_via_\\register, . - _call_via_\\register\n"
- ".endm\n"
-
- ".text\n"
- ".thumb\n"
- ".align 1\n"
- " call_via r0\n"
- " call_via r1\n"
- " call_via r2\n"
- " call_via r3\n"
- " call_via r4\n"
- " call_via r5\n"
- " call_via r6\n"
- " call_via r7\n"
- " call_via r8\n"
- " call_via r9\n"
- " call_via r10\n"
- " call_via r11\n"
- " call_via r12\n"
- " call_via r13\n"
- " call_via r14\n"
-);
-#endif
+/* stub for arch-specific syscall issues */
diff --git a/ldso/ldso/fdpic/dl-inlines.h b/ldso/ldso/fdpic/dl-inlines.h
index a9bfc93..f590875 100644
--- a/ldso/ldso/fdpic/dl-inlines.h
+++ b/ldso/ldso/fdpic/dl-inlines.h
@@ -159,7 +159,7 @@ eq_pointer(void *p, void *q)
return entry->entry_point == q;
}
-void *
+static __always_inline void *
_dl_funcdesc_for (void *entry_point, void *got_value)
{
struct elf_resolve *tpnt = ((void**)got_value)[2];
diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in
index 1ba8770..24e00fa 100644
--- a/ldso/libdl/Makefile.in
+++ b/ldso/libdl/Makefile.in
@@ -26,8 +26,6 @@ endif
LIBS-libdl.so := $(LIBS) $(ldso)
-libdl_FULL_NAME := libdl-$(VERSION).so
-
libdl_DIR := $(top_srcdir)ldso/libdl
libdl_OUT := $(top_builddir)ldso/libdl
@@ -42,23 +40,7 @@ libdl-a-y := $(libdl-a-y:.o=.os)
endif
libdl-so-y := $(libdl_OUT)/libdl.oS
-lib-a-$(HAVE_SHARED) += $(top_builddir)lib/libdl.a
-lib-so-y += $(top_builddir)lib/libdl.so
objclean-y += CLEAN_ldso/libdl
-$(top_builddir)lib/libdl.so: $(libdl_OUT)/libdl_so.a $(libc.depend)
- $(call link.so,$(libdl_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libdl_FULL_NAME),0)
-
-$(libdl_OUT)/libdl_so.a: $(libdl-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)lib/libdl.a: $(libdl-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_ldso/libdl:
$(do_rm) $(addprefix $(libdl_OUT)/*., o os oS a)
diff --git a/libc/Makefile.in b/libc/Makefile.in
index 05cec18..55fd3d3 100644
--- a/libc/Makefile.in
+++ b/libc/Makefile.in
@@ -18,7 +18,7 @@ endif
CFLAGS-libc :=# intentionally left blank
LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libc.so := -Wl,--dsbt-index=2
LDFLAGS-libc.so := $(LDFLAGS) $(VERSION_SCRIPT) -Wl,-init,$(SYMBOL_PREFIX)__uClibc_init
-LIBS-libc.so := $(interp) $(ldso) $(top_builddir)lib/$(NONSHARED_LIBNAME)
+LIBS-libc.so := $(interp) $(ldso) $(top_builddir)lib/$(NONSHARED_LIBNAME) $(top_builddir)lib/$(NONSHARED_LIBPTHREAD)
# we have SHARED_LIBNAME=libc.so.$(ABI_VERSION) defined in Rules.mak
libc_FULL_NAME := libuClibc-$(VERSION).so
@@ -42,7 +42,32 @@ else
libc-a-y = $(libc-y) $(libc-static-y)
endif
+libc-a-y += $(libnsl-a-y)
+libc-a-y += $(libresolv-a-y)
+libc-a-$(HAVE_SHARED) += $(libdl-a-y)
+libc-a-y += $(libm-a-y)
+libc-a-$(UCLIBC_HAS_LIBUTIL) += $(libutil-a-y)
+libc-a-$(UCLIBC_HAS_CRYPT) += $(libcrypt-a-y)
+libc-a-$(UCLIBC_HAS_ARGP) += $(libuargp-a-y)
+libc-a-$(UCLIBC_HAS_THREADS) += $(libpthread-a-y)
+libc-a-$(UCLIBC_HAS_REALTIME) += $(librt-a-y)
+libc-a-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(libintl-a-y)
+libc-a-$(UCLIBC_HAS_BACKTRACE) += $(libubacktrace-a-y)
+
libc-so-y = $(libc-y:.o=.os) $(libc-shared-y)
+
+libc-so-y += $(libnsl-so-y)
+libc-so-y += $(libresolv-so-y)
+libc-so-y += $(libdl-so-y)
+libc-so-y += $(libm-so-y)
+libc-so-$(UCLIBC_HAS_LIBUTIL) += $(libutil-so-y)
+libc-so-$(UCLIBC_HAS_CRYPT) += $(libcrypt-so-y)
+libc-so-$(UCLIBC_HAS_ARGP) += $(libuargp-so-y)
+libc-so-$(UCLIBC_HAS_THREADS) += $(libpthread-so-y)
+libc-so-$(UCLIBC_HAS_REALTIME) += $(librt-so-y)
+libc-so-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(libintl-so-y)
+libc-so-$(UCLIBC_HAS_BACKTRACE) += $(libubacktrace-so-y)
+
lib-a-y += $(top_builddir)lib/libc.a
lib-gdb-y += $(top_builddir)lib/libc.gdb
lib-so-y += $(libc.depend)
@@ -58,9 +83,9 @@ $(libc.depend): $(libc_OUT)/libc_so.a $(LIBS-libc.so)
$(Q)cat $(top_srcdir)extra/scripts/format.lds > $@.tmp
$(Q)$(OUTPUT_FORMAT) >> $@.tmp
ifeq ($(COMPAT_ATEXIT),y)
- $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(SHARED_LIBNAME) $(ASNEEDED) )" >> $@.tmp
+ $(Q)echo "GROUP ( $(NONSHARED_LIBNAME) $(NONSHARED_LIBPTHREAD) $(SHARED_LIBNAME) $(ASNEEDED) )" >> $@.tmp
else
- $(Q)echo "GROUP ( $(SHARED_LIBNAME) $(NONSHARED_LIBNAME) $(ASNEEDED) )" >> $@.tmp
+ $(Q)echo "GROUP ( $(SHARED_LIBNAME) $(NONSHARED_LIBNAME) $(NONSHARED_LIBPTHREAD) $(ASNEEDED) )" >> $@.tmp
endif
$(Q)mv $@.tmp $@
diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
index 9bb81fc..46e24d8 100644
--- a/libc/misc/internals/__uClibc_main.c
+++ b/libc/misc/internals/__uClibc_main.c
@@ -29,7 +29,6 @@
#include <fcntl.h>
#endif
#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-#include <pthread-functions.h>
#include <not-cancel.h>
#include <atomic.h>
#include <tls.h>
@@ -69,42 +68,6 @@ uintptr_t __stack_chk_guard attribute_relro;
void internal_function _dl_aux_init (ElfW(auxv_t) *av);
-#ifdef __UCLIBC_HAS_THREADS__
-/*
- * uClibc internal locking requires that we have weak aliases
- * for dummy functions in case libpthread.a is not linked in.
- * This needs to be in compilation unit that is pulled always
- * in or linker will disregard these weaks.
- */
-
-static int __pthread_return_0 (pthread_mutex_t *unused) { return 0; }
-weak_alias (__pthread_return_0, __pthread_mutex_lock)
-weak_alias (__pthread_return_0, __pthread_mutex_trylock)
-weak_alias (__pthread_return_0, __pthread_mutex_unlock)
-
-int weak_function
-__pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
-{
- return 0;
-}
-
-void weak_function
-_pthread_cleanup_push_defer(struct _pthread_cleanup_buffer *__buffer,
- void (*__routine) (void *), void *__arg)
-{
- __buffer->__routine = __routine;
- __buffer->__arg = __arg;
-}
-
-void weak_function
-_pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer *__buffer,
- int __execute)
-{
- if (__execute)
- __buffer->__routine(__buffer->__arg);
-}
-#endif /* __UCLIBC_HAS_THREADS__ */
-
#endif /* !SHARED */
/* Defeat compiler optimization which assumes function addresses are never NULL */
@@ -492,20 +455,12 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
else
{
/* Remove the thread-local data. */
-# ifdef SHARED
- __libc_pthread_functions.ptr__nptl_deallocate_tsd ();
-# else
__nptl_deallocate_tsd ();
-# endif
/* One less thread. Decrement the counter. If it is zero we
terminate the entire process. */
result = 0;
-# ifdef SHARED
- unsigned int *const ptr = __libc_pthread_functions.ptr_nthreads;
-# else
unsigned int *const ptr = &__nptl_nthreads;
-# endif
if (! atomic_decrement_and_test (ptr))
/* Not much left to do but to exit the thread, not the process. */
diff --git a/libc/misc/locale/locale.c b/libc/misc/locale/locale.c
index f868ac0..e38792b 100644
--- a/libc/misc/locale/locale.c
+++ b/libc/misc/locale/locale.c
@@ -58,9 +58,6 @@
#include <ctype.h>
#include <stdio.h>
-#undef link_warning
-#define link_warning(A,B)
-
#undef __LOCALE_C_ONLY
#ifndef __UCLIBC_HAS_LOCALE__
#define __LOCALE_C_ONLY
@@ -118,8 +115,6 @@ extern void _locale_init_l(__locale_t base) attribute_hidden;
#ifdef __LOCALE_C_ONLY
-link_warning(setlocale,"REMINDER: The 'setlocale' function supports only C|POSIX locales.")
-
static const char C_string[] = "C";
char *setlocale(int category, register const char *locale)
@@ -135,10 +130,6 @@ char *setlocale(int category, register const char *locale)
#else /* ---------------------------------------------- __LOCALE_C_ONLY */
-#ifdef __UCLIBC_HAS_THREADS__
-link_warning(setlocale,"REMINDER: The 'setlocale' function is _not_ threadsafe except for simple queries.")
-#endif
-
#if !defined(__LOCALE_DATA_NUM_LOCALES) || (__LOCALE_DATA_NUM_LOCALES <= 1)
#error locales enabled, but not data other than for C locale!
#endif
@@ -263,8 +254,6 @@ char *setlocale(int category, const char *locale)
#ifdef __LOCALE_C_ONLY
-link_warning(localeconv,"REMINDER: The 'localeconv' function is hardwired for C/POSIX locale only.")
-
static struct lconv the_lconv;
static const char decpt[] = ".";
@@ -1002,8 +991,6 @@ libc_hidden_def(__XL_NPP(nl_langinfo))
/**********************************************************************/
#ifdef L_newlocale
-#warning mask defines for extra locale categories
-
static const char posix[] = "POSIX";
static const char utf8[] = "UTF-8";
diff --git a/libc/signal/Makefile.in b/libc/signal/Makefile.in
index 6c355b5..d5639d1 100644
--- a/libc/signal/Makefile.in
+++ b/libc/signal/Makefile.in
@@ -7,7 +7,7 @@
subdirs += libc/signal
-CSRC-y := allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \
+CSRC-y := allocrtsig.c killpg.c sigaction.c sigaddset.c sigandset.c \
sigdelset.c sigempty.c sigfillset.c \
sigisempty.c sigismem.c sigjmp.c signal.c \
sigorset.c sigsetops.c sigwait.c
@@ -16,7 +16,10 @@ CSRC-$(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL) += \
CSRC-$(UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL) += sysv_signal.c
CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c sigpause.c
-CSRC-$(UCLIBC_HAS_THREADS_NATIVE):=$(filter-out raise.c,$(CSRC-y))
+# only use simple raise.c when threads are disabled
+ifeq ($(UCLIBC_HAS_THREADS),)
+CSRC-y += raise.c
+endif
ifneq ($(strip $(ARCH_OBJS-y)),)
CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)),$(CSRC-y))
diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
index cda3db2..78f7533 100644
--- a/libc/sysdeps/linux/arm/Makefile.arch
+++ b/libc/sysdeps/linux/arm/Makefile.arch
@@ -13,7 +13,6 @@ SSRC-y := \
vfork.S clone.S
SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
-SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-thumb_atomics.S
libc-nonshared-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.os
libc-static-$(UCLIBC_HAS_THREADS_NATIVE) += $(ARCH_OUT)/libc-aeabi_read_tp.o
CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
diff --git a/libc/sysdeps/linux/arm/libc-thumb_atomics.S b/libc/sysdeps/linux/arm/libc-thumb_atomics.S
deleted file mode 100644
index e7bc895..0000000
--- a/libc/sysdeps/linux/arm/libc-thumb_atomics.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <ldso/ldso/arm/thumb_atomics.S>
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 887dc3d..6c35bff 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -75,11 +75,13 @@ CSRC-$(if $(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_ADVANCED_REALTIME),y,) += \
fallocate.c $(filter fallocate64.c,$(CSRC-y))
# NPTL needs these internally: madvise.c
CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
+ifeq ($(UCLIBC_HAS_THREADS),y)
+CSRC- += raise.c
+endif
ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-CSRC- += fork.c getpid.c raise.c #open.c close.c read.c write.c
+CSRC- += fork.c getpid.c
CSRC- += $(if $(findstring =arm=,=$(TARGET_ARCH)=),vfork.c)
CSRC- += $(if $(findstring =x86_64=,=$(TARGET_ARCH)=),vfork.c)
-#CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
CSRC- += $(if $(findstring =metag=,=$(TARGET_ARCH)=),vfork.c)
endif
ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
@@ -97,6 +99,10 @@ CSRC-$(UCLIBC_HAS_REALTIME) += clock_adjtime.c clock_getres.c clock_gettime.c cl
nanosleep.c __rt_sigtimedwait.c __rt_sigwaitinfo.c sched_getparam.c \
sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
+# use clock_gettime.c from librt only for NPTL
+ifeq ($(UCLIBC_HAS_REALTIME)$(UCLIBC_HAS_THREADS_NATIVE),yy)
+CSRC- += clock_gettime.c
+endif
# clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \
posix_fallocate.c posix_fallocate64.c
diff --git a/libc/sysdeps/linux/common/bits/uClibc_locale.h b/libc/sysdeps/linux/common/bits/uClibc_locale.h
index b42236d..6598eaf 100644
--- a/libc/sysdeps/linux/common/bits/uClibc_locale.h
+++ b/libc/sysdeps/linux/common/bits/uClibc_locale.h
@@ -326,11 +326,6 @@ extern int __locale_mbrtowc_l(wchar_t *__restrict dst,
__locale_t loc) attribute_hidden;
#endif
-#ifdef L_setlocale
-/* so we only get the warning once... */
-#warning need thread version of CUR_LOCALE!
-#endif
-
/**********************************************************************/
#ifdef __UCLIBC_HAS_XLOCALE__
diff --git a/libc/sysdeps/linux/i386/Makefile.arch b/libc/sysdeps/linux/i386/Makefile.arch
index 1c72d23..581e10a 100644
--- a/libc/sysdeps/linux/i386/Makefile.arch
+++ b/libc/sysdeps/linux/i386/Makefile.arch
@@ -9,8 +9,7 @@ CSRC-y := brk.c __syscall_error.c sigaction.c
SSRC-y := \
__longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- sync_file_range.S syscall.S mmap.S \
- copysign.S
+ sync_file_range.S syscall.S mmap.S
SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
SSRC-$(if $(findstring yy,$(UCLIBC_HAS_ADVANCED_REALTIME)$(UCLIBC_HAS_LFS)),y) += posix_fadvise64.S
diff --git a/libcrypt/Makefile.in b/libcrypt/Makefile.in
index eb2d452..fe3df29 100644
--- a/libcrypt/Makefile.in
+++ b/libcrypt/Makefile.in
@@ -9,13 +9,6 @@ subdirs += libcrypt
CFLAGS-libcrypt := -DNOT_IN_libc -DIS_IN_libcrypt $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libcrypt.so := -Wl,--dsbt-index=4
-LDFLAGS-libcrypt.so := $(LDFLAGS)
-
-LIBS-libcrypt.so := $(LIBS)
-
-libcrypt_FULL_NAME := libcrypt-$(VERSION).so
-
libcrypt_DIR := $(top_srcdir)libcrypt
libcrypt_OUT := $(top_builddir)libcrypt
@@ -35,31 +28,11 @@ libcrypt-a-y := $(libcrypt_OBJ)
endif
libcrypt-so-y := $(libcrypt_OBJ:.o=.os)
-lib-a-$(UCLIBC_HAS_CRYPT) += $(top_builddir)lib/libcrypt.a
-lib-so-$(UCLIBC_HAS_CRYPT) += $(top_builddir)lib/libcrypt.so
objclean-y += CLEAN_libcrypt
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libcrypt.so: $(top_builddir)lib/libcrypt.a $(libc.depend)
-else
-$(top_builddir)lib/libcrypt.so: $(libcrypt_OUT)/libcrypt_so.a $(libc.depend)
-endif
- $(call link.so,$(libcrypt_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libcrypt_FULL_NAME),0)
-
-$(libcrypt_OUT)/libcrypt_so.a: $(libcrypt-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libcrypt_OUT)/libcrypt.oS: $(libcrypt_SRC)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libcrypt.a: $(libcrypt-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libcrypt:
$(do_rm) $(addprefix $(libcrypt_OUT)/*., o os oS a)
diff --git a/libintl/Makefile.in b/libintl/Makefile.in
index 6c3e79b..b54e23d 100644
--- a/libintl/Makefile.in
+++ b/libintl/Makefile.in
@@ -9,12 +9,6 @@ subdirs += libintl
CFLAGS-libintl := -DNOT_IN_libc -DIS_IN_libintl $(SSP_ALL_CFLAGS)
-LDFLAGS-libintl.so := $(LDFLAGS)
-
-LIBS-libintl.so := $(LIBS)
-
-libintl_FULL_NAME := libintl-$(VERSION).so
-
MOBJ := \
gettext.o ngettext.o dgettext.o dcgettext.o dngettext.o dcngettext.o \
textdomain.o bindtextdomain.o bind_textdomain_codeset.o \
@@ -33,32 +27,12 @@ libintl-a-y := $(libintl_MOBJ)
endif
libintl-so-y := $(libintl_MOBJ:.o=.os)
-lib-a-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(top_builddir)lib/libintl.a
-lib-so-$(UCLIBC_HAS_GETTEXT_AWARENESS) += $(top_builddir)lib/libintl.so
objclean-y += CLEAN_libintl
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libintl.so: $(top_builddir)lib/libintl.a $(libc.depend)
-else
-$(top_builddir)lib/libintl.so: $(libintl_OUT)/libintl_so.a $(libc.depend)
-endif
- $(call link.so,$(libintl_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libintl_FULL_NAME),0)
-
-$(libintl_OUT)/libintl_so.a: $(libintl-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libintl_OUT)/libintl.oS: $(libintl_MSRC)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libintl.a: $(libintl-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libintl_MOBJ): $(libintl_MSRC)
$(compile.m)
diff --git a/libm/Makefile.in b/libm/Makefile.in
index 0d6ca05..9b40a94 100644
--- a/libm/Makefile.in
+++ b/libm/Makefile.in
@@ -24,13 +24,6 @@ subdirs += libm libm/$(TARGET_ARCH)
CFLAGS-libm := -DNOT_IN_libc -DIS_IN_libm $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libm.so := -Wl,--dsbt-index=5
-LDFLAGS-libm.so := $(LDFLAGS)
-
-LIBS-libm.so := $(LIBS)
-
-libm_FULL_NAME := libm-$(VERSION).so
-
libm_DIR:=$(top_srcdir)libm
libm_OUT:=$(top_builddir)libm
@@ -286,32 +279,12 @@ libm-a-y += $(libm_OBJS)
endif
libm-so-y += $(libm_OBJS:.o=.os)
-lib-a-$(UCLIBC_HAS_FLOATS) += $(top_builddir)lib/libm.a
-lib-so-$(UCLIBC_HAS_FLOATS) += $(top_builddir)lib/libm.so
objclean-y += CLEAN_libm
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libm.so: $(top_builddir)lib/libm.a $(libc.depend)
-else
-$(top_builddir)lib/libm.so: $(libm_OUT)/libm_so.a $(libc.depend)
-endif
- $(call link.so,$(libm_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libm_FULL_NAME),0)
-
-$(libm_OUT)/libm_so.a: $(libm-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libm_OUT)/libm.oS: $(libm_SRC) $(libm_MSRC_FL) $(libm_MSRC_LD) $(libm_ARCH_SRC)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libm.a: $(libm-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libm_MOBJ_FL): $(libm_MSRC_FL)
$(compile.m)
diff --git a/libnsl/Makefile.in b/libnsl/Makefile.in
index e79268c..d6ee956 100644
--- a/libnsl/Makefile.in
+++ b/libnsl/Makefile.in
@@ -9,13 +9,6 @@ subdirs += libnsl
CFLAGS-libnsl := -DNOT_IN_libc -DIS_IN_libnsl $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libnsl.so := -Wl,--dsbt-index=6
-LDFLAGS-libnsl.so := $(LDFLAGS) $(call link.asneeded,-lc)
-
-LIBS-libnsl.so := $(LIBS)
-
-libnsl_FULL_NAME := libnsl-$(VERSION).so
-
libnsl_DIR := $(top_srcdir)libnsl
libnsl_OUT := $(top_builddir)libnsl
@@ -29,27 +22,7 @@ libnsl-a-y := $(libnsl_OBJ)
endif
libnsl-so-y := $(libnsl_OBJ:.o=.os)
-lib-a-$(UCLIBC_HAS_LIBNSL_STUB) += $(top_builddir)lib/libnsl.a
-lib-so-$(UCLIBC_HAS_LIBNSL_STUB) += $(top_builddir)lib/libnsl.so
objclean-y += CLEAN_libnsl
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libnsl.so: $(top_builddir)lib/libnsl.a $(libc.depend)
-else
-$(top_builddir)lib/libnsl.so: $(libnsl_OUT)/libnsl_so.a $(libc.depend)
-endif
- $(call link.so,$(libnsl_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libnsl_FULL_NAME),0)
-
-$(libnsl_OUT)/libnsl_so.a: $(libnsl-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)lib/libnsl.a: $(libnsl-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libnsl:
$(do_rm) $(addprefix $(libnsl_OUT)/*., o os a)
diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in
index 47c45ef..ffdd5d4 100644
--- a/libpthread/linuxthreads/Makefile.in
+++ b/libpthread/linuxthreads/Makefile.in
@@ -11,20 +11,6 @@ subdirs += libpthread/linuxthreads
CFLAGS-dir_linuxthreads := -DNOT_IN_libc -DIS_IN_libpthread
CFLAGS-libpthread/linuxthreads := $(CFLAGS-dir_linuxthreads) $(SSP_ALL_CFLAGS)
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-LDFLAGS-libpthread.so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
-else
-LDFLAGS-libpthread.so := $(LDFLAGS)
-endif
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libpthread.so := -Wl,--dsbt-index=10
-
-LIBS-libpthread.so := $(LIBS) $(ldso)
-
-START_FILE-libpthread.so := $(SHARED_START_FILES)
-END_FILE-libpthread.so := $(SHARED_END_FILES)
-
-libpthread_FULL_NAME := libpthread-$(VERSION).so
-
libpthread_DIR := $(top_srcdir)libpthread/linuxthreads
libpthread_OUT := $(top_builddir)libpthread/linuxthreads
@@ -50,9 +36,8 @@ libpthread_OBJ := $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpt
#
# Stuff that goes into libc.so, not libpthread.so
#
-CFLAGS-OMIT-forward.c := $(CFLAGS-dir_linuxthreads)
CFLAGS-OMIT-libc_pthread_init.c := $(CFLAGS-dir_linuxthreads)
-libpthread_libc_CSRC := forward.c libc_pthread_init.c
+libpthread_libc_CSRC := libc_pthread_init.c
libpthread_libc_OBJ := $(patsubst %.c, $(libpthread_OUT)/%.o,$(libpthread_libc_CSRC))
libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
@@ -64,24 +49,6 @@ libpthread-a-y += $(libpthread_OBJ)
endif
libpthread-so-y += $(libpthread_OBJ:.o=.oS)
-lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
-lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-
-$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(top_builddir)lib/libpthread_nonshared.a
- $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libpthread_FULL_NAME),0)
- $(Q)cat $(top_srcdir)extra/scripts/format.lds > $@.tmp
- $(Q)echo "GROUP ( $(notdir $(a)).$(ABI_VERSION) libpthread_nonshared.a )" >> $@.tmp
- $(Q)mv $@.tmp $@
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(libpthread_OUT)/libpthread_so.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(libpthread_OUT)/libpthread_so.a: $(libpthread-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
$(libpthread_OUT)/libpthread.oS: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
endif
@@ -89,14 +56,6 @@ $(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
$(Q)$(RM) $@
$(compile-m)
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(top_builddir)lib/libpthread.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(top_builddir)lib/libpthread.a: $(libpthread-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
$(top_builddir)include/pthread.h:
$(do_ln) $(call rel_srcdir)$(PTDIR)/sysdeps/pthread/$(@F) $@
$(top_builddir)include/semaphore.h:
diff --git a/libpthread/linuxthreads/forward.c b/libpthread/linuxthreads/forward.c
deleted file mode 100644
index 08295c8..0000000
--- a/libpthread/linuxthreads/forward.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <features.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-
-/* psm: keep this before internals.h */
-#if 0
-vda: here is why:
-headers contain libc_hidden_proto(foo).
-In libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
-adding libc_hidden_proto(foo) just before weak_extern (__pthread_initialize)
-will not warn:
- /* libc_hidden_proto(foo) */
- weak_extern (__pthread_initialize)
- /* libc_hidden_proto(foo) */
-but adding after will! Which is extremely strange -
-weak_extern expands into just "#pragma weak __pthread_initialize".
-TODO: determine whether it is a gcc bug or what
-(see gcc.gnu.org/PR36282)
-For now, just include all headers before internals.h
-(they are again included in internals.h - maybe remove them there later)
-#endif
-
-#include <string.h>
-#include <limits.h>
-#include <setjmp.h>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-
-#include "internals.h"
-
-/* Pointers to the libc functions. */
-struct pthread_functions __libc_pthread_functions attribute_hidden;
-
-
-# define FORWARD2(name, rettype, decl, params, defaction) \
-rettype \
-name decl \
-{ \
- if (__libc_pthread_functions.ptr_##name == NULL) \
- defaction; \
- \
- return __libc_pthread_functions.ptr_##name params; \
-}
-
-# define FORWARD(name, decl, params, defretval) \
- FORWARD2 (name, int, decl, params, return defretval)
-
-FORWARD (pthread_attr_destroy, (pthread_attr_t *attr), (attr), 0)
-
-FORWARD (pthread_attr_init, (pthread_attr_t *attr), (attr), 0)
-
-FORWARD (pthread_attr_getdetachstate,
- (const pthread_attr_t *attr, int *detachstate), (attr, detachstate),
- 0)
-FORWARD (pthread_attr_setdetachstate, (pthread_attr_t *attr, int detachstate),
- (attr, detachstate), 0)
-
-FORWARD (pthread_attr_getinheritsched,
- (const pthread_attr_t *attr, int *inherit), (attr, inherit), 0)
-FORWARD (pthread_attr_setinheritsched, (pthread_attr_t *attr, int inherit),
- (attr, inherit), 0)
-
-FORWARD (pthread_attr_getschedparam,
- (const pthread_attr_t *attr, struct sched_param *param),
- (attr, param), 0)
-FORWARD (pthread_attr_setschedparam,
- (pthread_attr_t *attr, const struct sched_param *param),
- (attr, param), 0)
-
-FORWARD (pthread_attr_getschedpolicy,
- (const pthread_attr_t *attr, int *policy), (attr, policy), 0)
-FORWARD (pthread_attr_setschedpolicy, (pthread_attr_t *attr, int policy),
- (attr, policy), 0)
-
-FORWARD (pthread_attr_getscope,
- (const pthread_attr_t *attr, int *scope), (attr, scope), 0)
-FORWARD (pthread_attr_setscope, (pthread_attr_t *attr, int scope),
- (attr, scope), 0)
-
-
-FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0)
-FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
-
-
-FORWARD (pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_init,
- (pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
- (cond, cond_attr), 0)
-
-FORWARD (pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
-
-FORWARD (pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
- (cond, mutex), 0)
-
-FORWARD (pthread_cond_timedwait,
- (pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime), (cond, mutex, abstime), 0)
-
-
-FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
- (thread1, thread2), 1)
-
-
-/* Use an alias to avoid warning, as pthread_exit is declared noreturn. */
-FORWARD2 (__pthread_exit, void, (void *retval), (retval), exit (EXIT_SUCCESS))
-strong_alias (__pthread_exit, pthread_exit)
-
-
-FORWARD (pthread_getschedparam,
- (pthread_t target_thread, int *policy, struct sched_param *param),
- (target_thread, policy, param), 0)
-FORWARD (pthread_setschedparam,
- (pthread_t target_thread, int policy,
- const struct sched_param *param), (target_thread, policy, param), 0)
-
-
-FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_init,
- (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
- (mutex, mutexattr), 0)
-strong_alias(pthread_mutex_init, __pthread_mutex_init)
-
-FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
-strong_alias(pthread_mutex_lock, __pthread_mutex_lock)
-
-FORWARD (pthread_mutex_trylock, (pthread_mutex_t *mutex), (mutex), 0)
-strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock)
-
-FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
-strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock)
-
-FORWARD2 (pthread_self, pthread_t, (void), (), return 0)
-
-
-FORWARD (pthread_setcancelstate, (int state, int *oldstate), (state, oldstate),
- 0)
-
-FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-
-#if 0
-FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
-#endif
-FORWARD2 (_pthread_cleanup_push_defer, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
-
-#if 0
-FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
-#endif
-FORWARD2 (_pthread_cleanup_pop_restore, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
diff --git a/libpthread/linuxthreads/internals.h b/libpthread/linuxthreads/internals.h
index 1b310b5..ab6b015 100644
--- a/libpthread/linuxthreads/internals.h
+++ b/libpthread/linuxthreads/internals.h
@@ -446,7 +446,6 @@ static __inline__ pthread_descr thread_self (void)
/* Defined and used in libc.so. */
extern int __libc_multiple_threads attribute_hidden;
-extern int __librt_multiple_threads;
/* Internal global functions */
@@ -524,6 +523,6 @@ extern void __linuxthreads_create_event (void) attribute_hidden;
extern void __linuxthreads_death_event (void) attribute_hidden;
extern void __linuxthreads_reap_event (void) attribute_hidden;
-#include <pthread-functions.h>
+extern int * __libc_pthread_init (void);
#endif /* internals.h */
diff --git a/libpthread/linuxthreads/libc_pthread_init.c b/libpthread/linuxthreads/libc_pthread_init.c
index b64da05..26f1abc 100644
--- a/libpthread/linuxthreads/libc_pthread_init.c
+++ b/libpthread/linuxthreads/libc_pthread_init.c
@@ -18,20 +18,11 @@
#include <locale.h>
#include <string.h>
-#include <linuxthreads/sysdeps/pthread/pthread-functions.h>
-
int __libc_multiple_threads attribute_hidden __attribute__((nocommon));
-int * __libc_pthread_init (const struct pthread_functions *functions)
+int * __libc_pthread_init (void)
{
-#ifdef SHARED
- /* We copy the content of the variable pointed to by the FUNCTIONS
- parameter to one in libc.so since this means access to the array
- can be done with one memory access instead of two. */
- memcpy (&__libc_pthread_functions, functions,
- sizeof (__libc_pthread_functions));
-#endif
#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_XLOCALE__
/* Initialize thread-locale current locale to point to the global one.
diff --git a/libpthread/linuxthreads/manager.c b/libpthread/linuxthreads/manager.c
index e4022f8..2a1ee62 100644
--- a/libpthread/linuxthreads/manager.c
+++ b/libpthread/linuxthreads/manager.c
@@ -47,9 +47,6 @@
# define USE_SELECT
#endif
-libpthread_hidden_proto(waitpid)
-libpthread_hidden_proto(raise)
-
/* Array of active threads. Entry 0 is reserved for the initial thread. */
struct pthread_handle_struct __pthread_handles[PTHREAD_THREADS_MAX] =
{ { __LOCK_INITIALIZER, &__pthread_initial_thread, 0},
diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c
index 00197b1..d02da6b 100644
--- a/libpthread/linuxthreads/pthread.c
+++ b/libpthread/linuxthreads/pthread.c
@@ -36,9 +36,6 @@
#include <sys/types.h>
#include <sys/syscall.h>
-libpthread_hidden_proto(waitpid)
-libpthread_hidden_proto(raise)
-
/* These variables are used by the setup code. */
extern int _errno;
extern int _h_errno;
@@ -216,16 +213,12 @@ int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstim
values to some unreasonable value which will signal failing of all
the functions below. */
#ifndef __NR_rt_sigaction
-static int current_rtmin = -1;
-static int current_rtmax = -1;
int __pthread_sig_restart = SIGUSR1;
int __pthread_sig_cancel = SIGUSR2;
int __pthread_sig_debug;
#else
#if __SIGRTMAX - __SIGRTMIN >= 3
-static int current_rtmin = __SIGRTMIN + 3;
-static int current_rtmax = __SIGRTMAX;
int __pthread_sig_restart = __SIGRTMIN;
int __pthread_sig_cancel = __SIGRTMIN + 1;
int __pthread_sig_debug = __SIGRTMIN + 2;
@@ -233,8 +226,6 @@ void (*__pthread_restart)(pthread_descr) = __pthread_restart_new;
void (*__pthread_suspend)(pthread_descr) = __pthread_wait_for_restart_signal;
int (*__pthread_timedsuspend)(pthread_descr, const struct timespec *) = __pthread_timedsuspend_new;
#else
-static int current_rtmin = __SIGRTMIN;
-static int current_rtmax = __SIGRTMAX;
int __pthread_sig_restart = SIGUSR1;
int __pthread_sig_cancel = SIGUSR2;
int __pthread_sig_debug;
@@ -243,32 +234,6 @@ void (*__pthread_suspend)(pthread_descr) = __pthread_suspend_old;
int (*__pthread_timedsuspend)(pthread_descr, const struct timespec *) = __pthread_timedsuspend_old;
#endif
-
-/* Return number of available real-time signal with highest priority. */
-int __libc_current_sigrtmin (void)
-{
- return current_rtmin;
-}
-
-/* Return number of available real-time signal with lowest priority. */
-int __libc_current_sigrtmax (void)
-{
- return current_rtmax;
-}
-
-#if 0
-/* Allocate real-time signal with highest/lowest available
- priority. Please note that we don't use a lock since we assume
- this function to be called at program start. */
-int __libc_allocate_rtsig (int high);
-int __libc_allocate_rtsig (int high)
-{
- if (current_rtmin == -1 || current_rtmin > current_rtmax)
- /* We don't have anymore signal available. */
- return -1;
- return high ? current_rtmin++ : current_rtmax--;
-}
-#endif
#endif
/* Initialize the pthread library.
@@ -315,67 +280,6 @@ libpthread_hidden_proto(pthread_cond_timedwait)
libpthread_hidden_proto(pthread_condattr_destroy)
libpthread_hidden_proto(pthread_condattr_init)
-struct pthread_functions __pthread_functions =
- {
-#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
- .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
- .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
-#endif
-/*
- .ptr_pthread_fork = __pthread_fork,
-*/
- .ptr_pthread_attr_destroy = pthread_attr_destroy,
- .ptr_pthread_attr_init = pthread_attr_init,
- .ptr_pthread_attr_getdetachstate = pthread_attr_getdetachstate,
- .ptr_pthread_attr_setdetachstate = pthread_attr_setdetachstate,
- .ptr_pthread_attr_getinheritsched = pthread_attr_getinheritsched,
- .ptr_pthread_attr_setinheritsched = pthread_attr_setinheritsched,
- .ptr_pthread_attr_getschedparam = pthread_attr_getschedparam,
- .ptr_pthread_attr_setschedparam = pthread_attr_setschedparam,
- .ptr_pthread_attr_getschedpolicy = pthread_attr_getschedpolicy,
- .ptr_pthread_attr_setschedpolicy = pthread_attr_setschedpolicy,
- .ptr_pthread_attr_getscope = pthread_attr_getscope,
- .ptr_pthread_attr_setscope = pthread_attr_setscope,
- .ptr_pthread_condattr_destroy = pthread_condattr_destroy,
- .ptr_pthread_condattr_init = pthread_condattr_init,
- .ptr_pthread_cond_broadcast = pthread_cond_broadcast,
- .ptr_pthread_cond_destroy = pthread_cond_destroy,
- .ptr_pthread_cond_init = pthread_cond_init,
- .ptr_pthread_cond_signal = pthread_cond_signal,
- .ptr_pthread_cond_wait = pthread_cond_wait,
- .ptr_pthread_cond_timedwait = pthread_cond_timedwait,
- .ptr_pthread_equal = pthread_equal,
- .ptr___pthread_exit = pthread_exit,
- .ptr_pthread_getschedparam = pthread_getschedparam,
- .ptr_pthread_setschedparam = pthread_setschedparam,
- .ptr_pthread_mutex_destroy = __pthread_mutex_destroy,
- .ptr_pthread_mutex_init = __pthread_mutex_init,
- .ptr_pthread_mutex_lock = __pthread_mutex_lock,
- .ptr_pthread_mutex_trylock = __pthread_mutex_trylock,
- .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
- .ptr_pthread_self = pthread_self,
- .ptr_pthread_setcancelstate = pthread_setcancelstate,
- .ptr_pthread_setcanceltype = pthread_setcanceltype,
-/*
- .ptr_pthread_do_exit = pthread_do_exit,
- .ptr_pthread_thread_self = pthread_thread_self,
- .ptr_pthread_cleanup_upto = pthread_cleanup_upto,
- .ptr_pthread_sigaction = pthread_sigaction,
- .ptr_pthread_sigwait = pthread_sigwait,
- .ptr_pthread_raise = pthread_raise,
- .ptr__pthread_cleanup_push = _pthread_cleanup_push,
- .ptr__pthread_cleanup_pop = _pthread_cleanup_pop,
-*/
- .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
- .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore
- };
-#ifdef SHARED
-# define ptr_pthread_functions &__pthread_functions
-#else
-# define ptr_pthread_functions NULL
-#endif
-
static int *__libc_multiple_threads_ptr;
/* Do some minimal initialization which has to be done during the
@@ -388,7 +292,7 @@ void __pthread_initialize_minimal(void)
INIT_THREAD_SELF(&__pthread_initial_thread, 0);
#endif
- __libc_multiple_threads_ptr = __libc_pthread_init (ptr_pthread_functions);
+ __libc_multiple_threads_ptr = __libc_pthread_init ();
}
diff --git a/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h b/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
index a7c0249..c00d60b 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
@@ -105,13 +105,8 @@ typedef pthread_key_t __libc_key_t;
(FUNC != NULL ? FUNC ARGS : ELSE)
# endif
#endif
-#if defined _LIBC && !defined NOT_IN_libc && defined SHARED
-# define __libc_maybe_call2(FUNC, ARGS, ELSE) \
- ({__builtin_expect (__libc_pthread_functions.ptr_##FUNC != NULL, 0) \
- ? __libc_pthread_functions.ptr_##FUNC ARGS : ELSE; })
-#else
-# define __libc_maybe_call2(FUNC, ARGS, ELSE) __libc_maybe_call (__##FUNC, ARGS, ELSE)
-#endif
+
+#define __libc_maybe_call2(FUNC, ARGS, ELSE) __libc_maybe_call (__##FUNC, ARGS, ELSE)
/* Initialize the named lock variable, leaving it in a consistent, unlocked
state. */
@@ -351,63 +346,6 @@ extern int __pthread_atfork (void (*__prepare) (void),
void (*__child) (void));
-
-/* Make the pthread functions weak so that we can elide them from
- single-threaded processes. */
-#ifndef __NO_WEAK_PTHREAD_ALIASES
-# ifdef weak_extern
-# define BP_SYM(sym) sym
-weak_extern (BP_SYM (__pthread_mutex_init))
-weak_extern (BP_SYM (__pthread_mutex_destroy))
-weak_extern (BP_SYM (__pthread_mutex_lock))
-weak_extern (BP_SYM (__pthread_mutex_trylock))
-weak_extern (BP_SYM (__pthread_mutex_unlock))
-weak_extern (BP_SYM (__pthread_mutexattr_init))
-weak_extern (BP_SYM (__pthread_mutexattr_destroy))
-weak_extern (BP_SYM (__pthread_mutexattr_settype))
-weak_extern (BP_SYM (__pthread_rwlock_init))
-weak_extern (BP_SYM (__pthread_rwlock_destroy))
-weak_extern (BP_SYM (__pthread_rwlock_rdlock))
-weak_extern (BP_SYM (__pthread_rwlock_tryrdlock))
-weak_extern (BP_SYM (__pthread_rwlock_wrlock))
-weak_extern (BP_SYM (__pthread_rwlock_trywrlock))
-weak_extern (BP_SYM (__pthread_rwlock_unlock))
-weak_extern (BP_SYM (__pthread_key_create))
-weak_extern (BP_SYM (__pthread_setspecific))
-weak_extern (BP_SYM (__pthread_getspecific))
-weak_extern (BP_SYM (__pthread_once))
-weak_extern (__pthread_atfork)
-weak_extern (BP_SYM (_pthread_cleanup_push))
-weak_extern (BP_SYM (_pthread_cleanup_pop))
-weak_extern (BP_SYM (_pthread_cleanup_push_defer))
-weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
-# else
-# pragma weak __pthread_mutex_init
-# pragma weak __pthread_mutex_destroy
-# pragma weak __pthread_mutex_lock
-# pragma weak __pthread_mutex_trylock
-# pragma weak __pthread_mutex_unlock
-# pragma weak __pthread_mutexattr_init
-# pragma weak __pthread_mutexattr_destroy
-# pragma weak __pthread_mutexattr_settype
-# pragma weak __pthread_rwlock_destroy
-# pragma weak __pthread_rwlock_rdlock
-# pragma weak __pthread_rwlock_tryrdlock
-# pragma weak __pthread_rwlock_wrlock
-# pragma weak __pthread_rwlock_trywrlock
-# pragma weak __pthread_rwlock_unlock
-# pragma weak __pthread_key_create
-# pragma weak __pthread_setspecific
-# pragma weak __pthread_getspecific
-# pragma weak __pthread_once
-# pragma weak __pthread_atfork
-# pragma weak _pthread_cleanup_push_defer
-# pragma weak _pthread_cleanup_pop_restore
-# pragma weak _pthread_cleanup_push
-# pragma weak _pthread_cleanup_pop
-# endif
-#endif
-
/* We need portable names for some functions. E.g., when they are
used as argument to __libc_cleanup_region_start. */
#define __libc_mutex_unlock __pthread_mutex_unlock
diff --git a/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h b/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
deleted file mode 100644
index 119953d..0000000
--- a/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _PTHREAD_FUNCTIONS_H
-#define _PTHREAD_FUNCTIONS_H 1
-
-#include <pthread.h>
-#if 0
-#include <setjmp.h>
-#include <linuxthreads/internals.h>
-
-struct fork_block;
-#endif
-
-/* Data type shared with libc. The libc uses it to pass on calls to
- the thread functions. Wine pokes directly into this structure,
- so if possible avoid breaking it and append new hooks to the end. */
-struct pthread_functions
-{
-#if 0
- pid_t (*ptr_pthread_fork) (struct fork_block *);
-#endif
- int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
- int (*ptr_pthread_attr_init) (pthread_attr_t *);
- int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *,
- struct sched_param *);
- int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
- const struct sched_param *);
- int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
- int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
- int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
- int (*ptr_pthread_cond_broadcast) (pthread_cond_t *);
- int (*ptr_pthread_cond_destroy) (pthread_cond_t *);
- int (*ptr_pthread_cond_init) (pthread_cond_t *,
- const pthread_condattr_t *);
- int (*ptr_pthread_cond_signal) (pthread_cond_t *);
- int (*ptr_pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
- int (*ptr_pthread_equal) (pthread_t, pthread_t);
- void (*ptr___pthread_exit) (void *);
- int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
- int (*ptr_pthread_setschedparam) (pthread_t, int,
- const struct sched_param *);
- int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
- const pthread_mutexattr_t *);
- int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_trylock) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
- pthread_t (*ptr_pthread_self) (void);
- int (*ptr_pthread_setcancelstate) (int, int *);
- int (*ptr_pthread_setcanceltype) (int, int *);
-#if 0
- void (*ptr_pthread_do_exit) (void *retval, char *currentframe);
- void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
- char *targetframe);
- pthread_descr (*ptr_pthread_thread_self) (void);
-#endif
-#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
- int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
- void * (*ptr_pthread_internal_tsd_get) (int key);
- void ** __attribute__ ((__const__))
- (*ptr_pthread_internal_tsd_address) (int key);
-#endif
-#if 0
- int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
- struct sigaction *oact);
- int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
- int (*ptr_pthread_raise) (int sig);
-#endif
- int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
- const struct timespec *);
-#if 0
- void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
- void (*routine)(void *), void * arg);
-#endif
- void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer * buffer,
- void (*routine)(void *), void * arg);
-#if 0
- void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
- int execute);
-#endif
- void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer * buffer,
- int execute);
-};
-
-/* Variable in libc.so. */
-extern struct pthread_functions __libc_pthread_functions attribute_hidden;
-
-extern int * __libc_pthread_init (const struct pthread_functions *functions);
-
-#endif /* pthread-functions.h */
diff --git a/libpthread/nptl/Makefile.in b/libpthread/nptl/Makefile.in
index f0d5ad6..0fc83e2 100644
--- a/libpthread/nptl/Makefile.in
+++ b/libpthread/nptl/Makefile.in
@@ -12,14 +12,13 @@ libpthread_OUT = $(top_builddir)libpthread/nptl
include $(libpthread_DIR)/sysdeps/Makefile.in
-libc-shared-routines-y = forward.c libc-cancellation.c
+libc-shared-routines-y = libc-cancellation.c
libc-static-routines-y = alloca_cutoff.c libc-cancellation.c
libpthread-shared-only-routines-y = version.c
libpthread-static-only-routines-y = pthread_atfork.c
libpthread-routines- += $(notdir $(wildcard $(libpthread_DIR)/gen_*.c)) # dummy generated files
libpthread-routines- += allocatestack.c # dummy included by pthread_create.c
libpthread-routines- += pthread_mutex_getprioceiling.c pthread_mutex_setprioceiling.c # XXX: delete those or use them!
-libpthread-routines-$(UCLIBC_HAS_RESOLVER_SUPPORT) += res.c
libpthread-routines-$(UCLIBC_SUSV4_LEGACY) += pthread_getconcurrency.c \
pthread_setconcurrency.c
libpthread_CSRC = $(filter-out $(libpthread-routines-) \
@@ -42,6 +41,8 @@ else
libpthread-a-y := $(libpthread-static-y)
endif
+libpthread-a-y += $(top_builddir)lib/libpthread_nonshared.a
+
libc-shared-routines-y := $(filter-out $(notdir $(libpthread_libc_OBJS:.o=.c)), $(libc-shared-routines-y))
libc-static-routines-y := $(filter-out $(notdir $(libpthread_libc_OBJS:.o=.c)), $(libc-static-routines-y))
libc-shared-routines-y := $(addprefix $(libpthread_OUT)/,$(libc-shared-routines-y:.c=.oS))
@@ -63,37 +64,6 @@ librt-a-y += $(librt_OBJS)
endif
librt-so-y += $(librt_OBJS:.o=.oS) $(librt-pt-shared-only-routines-y:.o=.oS)
-ifeq ($(UCLIBC_CTOR_DTOR),y)
-START_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crti.o
-END_FILE-libpthread.so := $(top_builddir)libpthread/nptl/sysdeps/pthread/pt-crtn.o
-LDFLAGS-libpthread.so += -nostartfiles
-$(top_builddir)lib/libpthread.so: | $(START_FILE-libpthread.so) $(END_FILE-libpthread.so)
-endif
-
-libpthread_FULL_NAME := libpthread-$(VERSION).so
-lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
-lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-
-$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend) $(libdl.depend) $(top_builddir)lib/libpthread_nonshared.a
- $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libpthread_FULL_NAME),0)
- $(Q)cat $(top_srcdir)extra/scripts/format.lds > $@.tmp
- $(Q)echo "GROUP ( $(notdir $(a)).$(ABI_VERSION) libpthread_nonshared.a )" >> $@.tmp
- $(Q)mv $@.tmp $@
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(libpthread_OUT)/libpthread_so.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(libpthread_OUT)/libpthread_so.a: $(libpthread-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)lib/libpthread.a: $(libpthread-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libpthread_OUT)/pthread-errnos.h: $(top_srcdir)extra/scripts/gen-as-const.awk
$(libpthread_OUT)/pthread-errnos.h: $(libpthread_DIR)/pthread-errnos.sym
@$(disp_gen)
@@ -132,17 +102,6 @@ HEADERCLEAN_libpthread/nptl:
CLEAN_libpthread/nptl:
$(do_rm) $(addprefix $(libpthread_OUT)/*., o os oS a)
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-LDFLAGS-libpthread.so += $(LDFLAGS_NOSTRIP) -Wl,-z,defs
-else
-LDFLAGS-libpthread.so += $(LDFLAGS)
-endif
-
-LDFLAGS-libpthread.so += $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so $(top_builddir)lib/libdl-$(VERSION).so \
- -Wl,-z,nodelete,-z,initfirst,-init=$(SYMBOL_PREFIX)__pthread_initialize_minimal_internal
-
-LIBS-libpthread.so := $(LIBS)
-
CFLAGS-dir_nptl := -DNOT_IN_libc -DIS_IN_libpthread
CFLAGS-libpthread/nptl := $(CFLAGS-dir_nptl) $(SSP_ALL_CFLAGS)
@@ -171,10 +130,6 @@ CFLAGS-libc-cancellation.c = -fasynchronous-unwind-tables
# function.
CFLAGS-pthread_exit.c = -fexceptions
-# Among others, __pthread_unwind is forwarded. This function must handle
-# exceptions.
-CFLAGS-forward.c = -fexceptions
-
# The following are cancellation points. Some of the functions can
# block and therefore temporarily enable asynchronous cancellation.
# Those must be compiled asynchronous unwind tables.
@@ -235,8 +190,6 @@ CFLAGS-waitpid.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-write.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-writev.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pt-system.c = -fexceptions -I$(top_srcdir)libc/stdlib
-
#
# The rest of this file is uClibc specific.
#
@@ -249,6 +202,5 @@ CFLAGS-pthread_barrierattr_setpshared.c = -D_GNU_SOURCE
CFLAGS-sem_open.c = -D_GNU_SOURCE
CFLAGS-OMIT-alloca_cutoff.c = $(CFLAGS-dir_nptl)
-CFLAGS-OMIT-forward.c = $(CFLAGS-dir_nptl)
CFLAGS-OMIT-libc-lowlevelock.c = $(CFLAGS-dir_nptl)
CFLAGS-OMIT-libc-cancellation.c = $(CFLAGS-dir_nptl)
diff --git a/libpthread/nptl/forward.c b/libpthread/nptl/forward.c
deleted file mode 100644
index 076d437..0000000
--- a/libpthread/nptl/forward.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <dlfcn.h>
-#include <pthreadP.h>
-#include <signal.h>
-#include <stdlib.h>
-
-#include <atomic.h>
-#include <sysdep.h>
-
-
-/* Pointers to the libc functions. */
-struct pthread_functions __libc_pthread_functions attribute_hidden;
-int __libc_pthread_functions_init attribute_hidden;
-
-
-#define FORWARD2(name, rettype, decl, params, defaction) \
-rettype \
-name decl \
-{ \
- if (!__libc_pthread_functions_init) { \
- defaction; \
- } else { \
- return PTHFCT_CALL (ptr_##name, params); \
- } \
-}
-
-#define FORWARD(name, decl, params, defretval) \
- FORWARD2 (name, int, decl, params, return defretval)
-
-
-FORWARD (pthread_attr_destroy, (pthread_attr_t *attr), (attr), 0)
-
-FORWARD (__pthread_attr_init_2_1, (pthread_attr_t *attr), (attr), 0)
-weak_alias(__pthread_attr_init_2_1, pthread_attr_init)
-
-FORWARD (pthread_attr_getdetachstate,
- (const pthread_attr_t *attr, int *detachstate), (attr, detachstate),
- 0)
-FORWARD (pthread_attr_setdetachstate, (pthread_attr_t *attr, int detachstate),
- (attr, detachstate), 0)
-
-FORWARD (pthread_attr_getinheritsched,
- (const pthread_attr_t *attr, int *inherit), (attr, inherit), 0)
-FORWARD (pthread_attr_setinheritsched, (pthread_attr_t *attr, int inherit),
- (attr, inherit), 0)
-
-FORWARD (pthread_attr_getschedparam,
- (const pthread_attr_t *attr, struct sched_param *param),
- (attr, param), 0)
-FORWARD (pthread_attr_setschedparam,
- (pthread_attr_t *attr, const struct sched_param *param),
- (attr, param), 0)
-
-FORWARD (pthread_attr_getschedpolicy,
- (const pthread_attr_t *attr, int *policy), (attr, policy), 0)
-FORWARD (pthread_attr_setschedpolicy, (pthread_attr_t *attr, int policy),
- (attr, policy), 0)
-
-FORWARD (pthread_attr_getscope,
- (const pthread_attr_t *attr, int *scope), (attr, scope), 0)
-FORWARD (pthread_attr_setscope, (pthread_attr_t *attr, int scope),
- (attr, scope), 0)
-
-
-FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0)
-FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
-
-FORWARD (__pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
-weak_alias(__pthread_cond_broadcast, pthread_cond_broadcast)
-
-FORWARD (__pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
-weak_alias(__pthread_cond_destroy, pthread_cond_destroy)
-
-FORWARD (__pthread_cond_init,
- (pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
- (cond, cond_attr), 0)
-weak_alias(__pthread_cond_init, pthread_cond_init)
-
-FORWARD (__pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
-weak_alias(__pthread_cond_signal, pthread_cond_signal)
-
-FORWARD (__pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
- (cond, mutex), 0)
-weak_alias(__pthread_cond_wait, pthread_cond_wait)
-
-FORWARD (__pthread_cond_timedwait,
- (pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime), (cond, mutex, abstime), 0)
-weak_alias(__pthread_cond_timedwait, pthread_cond_timedwait)
-
-
-FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
- (thread1, thread2), 1)
-
-
-/* Use an alias to avoid warning, as pthread_exit is declared noreturn. */
-FORWARD2 (__pthread_exit, void, (void *retval), (retval), exit (EXIT_SUCCESS))
-strong_alias (__pthread_exit, pthread_exit);
-
-
-FORWARD (pthread_getschedparam,
- (pthread_t target_thread, int *policy, struct sched_param *param),
- (target_thread, policy, param), 0)
-FORWARD (pthread_setschedparam,
- (pthread_t target_thread, int policy,
- const struct sched_param *param), (target_thread, policy, param), 0)
-
-
-FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_init,
- (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
- (mutex, mutexattr), 0)
-
-FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
-weak_alias (pthread_mutex_lock, __pthread_mutex_lock)
-
-FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
-weak_alias (pthread_mutex_unlock, __pthread_mutex_unlock)
-
-FORWARD2 (pthread_self, pthread_t, (void), (), return 0)
-
-
-FORWARD (pthread_setcancelstate, (int state, int *oldstate), (state, oldstate),
- 0)
-
-FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-
-#define return /* value is void */
-FORWARD2(_pthread_cleanup_push_defer,
- void, (struct _pthread_cleanup_buffer *buffer, void (*routine)(void *), void *arg),
- (buffer, routine, arg),
- { buffer->__routine = routine; buffer->__arg = arg; });
-
-FORWARD2(_pthread_cleanup_pop_restore,
- void, (struct _pthread_cleanup_buffer *buffer, int execute),
- (buffer, execute),
- if (execute) { buffer->__routine(buffer->__arg); });
-
-FORWARD2(__pthread_unwind,
- void attribute_hidden __attribute ((noreturn)) __cleanup_fct_attribute,
- (__pthread_unwind_buf_t *buf), (buf), {
- /* We cannot call abort() here. */
- INTERNAL_SYSCALL_DECL (err);
- INTERNAL_SYSCALL (kill, err, 1, SIGKILL);
-#if __GNUC_PREREQ(4, 5)
- __builtin_unreachable();
-#else
- while(1);
-#endif
- })
-#undef return
diff --git a/libpthread/nptl/init.c b/libpthread/nptl/init.c
index eb84d6e..0e1c60c 100644
--- a/libpthread/nptl/init.c
+++ b/libpthread/nptl/init.c
@@ -60,77 +60,6 @@ int __have_futex_clock_realtime;
/* Version of the library, used in libthread_db to detect mismatches. */
static const char nptl_version[] __attribute_used__ = VERSION;
-#ifdef SHARED
-static void nptl_freeres (void);
-
-static const struct pthread_functions pthread_functions =
- {
- .ptr_pthread_attr_destroy = __pthread_attr_destroy,
- .ptr___pthread_attr_init_2_1 = __pthread_attr_init_2_1,
- .ptr_pthread_attr_getdetachstate = __pthread_attr_getdetachstate,
- .ptr_pthread_attr_setdetachstate = __pthread_attr_setdetachstate,
- .ptr_pthread_attr_getinheritsched = __pthread_attr_getinheritsched,
- .ptr_pthread_attr_setinheritsched = __pthread_attr_setinheritsched,
- .ptr_pthread_attr_getschedparam = __pthread_attr_getschedparam,
- .ptr_pthread_attr_setschedparam = __pthread_attr_setschedparam,
- .ptr_pthread_attr_getschedpolicy = __pthread_attr_getschedpolicy,
- .ptr_pthread_attr_setschedpolicy = __pthread_attr_setschedpolicy,
- .ptr_pthread_attr_getscope = __pthread_attr_getscope,
- .ptr_pthread_attr_setscope = __pthread_attr_setscope,
- .ptr_pthread_condattr_destroy = __pthread_condattr_destroy,
- .ptr_pthread_condattr_init = __pthread_condattr_init,
- .ptr___pthread_cond_broadcast = __pthread_cond_broadcast,
- .ptr___pthread_cond_destroy = __pthread_cond_destroy,
- .ptr___pthread_cond_init = __pthread_cond_init,
- .ptr___pthread_cond_signal = __pthread_cond_signal,
- .ptr___pthread_cond_wait = __pthread_cond_wait,
- .ptr___pthread_cond_timedwait = __pthread_cond_timedwait,
- .ptr_pthread_equal = __pthread_equal,
- .ptr___pthread_exit = __pthread_exit,
- .ptr_pthread_getschedparam = __pthread_getschedparam,
- .ptr_pthread_setschedparam = __pthread_setschedparam,
- .ptr_pthread_mutex_destroy = INTUSE(__pthread_mutex_destroy),
- .ptr_pthread_mutex_init = INTUSE(__pthread_mutex_init),
- .ptr_pthread_mutex_lock = INTUSE(__pthread_mutex_lock),
- .ptr_pthread_mutex_unlock = INTUSE(__pthread_mutex_unlock),
- .ptr_pthread_self = __pthread_self,
- .ptr_pthread_setcancelstate = __pthread_setcancelstate,
- .ptr_pthread_setcanceltype = __pthread_setcanceltype,
- .ptr___pthread_cleanup_upto = __pthread_cleanup_upto,
- .ptr___pthread_once = __pthread_once_internal,
- .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock_internal,
- .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock_internal,
- .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock_internal,
- .ptr___pthread_key_create = __pthread_key_create_internal,
- .ptr___pthread_getspecific = __pthread_getspecific_internal,
- .ptr___pthread_setspecific = __pthread_setspecific_internal,
- .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
- .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
- .ptr_nthreads = &__nptl_nthreads,
- .ptr___pthread_unwind = &__pthread_unwind,
- .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
- .ptr__nptl_setxid = __nptl_setxid,
- /* For now only the stack cache needs to be freed. */
- .ptr_freeres = nptl_freeres
- };
-# define ptr_pthread_functions &pthread_functions
-#else
-# define ptr_pthread_functions NULL
-#endif
-
-
-#ifdef SHARED
-/* This function is called indirectly from the freeres code in libc. */
-static void
-__libc_freeres_fn_section
-nptl_freeres (void)
-{
- __unwind_freeres ();
- __free_stacks (0);
-}
-#endif
-
-
/* For asynchronous cancellation we use a signal. This is the handler. */
static void
sigcancel_handler (int sig, siginfo_t *si, void *ctx)
@@ -410,8 +339,7 @@ __pthread_initialize_minimal_internal (void)
#ifndef TLS_MULTIPLE_THREADS_IN_TCB
__libc_multiple_threads_ptr =
#endif
- __libc_pthread_init (&__fork_generation, __reclaim_stacks,
- ptr_pthread_functions);
+ __libc_pthread_init (&__fork_generation, __reclaim_stacks);
/* Determine whether the machine is SMP or not. */
__is_smp = is_smp_system ();
diff --git a/libpthread/nptl/pt-system.c b/libpthread/nptl/pt-system.c
deleted file mode 100644
index 31567f0..0000000
--- a/libpthread/nptl/pt-system.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <sysdep.h>
-#include "pthreadP.h"
-
-extern __typeof(system) __libc_system;
-#include <system.c>
-
-
-int
-system (const char *line)
-{
- return __libc_system (line);
-}
-
-/* __libc_system in libc.so handles cancellation. */
-LIBC_CANCEL_HANDLED ();
diff --git a/libpthread/nptl/pthreadP.h b/libpthread/nptl/pthreadP.h
index f46dd40..a2aa5a0 100644
--- a/libpthread/nptl/pthreadP.h
+++ b/libpthread/nptl/pthreadP.h
@@ -28,7 +28,6 @@
#include <lowlevellock.h>
#include <bits/stackinfo.h>
#include <internaltypes.h>
-#include <pthread-functions.h>
#include <atomic.h>
#include <bits/kernel-features.h>
@@ -377,12 +376,10 @@ hidden_proto (__nptl_death_event)
/* Register the generation counter in the libpthread with the libc. */
#ifdef TLS_MULTIPLE_THREADS_IN_TCB
extern void __libc_pthread_init (unsigned long int *ptr,
- void (*reclaim) (void),
- const struct pthread_functions *functions);
+ void (*reclaim) (void));
#else
extern int *__libc_pthread_init (unsigned long int *ptr,
- void (*reclaim) (void),
- const struct pthread_functions *functions);
+ void (*reclaim) (void));
/* Variable set to a nonzero value if more than one thread runs or ran. */
extern int __pthread_multiple_threads attribute_hidden;
diff --git a/libpthread/nptl/pthread_setgid.c b/libpthread/nptl/pthread_setgid.c
deleted file mode 100644
index b06bffb..0000000
--- a/libpthread/nptl/pthread_setgid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setgid pthread_setgid_np
-#include <setgid.c>
diff --git a/libpthread/nptl/pthread_setuid.c b/libpthread/nptl/pthread_setuid.c
deleted file mode 100644
index ff949c8..0000000
--- a/libpthread/nptl/pthread_setuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setuid pthread_setuid_np
-#include <setuid.c>
diff --git a/libpthread/nptl/res.c b/libpthread/nptl/res.c
deleted file mode 100644
index 3ce84ea..0000000
--- a/libpthread/nptl/res.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <features.h>
-#include <tls.h>
-#include <resolv.h>
-
-struct __res_state *
-__res_state (void)
-{
- return __resp;
-}
diff --git a/libpthread/nptl/sysdeps/arm/Makefile.arch b/libpthread/nptl/sysdeps/arm/Makefile.arch
index 62a2822..c190b9a 100644
--- a/libpthread/nptl/sysdeps/arm/Makefile.arch
+++ b/libpthread/nptl/sysdeps/arm/Makefile.arch
@@ -6,5 +6,4 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-librt_arch_SSRC = aeabi_read_tp.S thumb_atomics.S
libc_arch_a_CSRC = libc-tls.c
diff --git a/libpthread/nptl/sysdeps/arm/aeabi_read_tp.S b/libpthread/nptl/sysdeps/arm/aeabi_read_tp.S
deleted file mode 100644
index af640d6..0000000
--- a/libpthread/nptl/sysdeps/arm/aeabi_read_tp.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../ldso/ldso/arm/aeabi_read_tp.S>
diff --git a/libpthread/nptl/sysdeps/arm/thumb_atomics.S b/libpthread/nptl/sysdeps/arm/thumb_atomics.S
deleted file mode 100644
index aaa7a3d..0000000
--- a/libpthread/nptl/sysdeps/arm/thumb_atomics.S
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../ldso/ldso/arm/thumb_atomics.S>
diff --git a/libpthread/nptl/sysdeps/metag/metag_load_tp.S b/libpthread/nptl/sysdeps/metag/metag_load_tp.S
deleted file mode 100644
index f17f7de..0000000
--- a/libpthread/nptl/sysdeps/metag/metag_load_tp.S
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright (C) 2013 Imagination Technologies Ltd.
- *
- * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
-#include <../../../../ldso/ldso/metag/metag_load_tp.S>
diff --git a/libpthread/nptl/sysdeps/mips/nptl-sysdep.S b/libpthread/nptl/sysdeps/mips/nptl-sysdep.S
deleted file mode 100644
index 7a4a8d3..0000000
--- a/libpthread/nptl/sysdeps/mips/nptl-sysdep.S
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Pull in __syscall_error. */
-#include <syscall_error.S>
diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in
index 9d99f31..a501b64 100644
--- a/libpthread/nptl/sysdeps/pthread/Makefile.in
+++ b/libpthread/nptl/sysdeps/pthread/Makefile.in
@@ -43,62 +43,11 @@ CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE
CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables
CFLAGS-OMIT-librt-cancellation.c = -DIS_IN_libpthread
-CFLAGS-OMIT-rt-unwind-resume.c = -DIS_IN_libpthread
CFLAGS-librt-cancellation.c = -DIS_IN_librt \
-fexceptions -fasynchronous-unwind-tables
-CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
- -fexceptions -fasynchronous-unwind-tables
-
libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, unwind-forcedunwind)
librt-pt-routines-y = librt-cancellation.c
-librt-pt-shared-only-routines-y = rt-unwind-resume.c
-
-ifeq ($(UCLIBC_CTOR_DTOR),y)
-CFLAGS-OMIT-pt-initfini.c = $(CFLAGS-y-libpthread/nptl/sysdeps/pthread)
-CFLAGS-pt-initfini.c = -S -g0 $(PICFLAG) -fno-inline-functions \
- $(call check_gcc,-fno-unit-at-a-time,) \
- $(SSP_DISABLE_FLAGS) \
- -finhibit-size-directive \
- -fno-asynchronous-unwind-tables -fno-unwind-tables \
- $(patsubst -f%,-fno-%,$(call check_gcc,-fexceptions,))
-
-#ASFLAGS += $(PICFLAG) -I$(top_srcdir)include -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
-ifneq ($(wildcard $(libpthread_pthread_DIR)/../unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c),)
-PTHREAD_INITFINI := $(libpthread_pthread_DIR)/../unix/sysv/linux/$(TARGET_ARCH)/pt-initfini.c
-else
-PTHREAD_INITFINI := $(libpthread_pthread_DIR)/pt-initfini.c
-endif
-
-ASFLAGS-pt-crti.S = $(PICFLAG)
-ASFLAGS-pt-crtn.S = $(PICFLAG)
-
-$(libpthread_pthread_OUT)/pt-crti.o: $(libpthread_pthread_OUT)/pt-crti.S
- $(compile.S)
-
-$(libpthread_pthread_OUT)/pt-crtn.o: $(libpthread_pthread_OUT)/pt-crtn.S
- $(compile.S)
-
-$(libpthread_pthread_OUT)/pt-initfini.s: $(PTHREAD_INITFINI) | $(headers_dep)
- $(compile.c)
-$(libpthread_pthread_OUT)/defs.h: $(PTHREAD_INITFINI)
- $(do_sed) -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
- $(AWK) -f $(top_srcdir)extra/scripts/defs.awk > $@.tmp
- $(Q)mv $@.tmp $@
-
-$(libpthread_pthread_OUT)/pt-crti.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
- $(do_sed) -n -e '/[ ]*\.file/d' \
- -e '1,/@HEADER_ENDS/p' \
- -e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
- -e '/@TRAILER_BEGINS/,$$p' $< > $@.tmp
- $(Q)mv $@.tmp $@
-$(libpthread_pthread_OUT)/pt-crtn.S: $(libpthread_pthread_OUT)/pt-initfini.s $(libpthread_pthread_OUT)/defs.h
- $(do_sed) -n -e '/[ ]*\.file/d' \
- -e '1,/@HEADER_ENDS/p' \
- -e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \
- -e '/@TRAILER_BEGINS/,$$p' $< > $@.tmp
- $(Q)mv $@.tmp $@
-endif
objclean-y += CLEAN_libpthread/nptl/sysdeps/pthread
diff --git a/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h b/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h
index 633021a..a4c5b62 100644
--- a/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h
+++ b/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h
@@ -34,7 +34,6 @@
#ifdef _LIBC
# include <lowlevellock.h>
# include <tls.h>
-# include <pthread-functions.h>
#endif
/* Mutex type. */
@@ -152,20 +151,11 @@ typedef pthread_key_t __libc_key_t;
(FUNC != NULL ? FUNC ARGS : ELSE)
#endif
-/* Call thread functions through the function pointer table. */
-#if defined SHARED && !defined NOT_IN_libc
-# define PTFAVAIL(NAME) __libc_pthread_functions_init
-# define __libc_ptf_call(FUNC, ARGS, ELSE) \
- (__libc_pthread_functions_init ? PTHFCT_CALL (ptr_##FUNC, ARGS) : ELSE)
-# define __libc_ptf_call_always(FUNC, ARGS) \
- PTHFCT_CALL (ptr_##FUNC, ARGS)
-#else
# define PTFAVAIL(NAME) (NAME != NULL)
# define __libc_ptf_call(FUNC, ARGS, ELSE) \
__libc_maybe_call (FUNC, ARGS, ELSE)
# define __libc_ptf_call_always(FUNC, ARGS) \
FUNC ARGS
-#endif
/* Initialize the named lock variable, leaving it in a consistent, unlocked
diff --git a/libpthread/nptl/sysdeps/pthread/pt-initfini.c b/libpthread/nptl/sysdeps/pthread/pt-initfini.c
deleted file mode 100644
index d9881c7..0000000
--- a/libpthread/nptl/sysdeps/pthread/pt-initfini.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Special .init and .fini section support. Linuxthread version.
- Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The Library General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- The GNU C Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-/* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-
- * crti.s puts a function prologue at the beginning of the
- .init and .fini sections and defines global symbols for
- those addresses, so they can be called as functions.
-
- * crtn.s puts the corresponding function epilogues
- in the .init and .fini sections. */
-
-#include <stdlib.h>
-
-/* We use embedded asm for .section unconditionally, as this makes it
- easier to insert the necessary directives into crtn.S. */
-#define SECTION(x) __asm__ (".section " x )
-
-/* Embed an #include to pull in the alignment and .end directives. */
-__asm__ ("\n#include \"defs.h\"");
-__asm__ ("\n#if defined __i686 && defined __ASSEMBLER__");
-__asm__ ("\n#undef __i686");
-__asm__ ("\n#define __i686 __i686");
-__asm__ ("\n#endif");
-
-/* The initial common code ends here. */
-__asm__ ("\n/*@HEADER_ENDS*/");
-
-/* To determine whether we need .end and .align: */
-__asm__ ("\n/*@TESTS_BEGIN*/");
-extern void dummy (void (*foo) (void));
-void
-dummy (void (*foo) (void))
-{
- if (foo)
- (*foo) ();
-}
-__asm__ ("\n/*@TESTS_END*/");
-
-/* The beginning of _init: */
-__asm__ ("\n/*@_init_PROLOG_BEGINS*/");
-
-static void
-call_initialize_minimal (void)
-{
- extern void __pthread_initialize_minimal_internal (void)
- __attribute ((visibility ("hidden")));
-
- __pthread_initialize_minimal_internal ();
-}
-
-SECTION (".init");
-extern void __attribute__ ((section (".init"))) _init (void);
-void
-_init (void)
-{
- /* The very first thing we must do is to set up the registers. */
- call_initialize_minimal ();
-
- __asm__ ("ALIGN");
- __asm__("END_INIT");
- /* Now the epilog. */
- __asm__ ("\n/*@_init_PROLOG_ENDS*/");
- __asm__ ("\n/*@_init_EPILOG_BEGINS*/");
- SECTION(".init");
-}
-__asm__ ("END_INIT");
-
-/* End of the _init epilog, beginning of the _fini prolog. */
-__asm__ ("\n/*@_init_EPILOG_ENDS*/");
-__asm__ ("\n/*@_fini_PROLOG_BEGINS*/");
-
-SECTION (".fini");
-extern void __attribute__ ((section (".fini"))) _fini (void);
-void
-_fini (void)
-{
-
- /* End of the _fini prolog. */
- __asm__ ("ALIGN");
- __asm__ ("END_FINI");
- __asm__ ("\n/*@_fini_PROLOG_ENDS*/");
-
- {
- /* Let GCC know that _fini is not a leaf function by having a dummy
- function call here. We arrange for this call to be omitted from
- either crt file. */
- extern void i_am_not_a_leaf (void);
- i_am_not_a_leaf ();
- }
-
- /* Beginning of the _fini epilog. */
- __asm__ ("\n/*@_fini_EPILOG_BEGINS*/");
- SECTION (".fini");
-}
-__asm__ ("END_FINI");
-
-/* End of the _fini epilog. Any further generated assembly (e.g. .ident)
- is shared between both crt files. */
-__asm__ ("\n/*@_fini_EPILOG_ENDS*/");
-__asm__ ("\n/*@TRAILER_BEGINS*/");
-
-/* End of file. */
diff --git a/libpthread/nptl/sysdeps/pthread/pt-sigaction.c b/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
index 43a2da2..d8fa4c9 100644
--- a/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
+++ b/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
@@ -22,9 +22,10 @@
/* We use the libc implementation but we tell it to not allow
SIGCANCEL or SIGTIMER to be handled. */
+libc_hidden_proto(sigaction)
extern __typeof(sigaction) __libc_sigaction;
int
-__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
{
if (unlikely (sig == SIGCANCEL || sig == SIGSETXID))
{
@@ -34,6 +35,4 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
return __libc_sigaction (sig, act, oact);
}
-libc_hidden_proto(sigaction)
-weak_alias (__sigaction, sigaction)
-libc_hidden_weak(sigaction)
+libc_hidden_def(sigaction)
diff --git a/libpthread/nptl/sysdeps/pthread/pthread-functions.h b/libpthread/nptl/sysdeps/pthread/pthread-functions.h
deleted file mode 100644
index 9c78180..0000000
--- a/libpthread/nptl/sysdeps/pthread/pthread-functions.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _PTHREAD_FUNCTIONS_H
-#define _PTHREAD_FUNCTIONS_H 1
-
-#include <pthread.h>
-#include <setjmp.h>
-#include <internaltypes.h>
-#include <sysdep.h>
-
-struct xid_command;
-
-/* Data type shared with libc. The libc uses it to pass on calls to
- the thread functions. */
-struct pthread_functions
-{
- int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
- int (*ptr___pthread_attr_init_2_0) (pthread_attr_t *);
- int (*ptr___pthread_attr_init_2_1) (pthread_attr_t *);
- int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *,
- struct sched_param *);
- int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
- const struct sched_param *);
- int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int);
- int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
- int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
- int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
- int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
- int (*ptr___pthread_cond_broadcast) (pthread_cond_t *);
- int (*ptr___pthread_cond_destroy) (pthread_cond_t *);
- int (*ptr___pthread_cond_init) (pthread_cond_t *,
- const pthread_condattr_t *);
- int (*ptr___pthread_cond_signal) (pthread_cond_t *);
- int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
- int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
- const struct timespec *);
- int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_2_0_t *);
- int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_2_0_t *);
- int (*ptr___pthread_cond_init_2_0) (pthread_cond_2_0_t *,
- const pthread_condattr_t *);
- int (*ptr___pthread_cond_signal_2_0) (pthread_cond_2_0_t *);
- int (*ptr___pthread_cond_wait_2_0) (pthread_cond_2_0_t *, pthread_mutex_t *);
- int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
- pthread_mutex_t *,
- const struct timespec *);
- int (*ptr_pthread_equal) (pthread_t, pthread_t);
- void (*ptr___pthread_exit) (void *);
- int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
- int (*ptr_pthread_setschedparam) (pthread_t, int,
- const struct sched_param *);
- int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
- const pthread_mutexattr_t *);
- int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
- int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
- pthread_t (*ptr_pthread_self) (void);
- int (*ptr_pthread_setcancelstate) (int, int *);
- int (*ptr_pthread_setcanceltype) (int, int *);
- void (*ptr___pthread_cleanup_upto) (__jmp_buf, char *);
- int (*ptr___pthread_once) (pthread_once_t *, void (*) (void));
- int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
- int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
- int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
- int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *));
- void *(*ptr___pthread_getspecific) (pthread_key_t);
- int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
- void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer *,
- void (*) (void *), void *);
- void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *,
- int);
-#define HAVE_PTR_NTHREADS
- unsigned int *ptr_nthreads;
- void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
- __attribute ((noreturn)) __cleanup_fct_attribute;
- void (*ptr__nptl_deallocate_tsd) (void);
- int (*ptr__nptl_setxid) (struct xid_command *);
- void (*ptr_freeres) (void);
-};
-
-/* Variable in libc.so. */
-extern struct pthread_functions __libc_pthread_functions attribute_hidden;
-extern int __libc_pthread_functions_init attribute_hidden;
-
-# define PTHFCT_CALL(fct, params) \
- __libc_pthread_functions.fct params
-
-#endif /* pthread-functions.h */
diff --git a/libpthread/nptl/sysdeps/pthread/setxid.h b/libpthread/nptl/sysdeps/pthread/setxid.h
index 9331649..c2763cd 100644
--- a/libpthread/nptl/sysdeps/pthread/setxid.h
+++ b/libpthread/nptl/sysdeps/pthread/setxid.h
@@ -32,15 +32,11 @@
# define INLINE_SETXID_SYSCALL(name, nr, args...) \
({ \
int __result; \
- if (__builtin_expect (__libc_pthread_functions_init, 0)) \
- { \
struct xid_command __cmd; \
__cmd.syscall_no = __NR_##name; \
__SETXID_##nr (__cmd, args); \
- __result = PTHFCT_CALL (ptr__nptl_setxid, (&__cmd)); \
+ __result = PTHFCT_CALL (__nptl_setxid, (&__cmd)); \
} \
- else \
- __result = INLINE_SYSCALL (name, nr, args); \
__result; \
})
#else
diff --git a/libpthread/nptl/sysdeps/pthread/uClibc-glue.h b/libpthread/nptl/sysdeps/pthread/uClibc-glue.h
index b957ded..46f8f87 100644
--- a/libpthread/nptl/sysdeps/pthread/uClibc-glue.h
+++ b/libpthread/nptl/sysdeps/pthread/uClibc-glue.h
@@ -26,7 +26,6 @@
#define __read read
#define __close close
#define __on_exit on_exit
-#define __libc_current_sigrtmin_private __libc_current_sigrtmin
#define __clone clone
extern void *__libc_stack_end;
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
index 57481fd..649d188 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
@@ -62,7 +62,6 @@ libpthread_linux_CSRC += pthread_attr_getaffinity.c pthread_attr_setaffinity.c \
pthread_getcpuclockid.c pthread_kill.c \
pthread_mutex_cond_lock.c pthread_yield.c \
sem_post.c sem_timedwait.c sem_trywait.c sem_wait.c \
- pt-tempname.c \
pthread_sigqueue.c \
lowlevellock.c lowlevelrobustlock.c
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch
index 468e646..fa5d530 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch
@@ -6,8 +6,7 @@
#
libpthread_linux_arch_SSRC =
-libpthread_linux_arch_CSRC = pthread_once.c \
- pt-__syscall_rt_sigaction.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_once.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_error.c
deleted file mode 100644
index 8002e65..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_error.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
- *
- * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
-#include <../../../../../../../libc/sysdeps/linux/arc/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_rt_sigaction.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_rt_sigaction.c
deleted file mode 100644
index 967dad1..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-__syscall_rt_sigaction.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
- *
- * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
-/*
- * ARC syscall ABI only has __NR_rt_sigaction, thus vanilla sigaction does
- * some SA_RESTORER tricks before calling __syscall_rt_sigaction.
- * However including that file here causes a redefinition of __libc_sigaction
- * in static links involving pthreads
- */
-//#include <../../../../../../../libc/sysdeps/linux/arc/sigaction.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch
index 80a0306..49d0684 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch
@@ -6,8 +6,7 @@
#
libpthread_linux_arch_SSRC =
-libpthread_linux_arch_CSRC = pthread_once.c \
- pt-__syscall_rt_sigaction.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_once.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
@@ -16,7 +15,5 @@ libc_linux_arch_SSRC-OMIT = waitpid.S
# We always compile it in arm mode because of SAVE_PID macro
# This macro should be alternatively implemented in THUMB
# assembly.
-ASFLAGS-pt-vfork.S = -marm
-CFLAGS-OMIT-pt-vfork.S = -mthumb
ASFLAGS-vfork.S = -marm
CFLAGS-OMIT-vfork.S = -mthumb
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_error.c
deleted file mode 100644
index 5a48a9b..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_error.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/arm/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_rt_sigaction.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_rt_sigaction.c
deleted file mode 100644
index 50137c8..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-__syscall_rt_sigaction.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch
index 9dc878c..be07d9c 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch
@@ -6,7 +6,7 @@
#
libpthread_linux_arch_SSRC = clone.S pthread_spin_unlock.S pthread_once.S
-libpthread_linux_arch_CSRC = pthread_spin_init.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_spin_init.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-__syscall_error.c
deleted file mode 100644
index 620640a..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-__syscall_error.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/i386/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c b/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c
index 67587f4..6013ab0 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c
@@ -27,13 +27,6 @@ extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
void
_longjmp_unwind (jmp_buf env, int val)
{
-#ifdef SHARED
- if (__libc_pthread_functions_init)
- PTHFCT_CALL (ptr___pthread_cleanup_upto, (env->__jmpbuf,
- CURRENT_STACK_FRAME));
-#else
- if (__pthread_cleanup_upto != NULL)
__pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
-#endif
}
libc_hidden_def(_longjmp_unwind)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
index cc8d390..0df9951 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
@@ -37,8 +37,7 @@ int *
#endif
__libc_pthread_init (
unsigned long int *ptr,
- void (*reclaim) (void),
- const struct pthread_functions *functions)
+ void (*reclaim) (void))
{
/* Remember the pointer to the generation counter in libpthread. */
__fork_generation_pointer = ptr;
@@ -46,28 +45,7 @@ __libc_pthread_init (
/* Called by a child after fork. */
__register_atfork (NULL, NULL, reclaim, NULL);
-#ifdef SHARED
- /* We copy the content of the variable pointed to by the FUNCTIONS
- parameter to one in libc.so since this means access to the array
- can be done with one memory access instead of two.
- */
- memcpy (&__libc_pthread_functions, functions,
- sizeof (__libc_pthread_functions));
- __libc_pthread_functions_init = 1;
-#endif
-
#ifndef TLS_MULTIPLE_THREADS_IN_TCB
return &__libc_multiple_threads;
#endif
}
-
-#ifdef SHARED
-#if 0
-void
-libc_freeres_fn (freeres_libptread)
-{
- if (__libc_pthread_functions_init)
- PTHFCT_CALL (ptr_freeres, ());
-}
-#endif
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch
index b38c375..0f4d8d3 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch
@@ -6,8 +6,7 @@
#
libpthread_linux_arch_SSRC =
-libpthread_linux_arch_CSRC = pthread_once.c \
- pt-__syscall_rt_sigaction.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_once.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c
deleted file mode 100644
index 8f97734..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright (C) 2013 Imagination Technologies Ltd.
- *
- * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
-#include <../../../../../../../libc/sysdeps/linux/metag/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c
deleted file mode 100644
index 18769ca..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * Copyright (C) 2013 Imagination Technologies Ltd.
- *
- * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
- */
-
-#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch
index f87dedc..565efd4 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch
@@ -6,7 +6,7 @@
#
libpthread_linux_arch_SSRC = clone.S
-libpthread_linux_arch_CSRC = pthread_once.c pt-__syscall_rt_sigaction.c
+libpthread_linux_arch_CSRC = pthread_once.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-__syscall_rt_sigaction.c b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-__syscall_rt_sigaction.c
deleted file mode 100644
index 50137c8..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-__syscall_rt_sigaction.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch
index df4bb69..2abb1d2 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch
@@ -6,13 +6,10 @@
#
libpthread_linux_arch_SSRC =
-libpthread_linux_arch_CSRC = pthread_once.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_once.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S
-# powerpc32's PSEUDO_RET needs __syscall_error@local
-librt_linux_arch_CSRC = pt-__syscall_error.c
-
ASFLAGS += -DUSE___THREAD
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-__syscall_error.c
deleted file mode 100644
index 2a402e5..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-__syscall_error.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/powerpc/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sigwait.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sigwait.c
deleted file mode 100644
index bde0a92..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sigwait.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <pthreadP.h>
-#include "../../../../../../libc/signal/sigwait.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
deleted file mode 100644
index 71fef93..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Special .init and .fini section support for SH. NPTL version.
- Copyright (C) 2003, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Library General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The Library General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- The GNU C Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-/* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-
- * crti.s puts a function prologue at the beginning of the
- .init and .fini sections and defines global symbols for
- those addresses, so they can be called as functions.
-
- * crtn.s puts the corresponding function epilogues
- in the .init and .fini sections. */
-
-__asm__ ("\n\
-\n\
-#include \"defs.h\"\n\
-\n\
-/*@HEADER_ENDS*/\n\
-\n\
-/*@TESTS_BEGIN*/\n\
-\n\
-/*@TESTS_END*/\n\
-\n\
-/*@_init_PROLOG_BEGINS*/\n\
- .section .init\n\
- .align 5\n\
- .global _init\n\
- .type _init,@function\n\
-_init:\n\
- mov.l r12,@-r15\n\
- mov.l r14,@-r15\n\
- sts.l pr,@-r15\n\
- mova .L22,r0\n\
- mov.l .L22,r12\n\
- add r0,r12\n\
- mova .L24,r0\n\
- mov.l .L24,r1\n\
- add r0,r1\n\
- jsr @r1\n\
- mov r15,r14\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L22:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-.L24:\n\
- .long __pthread_initialize_minimal_internal@PLT\n\
-1:\n\
- ALIGN\n\
- END_INIT\n\
-\n\
-/*@_init_PROLOG_ENDS*/\n\
-\n\
-/*@_init_EPILOG_BEGINS*/\n\
- .section .init\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- rts \n\
- mov.l @r15+,r12\n\
- END_INIT\n\
- \n\
-/*@_init_EPILOG_ENDS*/\n\
-\n\
-/*@_fini_PROLOG_BEGINS*/\n\
- .section .fini\n\
- .align 5\n\
- .global _fini\n\
- .type _fini,@function\n\
-_fini:\n\
- mov.l r12,@-r15\n\
- mov.l r14,@-r15\n\
- sts.l pr,@-r15\n\
- mova .L27,r0\n\
- mov.l .L27,r12\n\
- add r0,r12\n\
- mov r15,r14\n\
- ALIGN\n\
- END_FINI\n\
- bra 1f\n\
- nop\n\
- .align 2\n\
-.L27:\n\
- .long _GLOBAL_OFFSET_TABLE_\n\
-1:\n\
-/*@_fini_PROLOG_ENDS*/\n\
-\n\
-/*@_fini_EPILOG_BEGINS*/\n\
- .section .fini\n\
- mov r14,r15\n\
- lds.l @r15+,pr\n\
- mov.l @r15+,r14\n\
- rts \n\
- mov.l @r15+,r12\n\
-\n\
- END_FINI\n\
- \n\
-/*@_fini_EPILOG_ENDS*/\n\
-\n\
-/*@TRAILER_BEGINS*/\n\
-");
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch
index 01a9e87..f93ad4d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch
@@ -7,13 +7,10 @@
libpthread_linux_arch_SSRC = clone.S
libpthread_linux_arch_CSRC = pthread_once.c lowlevellock.c \
- pthread_barrier_init.c pthread_barrier_wait.c pthread_barrier_destroy.c \
- pt-__syscall_error.c
+ pthread_barrier_init.c pthread_barrier_wait.c pthread_barrier_destroy.c
libc_linux_arch_CSRC = fork.c libc-lowlevellock.c
libc_linux_arch_SSRC = clone.S vfork.S
-librt_linux_arch_CSRC = pt-__syscall_error.c
-
ASFLAGS += -DUSE___THREAD
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c
deleted file mode 100644
index 872e4ef..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/sparc/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
index b49db54..b48f4cb 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
@@ -11,7 +11,7 @@ libpthread_linux_arch_SSRC = clone.S pthread_once.S \
sem_trywait.S sem_wait.S pthread_rwlock_rdlock.S pthread_rwlock_wrlock.S \
pthread_rwlock_timedrdlock.S pthread_rwlock_timedwrlock.S pthread_rwlock_unlock.S \
pthread_spin_unlock.S cancellation.S
-libpthread_linux_arch_CSRC = pthread_spin_init.c pt-__syscall_error.c
+libpthread_linux_arch_CSRC = pthread_spin_init.c
libc_linux_arch_CSRC = fork.c
libc_linux_arch_SSRC = clone.S vfork.S libc-cancellation.S libc-lowlevellock.S
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-__syscall_error.c
deleted file mode 100644
index 2ab8149..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-__syscall_error.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <../../../../../../../libc/sysdeps/linux/x86_64/__syscall_error.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/Makefile.arch
index 8ebe287..7014c3f 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/Makefile.arch
@@ -7,7 +7,6 @@ libpthread_linux_arch_CSRC = pthread_once.c
libpthread_linux_arch_SSRC =
CFLAGS-OMIT-fork.c = -DNOT_IN_libc -DIS_IN_libpthread
-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT
ASFLAGS-clone.S = -D_LIBC_REENTRANT
ASFLAGS-vfork.S = -D_LIBC_REENTRANT
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pt-initfini.c b/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pt-initfini.c
deleted file mode 100644
index 4e6d26e..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pt-initfini.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Special .init and .fini section support. Linuxthread version.
- Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The Library General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- The GNU C Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- see <http://www.gnu.org/licenses/>. */
-
-/* This file is compiled into assembly code which is then munged by a sed
- script into two files: crti.s and crtn.s.
-
- * crti.s puts a function prologue at the beginning of the
- .init and .fini sections and defines global symbols for
- those addresses, so they can be called as functions.
-
- * crtn.s puts the corresponding function epilogues
- in the .init and .fini sections. */
-
-#include <stdlib.h>
-
-/* We use embedded asm for .section unconditionally, as this makes it
- easier to insert the necessary directives into crtn.S. */
-#define SECTION(x) __asm__ (".section " x )
-
-/* Embed an #include to pull in the alignment and .end directives. */
-__asm__ ("\n#include \"defs.h\"");
-__asm__ ("\n#if defined __i686 && defined __ASSEMBLER__");
-__asm__ ("\n#undef __i686");
-__asm__ ("\n#define __i686 __i686");
-__asm__ ("\n#endif");
-
-/* The initial common code ends here. */
-__asm__ ("\n/*@HEADER_ENDS*/");
-
-/* To determine whether we need .end and .align: */
-__asm__ ("\n/*@TESTS_BEGIN*/");
-extern void dummy (void (*foo) (void));
-void
-dummy (void (*foo) (void))
-{
- if (foo)
- (*foo) ();
-}
-__asm__ ("\n/*@TESTS_END*/");
-
-/* The beginning of _init: */
-__asm__ ("\n/*@_init_PROLOG_BEGINS*/");
-
-static void
-call_initialize_minimal (void)
-{
- extern void __pthread_initialize_minimal_internal (void)
- __attribute ((visibility ("hidden")));
-
- __pthread_initialize_minimal_internal ();
-}
-
-SECTION (".init");
-extern void __attribute__ ((section (".init"))) _init (void);
-void
-_init (void)
-{
- /* The very first thing we must do is to set up the registers. */
- call_initialize_minimal ();
-
- __asm__ ("ALIGN");
- __asm__("END_INIT");
- /* Now the epilog. */
- __asm__ ("\n/*@_init_PROLOG_ENDS*/");
- __asm__ ("\n/*@_init_EPILOG_BEGINS*/");
- SECTION(".init");
-}
-__asm__ ("END_INIT");
-
-/* End of the _init epilog, beginning of the _fini prolog. */
-__asm__ ("\n/*@_init_EPILOG_ENDS*/");
-__asm__ ("\n/*@_fini_PROLOG_BEGINS*/");
-
-SECTION (".fini");
-extern void __attribute__ ((section (".fini"))) _fini (void);
-void
-_fini (void)
-{
-
- /* End of the _fini prolog. */
- __asm__ ("ALIGN");
- __asm__ ("END_FINI");
- __asm__ ("\n/*@_fini_PROLOG_ENDS*/");
-
- /* Xtensa: It doesn't really matter whether GCC thinks this is a leaf
- function or not, and the scripts that are supposed to remove the
- call don't catch the literal, resulting in an undefined symbol
- reference. */
-#if 0
- {
- /* Let GCC know that _fini is not a leaf function by having a dummy
- function call here. We arrange for this call to be omitted from
- either crt file. */
- extern void i_am_not_a_leaf (void);
- i_am_not_a_leaf ();
- }
-#endif
-
- /* Beginning of the _fini epilog. */
- __asm__ ("\n/*@_fini_EPILOG_BEGINS*/");
- SECTION (".fini");
-}
-__asm__ ("END_FINI");
-
-/* End of the _fini epilog. Any further generated assembly (e.g. .ident)
- is shared between both crt files. */
-__asm__ ("\n/*@_fini_EPILOG_ENDS*/");
-__asm__ ("\n/*@TRAILER_BEGINS*/");
-
-/* End of file. */
diff --git a/libpthread/nptl/sysdeps/xtensa/Makefile.arch b/libpthread/nptl/sysdeps/xtensa/Makefile.arch
index 2c1fc1b..9e63b19 100644
--- a/libpthread/nptl/sysdeps/xtensa/Makefile.arch
+++ b/libpthread/nptl/sysdeps/xtensa/Makefile.arch
@@ -18,9 +18,6 @@
ASFLAGS-dl-tlsdesc.S = -DNOT_IN_libc=1
ASFLAGS-pthread_spin_lock.S = -DNOT_IN_libc -DIS_IN_libpthread
ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread
-ASFLAGS-nptl-sysdep.S = -DNOT_IN_libc -DIS_IN_libpthread \
- -D_LIBC_REENTRANT \
- -I$(top_srcdir)libc/sysdeps/linux/xtensa
libc_arch_a_CSRC = libc-tls.c
librt_arch_a_SSRC = dl-tlsdesc.S
diff --git a/libresolv/Makefile.in b/libresolv/Makefile.in
index 89ef4f7..3425a7c 100644
--- a/libresolv/Makefile.in
+++ b/libresolv/Makefile.in
@@ -9,13 +9,6 @@ subdirs += libresolv
CFLAGS-libresolv := -DNOT_IN_libc -DIS_IN_libresolv $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libresolv.so := -Wl,--dsbt-index=7
-LDFLAGS-libresolv.so := $(LDFLAGS) $(call link.asneeded,-lc)
-
-LIBS-libresolv.so := $(LIBS)
-
-libresolv_FULL_NAME := libresolv-$(VERSION).so
-
libresolv_DIR := $(top_srcdir)libresolv
libresolv_OUT := $(top_builddir)libresolv
@@ -29,27 +22,7 @@ libresolv-a-y := $(libresolv_OBJ)
endif
libresolv-so-y := $(libresolv_OBJ:.o=.os)
-lib-a-$(UCLIBC_HAS_LIBRESOLV_STUB) += $(top_builddir)lib/libresolv.a
-lib-so-$(UCLIBC_HAS_LIBRESOLV_STUB) += $(top_builddir)lib/libresolv.so
objclean-y += CLEAN_libresolv
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libresolv.so: $(top_builddir)lib/libresolv.a $(libc.depend)
-else
-$(top_builddir)lib/libresolv.so: $(libresolv_OUT)/libresolv_so.a $(libc.depend)
-endif
- $(call link.so,$(libresolv_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libresolv_FULL_NAME),0)
-
-$(libresolv_OUT)/libresolv_so.a: $(libresolv-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)lib/libresolv.a: $(libresolv-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libresolv:
$(do_rm) $(addprefix $(libresolv_OUT)/*., o os a)
diff --git a/librt/Makefile.in b/librt/Makefile.in
index 88f15f9..8405ec0 100644
--- a/librt/Makefile.in
+++ b/librt/Makefile.in
@@ -9,16 +9,6 @@ subdirs += librt
CFLAGS-librt := -DNOT_IN_libc -DIS_IN_librt $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-librt.so := -Wl,--dsbt-index=9
-LDFLAGS-librt.so := $(LDFLAGS)
-LIBS-librt.so := $(LIBS)
-ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-LIBS-librt.so += $(top_builddir)lib/libpthread.so \
- $(CC_FLAG_ASNEEDED) $(top_builddir)lib/libdl.so $(CC_FLAG_NO_ASNEEDED)
-endif
-
-librt_FULL_NAME := librt-$(VERSION).so
-
librt_DIR := $(top_srcdir)librt
librt_OUT := $(top_builddir)librt
@@ -58,31 +48,7 @@ librt-a-y += $(librt_OBJ)
endif
librt-so-y += $(librt_OBJ:.o=.oS)
-ifeq ($(UCLIBC_HAS_REALTIME),y)
-lib-a-y += $(top_builddir)lib/librt.a
-lib-so-y += $(top_builddir)lib/librt.so
-endif
-
librt-dep-y := $(libc.depend)
-librt-dep-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread.depend) $(libdl.depend)
-
-# for NPTL we need SHARED regardless of DOPIC
-ifeq ($(if $(UCLIBC_HAS_THREADS_NATIVE),,$(DOPIC)),y)
-$(top_builddir)lib/librt.so: $(top_builddir)lib/librt.a $(librt-dep-y)
-else
-$(top_builddir)lib/librt.so: $(librt_OUT)/librt_so.a $(librt-dep-y)
-endif
- $(call link.so,$(librt_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(librt_FULL_NAME),0)
-
-$(librt_OUT)/librt_so.a: $(librt-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)lib/librt.a: $(librt-a-y)
- $(Q)$(RM) $@
- $(do_ar)
objclean-y += CLEAN_librt
diff --git a/libuargp/Makefile.in b/libuargp/Makefile.in
index f1ccfa6..91d41ce 100644
--- a/libuargp/Makefile.in
+++ b/libuargp/Makefile.in
@@ -11,12 +11,6 @@
CFLAGS-libuargp := -DNOT_IN_libc -DIS_IN_libuargp $(SSP_ALL_CFLAGS)
-LDFLAGS-libuargp.so := $(LDFLAGS)
-
-LIBS-libuargp.so := $(LIBS)
-
-libuargp_FULL_NAME := libuargp-$(VERSION).so
-
libuargp_DIR := $(top_srcdir)libuargp
libuargp_OUT := $(top_builddir)libuargp
@@ -39,30 +33,11 @@ libuargp-a-y := $(libuargp_OBJS)
endif
libuargp-so-y := $(libuargp_OBJS:.o=.os)
-lib-a-$(UCLIBC_HAS_ARGP) += $(top_builddir)lib/libuargp.a
-lib-so-$(UCLIBC_HAS_ARGP) += $(top_builddir)lib/libuargp.so
-
objclean-y += CLEAN_libuargp
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libuargp.so: $(top_builddir)lib/libuargp.a $(libc.depend)
-else
-$(top_builddir)lib/libuargp.so: $(libuargp_OUT)/libuargp_so.a $(libc.depend)
-endif
- $(call link.so,$(libuargp_FULL_NAME),$(MAJOR_VERSION))
-
-$(libuargp_OUT)/libuargp_so.a: $(libuargp-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libuargp_OUT)/libuargp.oS: $(libuargp_SRCS)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libuargp.a: $(libuargp-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libuargp:
$(do_rm) $(addprefix $(libuargp_OUT)/*., o os oS a)
diff --git a/libubacktrace/Makefile.in b/libubacktrace/Makefile.in
index fdd73fa..2d1478d 100644
--- a/libubacktrace/Makefile.in
+++ b/libubacktrace/Makefile.in
@@ -10,12 +10,6 @@ subdirs += libubacktrace libubacktrace/$(TARGET_ARCH)
CFLAGS-libubacktrace := -DNOT_IN_libc -DIS_IN_libubacktrace $(SSP_ALL_CFLAGS)
-LDFLAGS-libubacktrace.so := $(LDFLAGS) $(top_builddir)lib/libdl-$(VERSION).so
-
-LIBS-libubacktrace.so := $(LIBS)
-
-libubacktrace_FULL_NAME := libubacktrace-$(VERSION).so
-
libubacktrace_DIR := $(top_srcdir)libubacktrace
libubacktrace_OUT := $(top_builddir)libubacktrace
@@ -54,28 +48,11 @@ endif
libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-shared-y)
-lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a
-lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so
-
objclean-y += CLEAN_libubacktrace
-$(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
- $(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libubacktrace_FULL_NAME),0)
-
-$(libubacktrace_OUT)/libubacktrace_so.a: $(libubacktrace-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS) $(libubacktrace_SHARED_SRCS)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libubacktrace.a: $(libubacktrace-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libubacktrace:
$(do_rm) $(addprefix $(libubacktrace_OUT)/*., o os oS a)
diff --git a/libutil/Makefile.in b/libutil/Makefile.in
index d36995f..dd4df05 100644
--- a/libutil/Makefile.in
+++ b/libutil/Makefile.in
@@ -9,13 +9,6 @@ subdirs += libutil
CFLAGS-libutil := -DNOT_IN_libc -DIS_IN_libutil $(SSP_ALL_CFLAGS)
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libutil.so := -Wl,--dsbt-index=8
-LDFLAGS-libutil.so := $(LDFLAGS)
-
-LIBS-libutil.so := $(LIBS)
-
-libutil_FULL_NAME := libutil-$(VERSION).so
-
libutil_DIR := $(top_srcdir)libutil
libutil_OUT := $(top_builddir)libutil
@@ -44,31 +37,11 @@ libutil-a-y := $(libutil_OBJ)
endif
libutil-so-y := $(libutil_OBJ:.o=.os)
-lib-a-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.a
-lib-so-$(UCLIBC_HAS_LIBUTIL) += $(top_builddir)lib/libutil.so
objclean-y += CLEAN_libutil
-ifeq ($(DOPIC),y)
-$(top_builddir)lib/libutil.so: $(top_builddir)lib/libutil.a $(libc.depend)
-else
-$(top_builddir)lib/libutil.so: $(libutil_OUT)/libutil_so.a $(libc.depend)
-endif
- $(call link.so,$(libutil_FULL_NAME),$(ABI_VERSION))
- # link for backward compatibility
- $(call link.so,$(libutil_FULL_NAME),0)
-
-$(libutil_OUT)/libutil_so.a: $(libutil-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
$(libutil_OUT)/libutil.oS: $(libutil_SRC)
$(Q)$(RM) $@
$(compile-m)
-$(top_builddir)lib/libutil.a: $(libutil-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
CLEAN_libutil:
$(do_rm) $(addprefix $(libutil_OUT)/*., o os oS a)
diff --git a/test/argp/Makefile.in b/test/argp/Makefile.in
index d81b359..c472964 100644
--- a/test/argp/Makefile.in
+++ b/test/argp/Makefile.in
@@ -4,8 +4,6 @@
TESTS := $(addprefix argp-, ex1 ex2 ex3 ex4 test) \
bug-argp1 tst-argp1 tst-argp2
-EXTRA_LDFLAGS = -luargp
-
OPTS_argp-ex3 = ARG1 ARG2
OPTS_argp-ex4 = ARG1 string1 string2 string3
OPTS_bug-argp1 = -- --help
diff --git a/test/math/libm-test-ulps-xtensa b/test/math/libm-test-ulps-microblaze
similarity index 100%
copy from test/math/libm-test-ulps-xtensa
copy to test/math/libm-test-ulps-microblaze
diff --git a/test/math/libm-test-ulps-s390 b/test/math/libm-test-ulps-s390
deleted file mode 100644
index 989722e..0000000
--- a/test/math/libm-test-ulps-s390
+++ /dev/null
@@ -1,1332 +0,0 @@
-# Begin of automatic generation
-
-# atan2
-Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112":
-ildouble: 1
-ldouble: 1
-Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# atanh
-Test "atanh (0.75) == 0.972955074527656652552676371721589865":
-float: 1
-ifloat: 1
-
-# cacos
-Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
-ildouble: 1
-ldouble: 1
-
-# cacosh
-Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-# casin
-Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
-ildouble: 1
-ldouble: 1
-
-# casinh
-Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 2
-ldouble: 2
-Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# catan
-Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
-float: 3
-ifloat: 3
-Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
-float: 4
-ifloat: 4
-Test "Imaginary part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
-ildouble: 1
-ldouble: 1
-
-# catanh
-Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
-double: 4
-idouble: 4
-Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
-float: 4
-ifloat: 4
-Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-# cbrt
-Test "cbrt (-0.001) == -0.1":
-ildouble: 1
-ldouble: 1
-Test "cbrt (-27.0) == -3.0":
-double: 1
-idouble: 1
-Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
-double: 1
-idouble: 1
-Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
-double: 1
-idouble: 1
-
-# ccos
-Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
-float: 1
-ifloat: 1
-
-# ccosh
-Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
-float: 1
-ifloat: 1
-
-# cexp
-Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
-ildouble: 1
-ldouble: 1
-
-# clog
-Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
-float: 3
-ifloat: 3
-Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# clog10
-Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf + inf i) == inf + 3/4 pi*log10(e) i":
-double: 1
-idouble: 1
-Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cos
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (M_PI_6l * 4.0) == -0.5":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "cos (pi/2) == 0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# cpow
-Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
-float: 1
-ifloat: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 4
-ldouble: 4
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 2
-ldouble: 2
-Test "Imaginary part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i) == 0.75 + 1.25 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-ildouble: 10
-ldouble: 10
-Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
-ildouble: 2
-ldouble: 2
-Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-double: 1
-float: 4
-idouble: 1
-ifloat: 4
-ildouble: 3
-ldouble: 3
-Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
-float: 2
-ifloat: 2
-Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# csin
-Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i":
-ildouble: 1
-ldouble: 1
-Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i":
-ildouble: 1
-ldouble: 1
-
-# csinh
-Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
-double: 1
-idouble: 1
-Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
-float: 1
-ifloat: 1
-
-# csqrt
-Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: csqrt (0.75 + 1.25 i) == 1.05065169626078392338656675760808326 + 0.594868882070379067881984030639932657 i":
-ildouble: 1
-ldouble: 1
-
-# ctan
-Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-# ctanh
-Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
-ildouble: 1
-ldouble: 1
-Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
-float: 1
-ifloat: 1
-Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
-double: 1
-idouble: 1
-
-# erf
-Test "erf (1.25) == 0.922900128256458230136523481197281140":
-double: 1
-idouble: 1
-
-# erfc
-Test "erfc (0.75) == 0.288844366346484868401062165408589223":
-float: 1
-ifloat: 1
-Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
-double: 1
-idouble: 1
-Test "erfc (27.0) == 0.523704892378925568501606768284954709e-318":
-ildouble: 1
-ldouble: 1
-Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
-double: 1
-idouble: 1
-
-# exp10
-Test "exp10 (-1) == 0.1":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "exp10 (3) == 1000":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# exp2
-Test "exp2 (10) == 1024":
-ildouble: 2
-ldouble: 2
-
-# expm1
-Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
-double: 1
-idouble: 1
-Test "expm1 (1) == M_El - 1.0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# gamma
-Test "gamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-
-# hypot
-Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-
-# j0
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "j0 (0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "j0 (2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "j0 (8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# j1
-Test "j1 (-1.0) == -0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
-ildouble: 1
-ldouble: 1
-Test "j1 (1.0) == 0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "j1 (2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "j1 (8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-
-# jn
-Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
-float: 1
-ifloat: 1
-Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (1, -1.0) == -0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 0.75) == 0.349243602174862192523281016426251335":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 1.0) == 0.440050585744933515959682203718914913":
-ildouble: 1
-ldouble: 1
-Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
-float: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
-double: 1
-idouble: 1
-Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
-double: 1
-idouble: 1
-ildouble: 4
-ldouble: 4
-Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
-ildouble: 1
-ldouble: 1
-Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-ildouble: 2
-ldouble: 2
-Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
-float: 4
-ifloat: 4
-Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# lgamma
-Test "lgamma (-0.5) == log(2*sqrt(pi))":
-ildouble: 1
-ldouble: 1
-Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# log10
-Test "log10 (0.75) == -0.124938736608299953132449886193870744":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-Test "log10 (e) == log10(e)":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-# log1p
-Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
-float: 1
-ifloat: 1
-
-# log2
-Test "log2 (0.75) == -.415037499278843818546261056052183492":
-ildouble: 1
-ldouble: 1
-
-# sincos
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-float: 1
-ifloat: 1
-
-# sqrt
-Test "sqrt (2) == M_SQRT2l":
-ildouble: 1
-ldouble: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 1
-idouble: 1
-
-# tanh
-Test "tanh (-0.75) == -0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-Test "tanh (-1.0) == -0.7615941559557648881194582826047935904":
-ildouble: 1
-ldouble: 1
-Test "tanh (0.75) == 0.635148952387287319214434357312496495":
-ildouble: 1
-ldouble: 1
-Test "tanh (1.0) == 0.7615941559557648881194582826047935904":
-ildouble: 1
-ldouble: 1
-
-# tgamma
-Test "tgamma (-0.5) == -2 sqrt (pi)":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "tgamma (0.5) == sqrt (pi)":
-float: 1
-ifloat: 1
-Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "tgamma (4) == 6":
-ildouble: 1
-ldouble: 1
-
-# y0
-Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "y0 (2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "y0 (8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-# y1
-Test "y1 (0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "y1 (0.75) == -1.03759455076928541973767132140642198":
-ildouble: 1
-ldouble: 1
-Test "y1 (1.5) == -0.412308626973911295952829820633445323":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "y1 (2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "y1 (8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-# yn
-Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (0, 2.0) == 0.510375672649745119596606592727157873":
-double: 1
-idouble: 1
-Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 3
-ldouble: 3
-Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
-double: 1
-idouble: 1
-Test "yn (1, 0.75) == -1.03759455076928541973767132140642198":
-ildouble: 1
-ldouble: 1
-Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 5
-ldouble: 5
-Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 2
-ldouble: 2
-Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
-double: 1
-idouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 2
-ldouble: 2
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "atan2":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "cacos":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cacosh":
-double: 1
-float: 7
-idouble: 1
-ifloat: 7
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 3
-idouble: 1
-ifloat: 3
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "casin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "casinh":
-double: 5
-float: 1
-idouble: 5
-ifloat: 1
-ildouble: 4
-ldouble: 4
-
-Function: Imaginary part of "casinh":
-double: 3
-float: 6
-idouble: 3
-ifloat: 6
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "catan":
-float: 4
-ifloat: 4
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "catanh":
-double: 4
-idouble: 4
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "catanh":
-float: 6
-ifloat: 6
-ildouble: 1
-ldouble: 1
-
-Function: "cbrt":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccos":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ccosh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "cexp":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "clog":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog":
-float: 3
-ifloat: 3
-
-Function: Real part of "clog10":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 5
-idouble: 1
-ifloat: 5
-ildouble: 1
-ldouble: 1
-
-Function: "cos":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-ildouble: 10
-ldouble: 10
-
-Function: Imaginary part of "cpow":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csin":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "csqrt":
-ildouble: 1
-ldouble: 1
-
-Function: Real part of "ctan":
-double: 1
-idouble: 1
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctan":
-double: 1
-idouble: 1
-ildouble: 2
-ldouble: 2
-
-Function: Real part of "ctanh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: Imaginary part of "ctanh":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "exp10":
-double: 6
-float: 2
-idouble: 6
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "exp2":
-ildouble: 2
-ldouble: 2
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "gamma":
-ildouble: 1
-ldouble: 1
-
-Function: "hypot":
-float: 1
-ifloat: 1
-
-Function: "j0":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 2
-ldouble: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 4
-ldouble: 4
-
-Function: "jn":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-ildouble: 4
-ldouble: 4
-
-Function: "lgamma":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "log1p":
-float: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "log2":
-ildouble: 1
-ldouble: 1
-
-Function: "sincos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "sqrt":
-ildouble: 1
-ldouble: 1
-
-Function: "tan":
-double: 1
-idouble: 1
-
-Function: "tanh":
-ildouble: 1
-ldouble: 1
-
-Function: "tgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-ildouble: 1
-ldouble: 1
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-ildouble: 3
-ldouble: 3
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 1
-ldouble: 1
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-ildouble: 5
-ldouble: 5
-
-# end of automatic generation
diff --git a/test/tls/Makefile.in b/test/tls/Makefile.in
index 6e193a9..9f10378 100644
--- a/test/tls/Makefile.in
+++ b/test/tls/Makefile.in
@@ -116,6 +116,17 @@ LDFLAGS_tst-tls17 := -ldl -Wl,-rpath-link=.
LDFLAGS_tst-tls18 := -ldl -Wl,-rpath-link=.
LDFLAGS_tst-tls-at-ctor := tst-tlsmod-at-ctor.so
+tst-tlsmod3.so: tst-tlsmod2.so
+tst-tlsmod4.so: tst-tlsmod3.so
+tst-tlsmod6.so: tst-tlsmod5.so
+tst-tlsmod8.so: tst-tlsmod7.so
+tst-tlsmod9.so: tst-tlsmod8.so
+tst-tlsmod10.so: tst-tlsmod9.so
+tst-tlsmod12.so: tst-tlsmod11.so
+tst-tlsmod13a.so: tst-tlsmod13.so
+tst-tlsmod14b.so: tst-tlsmod14a.so
+tst-tlsmod16b.so: tst-tlsmod16a.so
+
tst-tls3: tst-tlsmod1.so tst-tlsmod4.so
tst-tls4: tst-tlsmod2.so
tst-tls5: tst-tlsmod2.so
diff --git a/utils/Makefile.in b/utils/Makefile.in
index 6349aa7..5457776 100644
--- a/utils/Makefile.in
+++ b/utils/Makefile.in
@@ -91,7 +91,7 @@ endif
utils_LOCALE_OBJ :=
ifeq ($(UCLIBC_HAS_LOCALE),y)
utils_OBJ += iconv
-#utils_LOCALE_OBJ += $(utils_OUT)/locale
+utils_LOCALE_OBJ += $(utils_OUT)/locale
endif
utils_OBJ := $(patsubst %,$(utils_OUT)/%,$(utils_OBJ))
@@ -130,7 +130,7 @@ ifeq ($(HAVE_SHARED),y)
endif
ifeq ($(UCLIBC_HAS_LOCALE),y)
$(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/iconv
- #$(Q)$(INSTALL) -m 755 $(utils_OUT)/locale$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/locale
+ $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale$(DOTHOST) $(PREFIX)$(DEVEL_PREFIX)bin/locale
endif
diff --git a/utils/ldd.c b/utils/ldd.c
index 5d2c8f4..5b41e2e 100644
--- a/utils/ldd.c
+++ b/utils/ldd.c
@@ -40,8 +40,18 @@
#define ELFCLASSM ELFCLASS32
#endif
-#if defined(__s390__)
-#define MATCH_MACHINE(x) (x == EM_S390)
+#if defined(__TMS320C6X__)
+#define MATCH_MACHINE(x) (x == EM_TI_C6000)
+#define ELFCLASSM ELFCLASS32
+#endif
+
+#if defined(__cris__)
+#define MATCH_MACHINE(x) (x == EM_CRIS)
+#define ELFCLASSM ELFCLASS32
+#endif
+
+#if defined(__frv__)
+#define MATCH_MACHINE(x) (x == EM_CYGNUS_FRV)
#define ELFCLASSM ELFCLASS32
#endif
@@ -78,15 +88,22 @@
#define ELFCLASSM ELFCLASS32
#endif
+#if defined(__microblaze__)
+#define MATCH_MACHINE(x) (x == EM_MICROBLAZE)
+#define ELFCLASSM ELFCLASS32
+#endif
+
#if defined(__mips__)
#define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
#define ELFCLASSM ELFCLASS32
#endif
-#if defined(__powerpc64__)
-#define MATCH_MACHINE(x) (x == EM_PPC64)
-#define ELFCLASSM ELFCLASS64
-#elif defined(__powerpc__)
+#if defined(__nds32__)
+#define MATCH_MACHINE(x) (x == EM_NDS32)
+#define ELFCLASSM ELFCLASS32
+#endif
+
+#if defined(__powerpc__)
#define MATCH_MACHINE(x) (x == EM_PPC)
#define ELFCLASSM ELFCLASS32
#endif
@@ -101,21 +118,11 @@
#define ELFCLASSM ELFCLASS32
#endif
-#if defined(__cris__)
-#define MATCH_MACHINE(x) (x == EM_CRIS)
-#define ELFCLASSM ELFCLASS32
-#endif
-
#if defined(__x86_64__)
#define MATCH_MACHINE(x) (x == EM_X86_64)
#define ELFCLASSM ELFCLASS64
#endif
-#if defined(__microblaze__)
-#define MATCH_MACHINE(x) (x == EM_MICROBLAZE)
-#define ELFCLASSM ELFCLASS32
-#endif
-
#if defined(__xtensa__)
#define MATCH_MACHINE(x) (x == EM_XTENSA)
#define ELFCLASSM ELFCLASS32
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.17-18-gb06f85d
by wbx@helium.openadk.org 26 Sep '16
by wbx@helium.openadk.org 26 Sep '16
26 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via b06f85d62c41a4ed108628b1c564203f36c0ab4e (commit)
via 8fb9dbf08043e5783f1e0680655af04ecf9888cb (commit)
via bd215ef170fb85b7572b617dacdeab26edd3d21c (commit)
via 56741422790d9a6ff74c4397d914f540a1be273d (commit)
from 126ffbd45f65d3a6940afc8aaacfada8a73ea8a0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b06f85d62c41a4ed108628b1c564203f36c0ab4e
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Mon Sep 26 10:29:12 2016 +0200
test: sync tst-atfork2 with GNU libc
commit 8fb9dbf08043e5783f1e0680655af04ecf9888cb
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Mon Sep 26 09:53:37 2016 +0200
linuxthreads: use tkill syscall for raise
Seems better and more stable.
commit bd215ef170fb85b7572b617dacdeab26edd3d21c
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sun Sep 25 20:28:03 2016 +0200
always assume tgkill is present
We do not support 2.4 Linux kernels anyway, and almost
all newer 2.6 kernels should have tgkill syscall.
Cleanup the raise situation, pt-raise.c is unused, sync
raise.c with latest GNU libc.
Signed-off-by: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
commit 56741422790d9a6ff74c4397d914f540a1be273d
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sun Sep 25 18:47:56 2016 +0200
remove dead code and documentation
The code was disabled a while ago in commit:
814b0901f460a246315bfa7933a661f415bdc7fa
Signed-off-by: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
-----------------------------------------------------------------------
Summary of changes:
docs/pthreads_hacking.txt | 748 ---------------------
docs/threads.txt | 56 --
libc/sysdeps/linux/common/bits/kernel-features.h | 12 -
libpthread/linuxthreads/signals.c | 18 +-
libpthread/nptl/allocatestack.c | 10 -
libpthread/nptl/pthread_cancel.c | 11 -
libpthread/nptl/sysdeps/pthread/createthread.c | 4 -
.../sysdeps/unix/sysv/linux/Makefile.commonarch | 8 +-
libpthread/nptl/sysdeps/unix/sysv/linux/close.S | 21 -
libpthread/nptl/sysdeps/unix/sysv/linux/open.S | 21 -
libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c | 28 -
libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c | 51 --
libpthread/nptl/sysdeps/unix/sysv/linux/pt-sleep.c | 2 -
.../nptl/sysdeps/unix/sysv/linux/pthread_kill.c | 10 -
libpthread/nptl/sysdeps/unix/sysv/linux/raise.c | 21 +-
libpthread/nptl/sysdeps/unix/sysv/linux/read.S | 19 -
.../nptl/sysdeps/unix/sysv/linux/sigtimedwait.c | 87 ---
libpthread/nptl/sysdeps/unix/sysv/linux/sigwait.c | 2 -
.../nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c | 87 ---
libpthread/nptl/sysdeps/unix/sysv/linux/sleep.c | 2 -
libpthread/nptl/sysdeps/unix/sysv/linux/waitpid.S | 23 -
libpthread/nptl/sysdeps/unix/sysv/linux/write.S | 19 -
libpthread/nptl/sysdeps/xtensa/Makefile.arch | 2 -
test/nptl/Makefile.in | 8 +-
test/nptl/libatfork.c | 27 -
test/nptl/tst-atfork2.c | 158 ++++-
test/nptl/{tst-detach1.c => tst-atfork2mod.c} | 46 +-
27 files changed, 185 insertions(+), 1316 deletions(-)
delete mode 100644 docs/pthreads_hacking.txt
delete mode 100644 docs/threads.txt
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/close.S
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/open.S
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/pt-sleep.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/read.S
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sigwait.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/sleep.c
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/waitpid.S
delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/write.S
delete mode 100644 test/nptl/libatfork.c
copy test/nptl/{tst-detach1.c => tst-atfork2mod.c} (65%)
diff --git a/docs/pthreads_hacking.txt b/docs/pthreads_hacking.txt
deleted file mode 100644
index 6c23257..0000000
--- a/docs/pthreads_hacking.txt
+++ /dev/null
@@ -1,748 +0,0 @@
-# Run me as a shell script in uclibc lib/*
-
-
-# Dump the list of dynamic symbols from libpthread
-# and compare libpthread's exported symbols of uclibc with glibc
-# (adjust /lib64/libpthread-*.*.so as needed).
-# The resulting diff is suspiciously large.
-# We export a lot of stuff which glibc does not.
-
-readelf -sDW libpthread-*.*.so \
-| grep '^ *[0-9]' \
-| sed 's/^[0-9a-f: ]*[^ ]\( *[A-Z]\)/\1/' \
-| sed 's/ [0-9] / N /' | sed 's/ [0-9][0-9] / N /' | sed 's/ [0-9][0-9][0-9] / N /' \
-| sort -k5 | uniq \
->uclibc.lst
-
-readelf -sDW /lib64/libpthread-*.*.so \
-| grep '^ *[0-9]' \
-| sed 's/^[0-9a-f: ]*[^ ]\( *[A-Z]\)/\1/' \
-| sed 's/ [0-9] / N /' | sed 's/ [0-9][0-9] / N /' | sed 's/ [0-9][0-9][0-9] / N /' \
-| sort -k5 | uniq \
->glibc.lst
-diff -u uclibc.lst glibc.lst >ug.diff
-
-
-# Check which exported symbols from libpthread are never referenced
-# from other libraries. Generally, I'd expect a very few __functions
-# with two underscores to be exported and not used by e.g. libc-X.X.X.so,
-# as these names are supposed to be internal, i.e. external programs
-# usually don't call them. On my system, I got 141 such __functions.
-# Examples:
-# __flockfilelist - NOP function (why do we need it at all?)
-# __pthread_perform_cleanup - called only from within libpthread
-
-echo *-*.*.*.so | xargs -n1 | grep -v libpthread | xargs readelf -aW >full_dump.lst
->uclibc_unrefd.lst
->uclibc_refd.lst
-sed 's/^.* //g' uclibc.lst \
-| while read symbol; do
- if grep -F -- "$symbol" full_dump.lst >/dev/null 2>&1; then
- echo "$symbol" >>uclibc_refd.lst
- else
- echo "$symbol" >>uclibc_unrefd.lst
- fi
-done
-
-exit
-
-
-In case you don't have a glibc system to try it,
-ug.diff from vda's system is below.
-
---- uclibc.lst 2009-03-16 03:07:58.000000000 +0100
-+++ glibc.lst 2009-03-16 03:07:58.000000000 +0100
-@@ -1,188 +1,173 @@
-- NOTYPE GLOBAL DEFAULT ABS __bss_start
-- FUNC GLOBAL DEFAULT N __compare_and_swap
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.2.5
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.2.6
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.2
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.3
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.4
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_2.4
-+ OBJECT GLOBAL DEFAULT ABS GLIBC_PRIVATE
-+ FUNC GLOBAL DEFAULT N _IO_flockfile
-+ FUNC GLOBAL DEFAULT N _IO_ftrylockfile
-+ FUNC GLOBAL DEFAULT N _IO_funlockfile
-+ NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
-+ FUNC GLOBAL DEFAULT UND __clone
-+ FUNC WEAK DEFAULT N __close
-+ FUNC WEAK DEFAULT N __connect
-+ FUNC WEAK DEFAULT UND __cxa_finalize
-+ FUNC GLOBAL DEFAULT UND __endmntent
- FUNC GLOBAL DEFAULT N __errno_location
-- FUNC GLOBAL DEFAULT N __flockfilelist
-- FUNC GLOBAL DEFAULT N __fresetlockfiles
-- FUNC GLOBAL DEFAULT N __funlockfilelist
-+ FUNC WEAK DEFAULT N __fcntl
-+ FUNC GLOBAL DEFAULT N __fork
-+ FUNC GLOBAL DEFAULT UND __fxstat64
-+ FUNC GLOBAL DEFAULT UND __getdelim
-+ FUNC GLOBAL DEFAULT UND __getmntent_r
-+ FUNC GLOBAL DEFAULT UND __getpagesize
-+ FUNC GLOBAL DEFAULT UND __gettimeofday
- FUNC GLOBAL DEFAULT N __h_errno_location
-- FUNC GLOBAL DEFAULT N __linuxthreads_create_event
-- FUNC GLOBAL DEFAULT N __linuxthreads_death_event
-- OBJECT GLOBAL DEFAULT N __linuxthreads_initial_report_events
-- OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_key_2ndlevel_size
-- OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_keys_max
-- OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_sizeof_descr
-- OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_threads_max
-- FUNC GLOBAL DEFAULT N __linuxthreads_reap_event
-- OBJECT GLOBAL DEFAULT N __linuxthreads_version
-- FUNC GLOBAL DEFAULT N __pthread_alt_lock
-- FUNC GLOBAL DEFAULT N __pthread_alt_timedlock
-- FUNC GLOBAL DEFAULT N __pthread_alt_unlock
-- FUNC GLOBAL DEFAULT N __pthread_attr_destroy
-- FUNC GLOBAL DEFAULT N __pthread_attr_getdetachstate
-- FUNC GLOBAL DEFAULT N __pthread_attr_getguardsize
-- FUNC GLOBAL DEFAULT N __pthread_attr_getinheritsched
-- FUNC GLOBAL DEFAULT N __pthread_attr_getschedparam
-- FUNC GLOBAL DEFAULT N __pthread_attr_getschedpolicy
-- FUNC GLOBAL DEFAULT N __pthread_attr_getscope
-- FUNC GLOBAL DEFAULT N __pthread_attr_getstack
-- FUNC GLOBAL DEFAULT N __pthread_attr_getstacksize
-- FUNC GLOBAL DEFAULT N __pthread_attr_init
-- FUNC GLOBAL DEFAULT N __pthread_attr_setdetachstate
-- FUNC GLOBAL DEFAULT N __pthread_attr_setguardsize
-- FUNC GLOBAL DEFAULT N __pthread_attr_setinheritsched
-- FUNC GLOBAL DEFAULT N __pthread_attr_setschedparam
-- FUNC GLOBAL DEFAULT N __pthread_attr_setschedpolicy
-- FUNC GLOBAL DEFAULT N __pthread_attr_setscope
-- FUNC GLOBAL DEFAULT N __pthread_attr_setstack
-- FUNC GLOBAL DEFAULT N __pthread_attr_setstacksize
-- FUNC GLOBAL DEFAULT N __pthread_barrierattr_getpshared
-- FUNC GLOBAL DEFAULT N __pthread_compare_and_swap
-- FUNC GLOBAL DEFAULT N __pthread_cond_broadcast
-- FUNC GLOBAL DEFAULT N __pthread_cond_destroy
-- FUNC GLOBAL DEFAULT N __pthread_cond_init
-- FUNC GLOBAL DEFAULT N __pthread_cond_signal
-- FUNC GLOBAL DEFAULT N __pthread_cond_timedwait
-- FUNC GLOBAL DEFAULT N __pthread_cond_wait
-- FUNC GLOBAL DEFAULT N __pthread_condattr_destroy
-- FUNC GLOBAL DEFAULT N __pthread_condattr_init
-- FUNC GLOBAL DEFAULT N __pthread_create
-- FUNC GLOBAL DEFAULT N __pthread_destroy_specifics
-- FUNC GLOBAL DEFAULT N __pthread_do_exit
-- FUNC GLOBAL DEFAULT N __pthread_equal
-- FUNC GLOBAL DEFAULT N __pthread_exit
-- OBJECT GLOBAL DEFAULT N __pthread_exit_code
-- OBJECT GLOBAL DEFAULT N __pthread_exit_requested
-- FUNC GLOBAL DEFAULT N __pthread_find_self
-- OBJECT GLOBAL DEFAULT N __pthread_functions
-- FUNC GLOBAL DEFAULT N __pthread_getconcurrency
-- FUNC GLOBAL DEFAULT N __pthread_getschedparam
-- FUNC WEAK DEFAULT N __pthread_getspecific
-- OBJECT GLOBAL DEFAULT N __pthread_handles
-- OBJECT GLOBAL DEFAULT N __pthread_handles_num
-- OBJECT GLOBAL DEFAULT N __pthread_has_cas
-- FUNC GLOBAL DEFAULT N __pthread_init_max_stacksize
-- OBJECT GLOBAL DEFAULT N __pthread_initial_thread
-- OBJECT GLOBAL DEFAULT N __pthread_initial_thread_bos
-- FUNC GLOBAL DEFAULT N __pthread_initialize
-- FUNC GLOBAL DEFAULT N __pthread_initialize_manager
-+ FUNC GLOBAL DEFAULT N __libc_allocate_rtsig
-+ FUNC GLOBAL DEFAULT UND __libc_allocate_rtsig_private
-+ FUNC GLOBAL DEFAULT N __libc_current_sigrtmax
-+ FUNC GLOBAL DEFAULT UND __libc_current_sigrtmax_private
-+ FUNC GLOBAL DEFAULT N __libc_current_sigrtmin
-+ FUNC GLOBAL DEFAULT UND __libc_current_sigrtmin_private
-+ FUNC GLOBAL DEFAULT UND __libc_dl_error_tsd
-+ FUNC GLOBAL DEFAULT UND __libc_dlopen_mode
-+ FUNC GLOBAL DEFAULT UND __libc_dlsym
-+ FUNC GLOBAL DEFAULT UND __libc_fatal
-+ FUNC GLOBAL DEFAULT UND __libc_fork
-+ FUNC GLOBAL DEFAULT UND __libc_longjmp
-+ FUNC GLOBAL DEFAULT UND __libc_pthread_init
-+ OBJECT GLOBAL DEFAULT UND __libc_stack_end
-+ FUNC GLOBAL DEFAULT UND __libc_system
-+ FUNC GLOBAL DEFAULT UND __libc_thread_freeres
-+ FUNC WEAK DEFAULT N __lseek
-+ FUNC WEAK DEFAULT N __nanosleep
-+ FUNC WEAK DEFAULT N __open
-+ FUNC WEAK DEFAULT N __open64
-+ FUNC WEAK DEFAULT N __pread64
-+ FUNC GLOBAL DEFAULT N __pthread_cleanup_routine
-+ FUNC GLOBAL DEFAULT N __pthread_clock_gettime
-+ FUNC GLOBAL DEFAULT N __pthread_clock_settime
-+ FUNC GLOBAL DEFAULT N __pthread_getspecific
- FUNC GLOBAL DEFAULT N __pthread_initialize_minimal
-- FUNC GLOBAL DEFAULT N __pthread_internal_tsd_address
-- FUNC GLOBAL DEFAULT N __pthread_internal_tsd_get
-- FUNC GLOBAL DEFAULT N __pthread_internal_tsd_set
-- FUNC WEAK DEFAULT N __pthread_key_create
-- FUNC GLOBAL DEFAULT N __pthread_kill_other_threads_np
-- OBJECT GLOBAL DEFAULT N __pthread_last_event
-- FUNC GLOBAL DEFAULT N __pthread_lock
-- OBJECT GLOBAL DEFAULT N __pthread_main_thread
-- FUNC GLOBAL DEFAULT N __pthread_manager
-- FUNC GLOBAL DEFAULT N __pthread_manager_adjust_prio
-- FUNC GLOBAL DEFAULT N __pthread_manager_event
-- OBJECT GLOBAL DEFAULT N __pthread_manager_reader
-- OBJECT GLOBAL DEFAULT N __pthread_manager_request
-- FUNC GLOBAL DEFAULT N __pthread_manager_sighandler
-- OBJECT GLOBAL DEFAULT N __pthread_manager_thread
-- OBJECT GLOBAL DEFAULT N __pthread_manager_thread_bos
-- OBJECT GLOBAL DEFAULT N __pthread_manager_thread_tos
-- OBJECT GLOBAL DEFAULT N __pthread_max_stacksize
-- FUNC WEAK DEFAULT N __pthread_mutex_destroy
-- FUNC WEAK DEFAULT N __pthread_mutex_init
-- FUNC WEAK DEFAULT N __pthread_mutex_lock
-- FUNC GLOBAL DEFAULT N __pthread_mutex_timedlock
-- FUNC WEAK DEFAULT N __pthread_mutex_trylock
-- FUNC WEAK DEFAULT N __pthread_mutex_unlock
-- FUNC WEAK DEFAULT N __pthread_mutexattr_destroy
-- FUNC GLOBAL DEFAULT N __pthread_mutexattr_getkind_np
-- FUNC GLOBAL DEFAULT N __pthread_mutexattr_getpshared
-- FUNC GLOBAL DEFAULT N __pthread_mutexattr_gettype
-- FUNC WEAK DEFAULT N __pthread_mutexattr_init
-- FUNC GLOBAL DEFAULT N __pthread_mutexattr_setkind_np
-- FUNC GLOBAL DEFAULT N __pthread_mutexattr_setpshared
-- FUNC WEAK DEFAULT N __pthread_mutexattr_settype
-- OBJECT GLOBAL DEFAULT N __pthread_nonstandard_stacks
-- FUNC GLOBAL DEFAULT N __pthread_null_sighandler
-- OBJECT GLOBAL DEFAULT N __pthread_offsetof_descr
-- OBJECT GLOBAL DEFAULT N __pthread_offsetof_pid
-- FUNC WEAK DEFAULT N __pthread_once
-- FUNC GLOBAL DEFAULT N __pthread_once_fork_child
-- FUNC GLOBAL DEFAULT N __pthread_once_fork_parent
-- FUNC GLOBAL DEFAULT N __pthread_once_fork_prepare
-- FUNC GLOBAL DEFAULT N __pthread_perform_cleanup
-- FUNC GLOBAL DEFAULT N __pthread_raise
-- FUNC GLOBAL DEFAULT N __pthread_reset_main_thread
-- FUNC GLOBAL DEFAULT N __pthread_restart_new
-- FUNC WEAK DEFAULT N __pthread_rwlock_destroy
-- FUNC WEAK DEFAULT N __pthread_rwlock_init
-- FUNC WEAK DEFAULT N __pthread_rwlock_rdlock
-- FUNC GLOBAL DEFAULT N __pthread_rwlock_timedrdlock
-- FUNC GLOBAL DEFAULT N __pthread_rwlock_timedwrlock
-- FUNC WEAK DEFAULT N __pthread_rwlock_tryrdlock
-- FUNC WEAK DEFAULT N __pthread_rwlock_trywrlock
-- FUNC WEAK DEFAULT N __pthread_rwlock_unlock
-- FUNC WEAK DEFAULT N __pthread_rwlock_wrlock
-- FUNC GLOBAL DEFAULT N __pthread_rwlockattr_destroy
-- FUNC GLOBAL DEFAULT N __pthread_self
-- FUNC GLOBAL DEFAULT N __pthread_setcancelstate
-- FUNC GLOBAL DEFAULT N __pthread_setcanceltype
-- FUNC GLOBAL DEFAULT N __pthread_setconcurrency
-- FUNC GLOBAL DEFAULT N __pthread_setschedparam
-- FUNC WEAK DEFAULT N __pthread_setspecific
-- OBJECT GLOBAL DEFAULT N __pthread_sig_cancel
-- OBJECT GLOBAL DEFAULT N __pthread_sig_debug
-- OBJECT GLOBAL DEFAULT N __pthread_sig_restart
-- FUNC GLOBAL DEFAULT N __pthread_sigaction
-- FUNC GLOBAL DEFAULT N __pthread_sighandler
-- FUNC GLOBAL DEFAULT N __pthread_sighandler_rt
-- FUNC GLOBAL DEFAULT N __pthread_sigwait
-- OBJECT GLOBAL DEFAULT N __pthread_sizeof_handle
-- OBJECT GLOBAL DEFAULT N __pthread_smp_kernel
-- FUNC GLOBAL DEFAULT N __pthread_spin_destroy
-- FUNC GLOBAL DEFAULT N __pthread_spin_init
-- FUNC GLOBAL DEFAULT N __pthread_spin_lock
-- FUNC GLOBAL DEFAULT N __pthread_spin_trylock
-- FUNC GLOBAL DEFAULT N __pthread_spin_unlock
-- FUNC GLOBAL DEFAULT N __pthread_thread_self
-- OBJECT GLOBAL DEFAULT N __pthread_threads_debug
-- OBJECT GLOBAL DEFAULT N __pthread_threads_events
-- OBJECT GLOBAL DEFAULT N __pthread_threads_max
-- FUNC GLOBAL DEFAULT N __pthread_timedsuspend_new
-- FUNC GLOBAL DEFAULT N __pthread_unlock
-- FUNC GLOBAL DEFAULT N __pthread_wait_for_restart_signal
-- FUNC GLOBAL DEFAULT N __register_atfork
-+ FUNC GLOBAL DEFAULT N __pthread_key_create
-+ FUNC GLOBAL DEFAULT N __pthread_mutex_destroy
-+ FUNC GLOBAL DEFAULT N __pthread_mutex_init
-+ FUNC GLOBAL DEFAULT N __pthread_mutex_lock
-+ FUNC GLOBAL DEFAULT N __pthread_mutex_trylock
-+ FUNC GLOBAL DEFAULT N __pthread_mutex_unlock
-+ FUNC GLOBAL DEFAULT N __pthread_mutexattr_destroy
-+ FUNC GLOBAL DEFAULT N __pthread_mutexattr_init
-+ FUNC GLOBAL DEFAULT N __pthread_mutexattr_settype
-+ FUNC GLOBAL DEFAULT N __pthread_once
-+ FUNC GLOBAL DEFAULT N __pthread_register_cancel
-+ FUNC GLOBAL DEFAULT N __pthread_register_cancel_defer
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_destroy
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_init
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_rdlock
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_tryrdlock
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_trywrlock
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_unlock
-+ FUNC GLOBAL DEFAULT N __pthread_rwlock_wrlock
-+ FUNC GLOBAL DEFAULT N __pthread_setspecific
-+ FUNC GLOBAL DEFAULT N __pthread_unregister_cancel
-+ FUNC GLOBAL DEFAULT N __pthread_unregister_cancel_restore
-+ FUNC GLOBAL DEFAULT N __pthread_unwind
-+ FUNC GLOBAL DEFAULT N __pthread_unwind_next
-+ FUNC WEAK DEFAULT N __pwrite64
-+ FUNC WEAK DEFAULT N __read
-+ FUNC GLOBAL DEFAULT UND __register_atfork
-+ FUNC GLOBAL DEFAULT N __res_state
-+ TLS GLOBAL DEFAULT UND __resp
-+ FUNC GLOBAL DEFAULT UND __sched_getparam
-+ FUNC GLOBAL DEFAULT UND __sched_getscheduler
-+ FUNC GLOBAL DEFAULT UND __sched_setscheduler
-+ FUNC WEAK DEFAULT N __send
-+ FUNC GLOBAL DEFAULT UND __setmntent
- FUNC GLOBAL DEFAULT N __sigaction
-- OBJECT GLOBAL DEFAULT N __sighandler
-- NOTYPE GLOBAL DEFAULT ABS _edata
-- NOTYPE GLOBAL DEFAULT ABS _end
-- FUNC GLOBAL DEFAULT N _fini
-- FUNC GLOBAL DEFAULT N _init
-+ FUNC GLOBAL DEFAULT UND __statfs
-+ FUNC GLOBAL DEFAULT UND __sysconf
-+ FUNC GLOBAL DEFAULT UND __tls_get_addr
-+ OBJECT GLOBAL DEFAULT UND __vdso_clock_gettime
-+ FUNC GLOBAL DEFAULT N __vfork
-+ FUNC WEAK DEFAULT N __wait
-+ FUNC WEAK DEFAULT N __write
-+ FUNC GLOBAL DEFAULT UND _dl_allocate_tls
-+ FUNC GLOBAL DEFAULT UND _dl_allocate_tls_init
-+ FUNC GLOBAL DEFAULT UND _dl_deallocate_tls
-+ FUNC GLOBAL DEFAULT UND _dl_get_tls_static_info
-+ FUNC GLOBAL DEFAULT UND _dl_make_stack_executable
-+ FUNC GLOBAL DEFAULT UND _exit
- FUNC GLOBAL DEFAULT N _pthread_cleanup_pop
- FUNC GLOBAL DEFAULT N _pthread_cleanup_pop_restore
- FUNC GLOBAL DEFAULT N _pthread_cleanup_push
- FUNC GLOBAL DEFAULT N _pthread_cleanup_push_defer
-- FUNC GLOBAL DEFAULT N compare_and_swap_is_available
-- FUNC GLOBAL DEFAULT N get_eflags
-+ OBJECT GLOBAL DEFAULT UND _rtld_global
-+ FUNC GLOBAL DEFAULT UND _setjmp
-+ FUNC GLOBAL DEFAULT UND abort
-+ FUNC WEAK DEFAULT N accept
-+ FUNC GLOBAL DEFAULT UND calloc
-+ FUNC WEAK DEFAULT N close
-+ FUNC WEAK DEFAULT N connect
-+ TLS GLOBAL DEFAULT UND errno
-+ FUNC GLOBAL DEFAULT UND exit
-+ FUNC GLOBAL DEFAULT UND fclose
-+ FUNC WEAK DEFAULT N fcntl
-+ FUNC WEAK DEFAULT N flockfile
-+ FUNC GLOBAL DEFAULT UND fopen
-+ FUNC GLOBAL DEFAULT N fork
-+ FUNC GLOBAL DEFAULT UND free
-+ FUNC WEAK DEFAULT N fsync
-+ FUNC WEAK DEFAULT N ftrylockfile
-+ FUNC WEAK DEFAULT N funlockfile
-+ FUNC GLOBAL DEFAULT UND getrlimit
-+ TLS GLOBAL DEFAULT UND h_errno
-+ FUNC GLOBAL DEFAULT UND link
- FUNC GLOBAL DEFAULT N longjmp
-+ FUNC WEAK DEFAULT N lseek
-+ FUNC WEAK DEFAULT N lseek64
-+ FUNC GLOBAL DEFAULT UND malloc
-+ FUNC GLOBAL DEFAULT UND memcpy
-+ FUNC GLOBAL DEFAULT UND mempcpy
-+ FUNC GLOBAL DEFAULT UND memset
-+ FUNC GLOBAL DEFAULT UND mktemp
-+ FUNC GLOBAL DEFAULT UND mmap
-+ FUNC GLOBAL DEFAULT UND mprotect
-+ FUNC WEAK DEFAULT N msync
-+ FUNC GLOBAL DEFAULT UND munmap
-+ FUNC WEAK DEFAULT N nanosleep
-+ FUNC WEAK DEFAULT N open
-+ FUNC WEAK DEFAULT N open64
-+ FUNC WEAK DEFAULT N pause
-+ FUNC WEAK DEFAULT N pread
-+ FUNC WEAK DEFAULT N pread64
-+ FUNC GLOBAL DEFAULT N pthread_atfork
- FUNC GLOBAL DEFAULT N pthread_attr_destroy
-+ FUNC GLOBAL DEFAULT N pthread_attr_getaffinity_np
- FUNC GLOBAL DEFAULT N pthread_attr_getdetachstate
-- FUNC WEAK DEFAULT N pthread_attr_getguardsize
-+ FUNC GLOBAL DEFAULT N pthread_attr_getguardsize
- FUNC GLOBAL DEFAULT N pthread_attr_getinheritsched
- FUNC GLOBAL DEFAULT N pthread_attr_getschedparam
- FUNC GLOBAL DEFAULT N pthread_attr_getschedpolicy
- FUNC GLOBAL DEFAULT N pthread_attr_getscope
-- FUNC WEAK DEFAULT N pthread_attr_getstack
-- FUNC WEAK DEFAULT N pthread_attr_getstacksize
-+ FUNC GLOBAL DEFAULT N pthread_attr_getstack
-+ FUNC GLOBAL DEFAULT N pthread_attr_getstackaddr
-+ FUNC GLOBAL DEFAULT N pthread_attr_getstacksize
- FUNC GLOBAL DEFAULT N pthread_attr_init
-+ FUNC GLOBAL DEFAULT N pthread_attr_setaffinity_np
- FUNC GLOBAL DEFAULT N pthread_attr_setdetachstate
-- FUNC WEAK DEFAULT N pthread_attr_setguardsize
-+ FUNC GLOBAL DEFAULT N pthread_attr_setguardsize
- FUNC GLOBAL DEFAULT N pthread_attr_setinheritsched
- FUNC GLOBAL DEFAULT N pthread_attr_setschedparam
- FUNC GLOBAL DEFAULT N pthread_attr_setschedpolicy
- FUNC GLOBAL DEFAULT N pthread_attr_setscope
-- FUNC WEAK DEFAULT N pthread_attr_setstack
-- FUNC WEAK DEFAULT N pthread_attr_setstacksize
-+ FUNC GLOBAL DEFAULT N pthread_attr_setstack
-+ FUNC GLOBAL DEFAULT N pthread_attr_setstackaddr
-+ FUNC GLOBAL DEFAULT N pthread_attr_setstacksize
- FUNC GLOBAL DEFAULT N pthread_barrier_destroy
- FUNC GLOBAL DEFAULT N pthread_barrier_init
- FUNC GLOBAL DEFAULT N pthread_barrier_wait
- FUNC GLOBAL DEFAULT N pthread_barrierattr_destroy
-+ FUNC GLOBAL DEFAULT N pthread_barrierattr_getpshared
- FUNC GLOBAL DEFAULT N pthread_barrierattr_init
- FUNC GLOBAL DEFAULT N pthread_barrierattr_setpshared
- FUNC GLOBAL DEFAULT N pthread_cancel
-@@ -193,36 +178,49 @@
- FUNC GLOBAL DEFAULT N pthread_cond_timedwait
- FUNC GLOBAL DEFAULT N pthread_cond_wait
- FUNC GLOBAL DEFAULT N pthread_condattr_destroy
-+ FUNC GLOBAL DEFAULT N pthread_condattr_getclock
- FUNC GLOBAL DEFAULT N pthread_condattr_getpshared
- FUNC GLOBAL DEFAULT N pthread_condattr_init
-+ FUNC GLOBAL DEFAULT N pthread_condattr_setclock
- FUNC GLOBAL DEFAULT N pthread_condattr_setpshared
- FUNC GLOBAL DEFAULT N pthread_create
- FUNC GLOBAL DEFAULT N pthread_detach
- FUNC GLOBAL DEFAULT N pthread_equal
- FUNC GLOBAL DEFAULT N pthread_exit
-+ FUNC GLOBAL DEFAULT N pthread_getaffinity_np
- FUNC GLOBAL DEFAULT N pthread_getattr_np
-- FUNC WEAK DEFAULT N pthread_getconcurrency
-+ FUNC GLOBAL DEFAULT N pthread_getconcurrency
-+ FUNC GLOBAL DEFAULT N pthread_getcpuclockid
- FUNC GLOBAL DEFAULT N pthread_getschedparam
- FUNC GLOBAL DEFAULT N pthread_getspecific
- FUNC GLOBAL DEFAULT N pthread_join
- FUNC GLOBAL DEFAULT N pthread_key_create
- FUNC GLOBAL DEFAULT N pthread_key_delete
- FUNC GLOBAL DEFAULT N pthread_kill
-- FUNC WEAK DEFAULT N pthread_kill_other_threads_np
-+ FUNC GLOBAL DEFAULT N pthread_kill_other_threads_np
-+ FUNC GLOBAL DEFAULT N pthread_mutex_consistent_np
- FUNC GLOBAL DEFAULT N pthread_mutex_destroy
-+ FUNC GLOBAL DEFAULT N pthread_mutex_getprioceiling
- FUNC GLOBAL DEFAULT N pthread_mutex_init
- FUNC GLOBAL DEFAULT N pthread_mutex_lock
-+ FUNC GLOBAL DEFAULT N pthread_mutex_setprioceiling
- FUNC GLOBAL DEFAULT N pthread_mutex_timedlock
- FUNC GLOBAL DEFAULT N pthread_mutex_trylock
- FUNC GLOBAL DEFAULT N pthread_mutex_unlock
- FUNC GLOBAL DEFAULT N pthread_mutexattr_destroy
- FUNC WEAK DEFAULT N pthread_mutexattr_getkind_np
-- FUNC WEAK DEFAULT N pthread_mutexattr_getpshared
-- FUNC WEAK DEFAULT N pthread_mutexattr_gettype
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_getprioceiling
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_getprotocol
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_getpshared
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_getrobust_np
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_gettype
- FUNC GLOBAL DEFAULT N pthread_mutexattr_init
- FUNC WEAK DEFAULT N pthread_mutexattr_setkind_np
-- FUNC WEAK DEFAULT N pthread_mutexattr_setpshared
-- FUNC WEAK DEFAULT N pthread_mutexattr_settype
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_setprioceiling
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_setprotocol
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_setpshared
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_setrobust_np
-+ FUNC GLOBAL DEFAULT N pthread_mutexattr_settype
- FUNC GLOBAL DEFAULT N pthread_once
- FUNC GLOBAL DEFAULT N pthread_rwlock_destroy
- FUNC GLOBAL DEFAULT N pthread_rwlock_init
-@@ -240,27 +238,35 @@
- FUNC GLOBAL DEFAULT N pthread_rwlockattr_setkind_np
- FUNC GLOBAL DEFAULT N pthread_rwlockattr_setpshared
- FUNC GLOBAL DEFAULT N pthread_self
-+ FUNC GLOBAL DEFAULT N pthread_setaffinity_np
- FUNC GLOBAL DEFAULT N pthread_setcancelstate
- FUNC GLOBAL DEFAULT N pthread_setcanceltype
-- FUNC WEAK DEFAULT N pthread_setconcurrency
-- FUNC GLOBAL DEFAULT N pthread_setegid_np
-- FUNC GLOBAL DEFAULT N pthread_seteuid_np
-- FUNC GLOBAL DEFAULT N pthread_setgid_np
-- FUNC GLOBAL DEFAULT N pthread_setregid_np
-- FUNC GLOBAL DEFAULT N pthread_setresgid_np
-- FUNC GLOBAL DEFAULT N pthread_setresuid_np
-- FUNC GLOBAL DEFAULT N pthread_setreuid_np
-+ FUNC GLOBAL DEFAULT N pthread_setconcurrency
- FUNC GLOBAL DEFAULT N pthread_setschedparam
-+ FUNC GLOBAL DEFAULT N pthread_setschedprio
- FUNC GLOBAL DEFAULT N pthread_setspecific
-- FUNC GLOBAL DEFAULT N pthread_setuid_np
- FUNC GLOBAL DEFAULT N pthread_sigmask
-- FUNC WEAK DEFAULT N pthread_spin_destroy
-- FUNC WEAK DEFAULT N pthread_spin_init
-- FUNC WEAK DEFAULT N pthread_spin_lock
-- FUNC WEAK DEFAULT N pthread_spin_trylock
-- FUNC WEAK DEFAULT N pthread_spin_unlock
-+ FUNC GLOBAL DEFAULT N pthread_spin_destroy
-+ FUNC GLOBAL DEFAULT N pthread_spin_init
-+ FUNC GLOBAL DEFAULT N pthread_spin_lock
-+ FUNC GLOBAL DEFAULT N pthread_spin_trylock
-+ FUNC GLOBAL DEFAULT N pthread_spin_unlock
- FUNC GLOBAL DEFAULT N pthread_testcancel
-+ FUNC GLOBAL DEFAULT N pthread_timedjoin_np
-+ FUNC GLOBAL DEFAULT N pthread_tryjoin_np
-+ FUNC GLOBAL DEFAULT N pthread_yield
-+ FUNC WEAK DEFAULT N pwrite
-+ FUNC WEAK DEFAULT N pwrite64
- FUNC GLOBAL DEFAULT N raise
-+ FUNC WEAK DEFAULT N read
-+ FUNC GLOBAL DEFAULT UND realloc
-+ FUNC WEAK DEFAULT N recv
-+ FUNC WEAK DEFAULT N recvfrom
-+ FUNC WEAK DEFAULT N recvmsg
-+ FUNC GLOBAL DEFAULT UND sched_get_priority_max
-+ FUNC GLOBAL DEFAULT UND sched_get_priority_min
-+ FUNC GLOBAL DEFAULT UND sched_setparam
-+ FUNC GLOBAL DEFAULT UND sched_yield
- FUNC GLOBAL DEFAULT N sem_close
- FUNC GLOBAL DEFAULT N sem_destroy
- FUNC GLOBAL DEFAULT N sem_getvalue
-@@ -271,8 +277,23 @@
- FUNC GLOBAL DEFAULT N sem_trywait
- FUNC GLOBAL DEFAULT N sem_unlink
- FUNC GLOBAL DEFAULT N sem_wait
-- FUNC GLOBAL DEFAULT N set_eflags
-- FUNC GLOBAL DEFAULT N sigaction
-- FUNC GLOBAL DEFAULT N siglongjmp
-- FUNC GLOBAL DEFAULT N sigwait
-- FUNC GLOBAL DEFAULT N testandset
-+ FUNC WEAK DEFAULT N send
-+ FUNC WEAK DEFAULT N sendmsg
-+ FUNC WEAK DEFAULT N sendto
-+ FUNC WEAK DEFAULT N sigaction
-+ FUNC WEAK DEFAULT N siglongjmp
-+ FUNC WEAK DEFAULT N sigwait
-+ FUNC GLOBAL DEFAULT UND sscanf
-+ FUNC GLOBAL DEFAULT UND strcmp
-+ FUNC GLOBAL DEFAULT UND strlen
-+ FUNC GLOBAL DEFAULT N system
-+ FUNC WEAK DEFAULT N tcdrain
-+ FUNC GLOBAL DEFAULT UND tdelete
-+ FUNC GLOBAL DEFAULT UND tfind
-+ FUNC GLOBAL DEFAULT UND tsearch
-+ FUNC GLOBAL DEFAULT UND twalk
-+ FUNC GLOBAL DEFAULT UND unlink
-+ FUNC WEAK DEFAULT N vfork
-+ FUNC WEAK DEFAULT N wait
-+ FUNC WEAK DEFAULT N waitpid
-+ FUNC WEAK DEFAULT N write
-
-
-And uclibc_unrefd.lst is:
-
-__compare_and_swap
-__flockfilelist
-__fresetlockfiles
-__funlockfilelist
-__linuxthreads_create_event
-__linuxthreads_death_event
-__linuxthreads_initial_report_events
-__linuxthreads_pthread_key_2ndlevel_size
-__linuxthreads_pthread_keys_max
-__linuxthreads_pthread_sizeof_descr
-__linuxthreads_pthread_threads_max
-__linuxthreads_reap_event
-__linuxthreads_version
-__pthread_alt_lock
-__pthread_alt_timedlock
-__pthread_alt_unlock
-__pthread_attr_destroy
-__pthread_attr_getdetachstate
-__pthread_attr_getguardsize
-__pthread_attr_getinheritsched
-__pthread_attr_getschedparam
-__pthread_attr_getschedpolicy
-__pthread_attr_getscope
-__pthread_attr_getstack
-__pthread_attr_getstacksize
-__pthread_attr_init
-__pthread_attr_setdetachstate
-__pthread_attr_setguardsize
-__pthread_attr_setinheritsched
-__pthread_attr_setschedparam
-__pthread_attr_setschedpolicy
-__pthread_attr_setscope
-__pthread_attr_setstack
-__pthread_attr_setstacksize
-__pthread_barrierattr_getpshared
-__pthread_compare_and_swap
-__pthread_cond_broadcast
-__pthread_cond_destroy
-__pthread_cond_init
-__pthread_cond_signal
-__pthread_cond_timedwait
-__pthread_cond_wait
-__pthread_condattr_destroy
-__pthread_condattr_init
-__pthread_create
-__pthread_destroy_specifics
-__pthread_do_exit
-__pthread_equal
-__pthread_exit_code
-__pthread_exit_requested
-__pthread_find_self
-__pthread_functions
-__pthread_getconcurrency
-__pthread_getschedparam
-__pthread_getspecific
-__pthread_handles
-__pthread_handles_num
-__pthread_has_cas
-__pthread_init_max_stacksize
-__pthread_initial_thread
-__pthread_initial_thread_bos
-__pthread_initialize_manager
-__pthread_internal_tsd_address
-__pthread_internal_tsd_get
-__pthread_internal_tsd_set
-__pthread_key_create
-__pthread_kill_other_threads_np
-__pthread_last_event
-__pthread_lock
-__pthread_main_thread
-__pthread_manager
-__pthread_manager_adjust_prio
-__pthread_manager_event
-__pthread_manager_reader
-__pthread_manager_request
-__pthread_manager_sighandler
-__pthread_manager_thread
-__pthread_manager_thread_bos
-__pthread_manager_thread_tos
-__pthread_max_stacksize
-__pthread_mutex_destroy
-__pthread_mutex_timedlock
-__pthread_mutexattr_destroy
-__pthread_mutexattr_getkind_np
-__pthread_mutexattr_getpshared
-__pthread_mutexattr_gettype
-__pthread_mutexattr_init
-__pthread_mutexattr_setkind_np
-__pthread_mutexattr_setpshared
-__pthread_mutexattr_settype
-__pthread_nonstandard_stacks
-__pthread_null_sighandler
-__pthread_offsetof_descr
-__pthread_offsetof_pid
-__pthread_once_fork_child
-__pthread_once_fork_parent
-__pthread_once_fork_prepare
-__pthread_perform_cleanup
-__pthread_raise
-__pthread_reset_main_thread
-__pthread_restart_new
-__pthread_rwlock_destroy
-__pthread_rwlock_init
-__pthread_rwlock_rdlock
-__pthread_rwlock_timedrdlock
-__pthread_rwlock_timedwrlock
-__pthread_rwlock_tryrdlock
-__pthread_rwlock_trywrlock
-__pthread_rwlock_unlock
-__pthread_rwlock_wrlock
-__pthread_rwlockattr_destroy
-__pthread_self
-__pthread_setcancelstate
-__pthread_setcanceltype
-__pthread_setconcurrency
-__pthread_setschedparam
-__pthread_setspecific
-__pthread_sig_cancel
-__pthread_sig_debug
-__pthread_sig_restart
-__pthread_sigaction
-__pthread_sighandler
-__pthread_sighandler_rt
-__pthread_sigwait
-__pthread_sizeof_handle
-__pthread_smp_kernel
-__pthread_spin_destroy
-__pthread_spin_init
-__pthread_spin_lock
-__pthread_spin_trylock
-__pthread_spin_unlock
-__pthread_thread_self
-__pthread_threads_debug
-__pthread_threads_events
-__pthread_threads_max
-__pthread_timedsuspend_new
-__pthread_unlock
-__pthread_wait_for_restart_signal
-__register_atfork
-__sigaction
-__sighandler
-compare_and_swap_is_available
-get_eflags
-pthread_attr_getguardsize
-pthread_attr_getstack
-pthread_attr_getstacksize
-pthread_attr_setguardsize
-pthread_attr_setstack
-pthread_attr_setstacksize
-pthread_barrier_destroy
-pthread_barrier_init
-pthread_barrier_wait
-pthread_barrierattr_destroy
-pthread_barrierattr_init
-pthread_barrierattr_setpshared
-pthread_cancel
-pthread_condattr_getpshared
-pthread_condattr_setpshared
-pthread_create
-pthread_detach
-pthread_getattr_np
-pthread_getconcurrency
-pthread_getspecific
-pthread_join
-pthread_key_create
-pthread_key_delete
-pthread_kill
-pthread_kill_other_threads_np
-pthread_mutex_timedlock
-pthread_mutexattr_destroy
-pthread_mutexattr_getkind_np
-pthread_mutexattr_getpshared
-pthread_mutexattr_gettype
-pthread_mutexattr_init
-pthread_mutexattr_setkind_np
-pthread_mutexattr_setpshared
-pthread_mutexattr_settype
-pthread_rwlock_destroy
-pthread_rwlock_init
-pthread_rwlock_rdlock
-pthread_rwlock_timedrdlock
-pthread_rwlock_timedwrlock
-pthread_rwlock_tryrdlock
-pthread_rwlock_trywrlock
-pthread_rwlock_unlock
-pthread_rwlock_wrlock
-pthread_rwlockattr_destroy
-pthread_rwlockattr_getkind_np
-pthread_rwlockattr_getpshared
-pthread_rwlockattr_init
-pthread_rwlockattr_setkind_np
-pthread_rwlockattr_setpshared
-pthread_setconcurrency
-pthread_setegid_np
-pthread_seteuid_np
-pthread_setgid_np
-pthread_setregid_np
-pthread_setresgid_np
-pthread_setresuid_np
-pthread_setreuid_np
-pthread_setspecific
-pthread_setuid_np
-pthread_sigmask
-pthread_spin_destroy
-pthread_spin_init
-pthread_spin_lock
-pthread_spin_trylock
-pthread_spin_unlock
-pthread_testcancel
-sem_close
-sem_destroy
-sem_getvalue
-sem_init
-sem_open
-sem_post
-sem_timedwait
-sem_trywait
-sem_unlink
-sem_wait
-set_eflags
-testandset
diff --git a/docs/threads.txt b/docs/threads.txt
deleted file mode 100644
index 182f1be..0000000
--- a/docs/threads.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-uClibc thread-safety analysis
-
-Things that are still known to be needed for thread safety:
-
- none
-
-
-
-
-Things that might be nice, but are not required:
-
- getnetent_r <desired, but not required for SuSv3>
- gethostent_r <desired, but not required for SuSv3>
- getprotoent_r <desired, but not required for SuSv3>
- getnetbyname_r <desired, but not required for SuSv3>
- getnetbyaddr_r <desired, but not required for SuSv3>
-
-
-
-
-
-Functions that use static data and may still need locking:
-
-
- --------------------------------------------------------------------
-
- libc/inet/rpc/rpc_thread.c:
-
- __rpc_thread_variables is currently disabled, since thread
- local storage seems to not be correctly specified as
- weak functions.
-
- --------------------------------------------------------------------
-
- unistd/getpass.c:
-
- static char buf[PWD_BUFFER_SIZE];
-
- getpass <fix required> <---
-
- NOTE: This function returns a pointer to a static data structure.
- This seems like it requires an _r version of this function. Glibc
- does the same thing. Oops! So much for thread-safe glibc!
-
- --------------------------------------------------------------------
-
- unistd/sysconf.c:
-
- static long int ret_vals[_UCLIBC_SYSCONF_NUM_VALID_ARGS];
-
- find_or_add_in_table <fix required?> <---
- main <fix required?> <---
-
- NOTE: I'm not sure if this needs to be made reentrant...
-
- --------------------------------------------------------------------
diff --git a/libc/sysdeps/linux/common/bits/kernel-features.h b/libc/sysdeps/linux/common/bits/kernel-features.h
index 708bb49..0b36320 100644
--- a/libc/sysdeps/linux/common/bits/kernel-features.h
+++ b/libc/sysdeps/linux/common/bits/kernel-features.h
@@ -382,18 +382,6 @@
# define __ASSUME_CORRECT_SI_PID 1
#endif
-/* The tgkill syscall was instroduced for i386 in 2.5.75. For Alpha
- it was introduced in 2.6.0-test1 which unfortunately cannot be
- distinguished from 2.6.0. On x86-64, ppc, and ppc64 it was
- introduced in 2.6.0-test3. */
-#if (__LINUX_KERNEL_VERSION >= 132427 && defined __i386__) \
- || (__LINUX_KERNEL_VERSION >= 132609 && defined __alpha__) \
- || (__LINUX_KERNEL_VERSION >= 132609 && defined __x86_64__) \
- || (__LINUX_KERNEL_VERSION >= 132609 && defined __powerpc__) \
- || (__LINUX_KERNEL_VERSION >= 132609 && defined __sh__)
-# define __ASSUME_TGKILL 1
-#endif
-
/* The utimes syscall has been available for some architectures
forever. For x86 it was introduced after 2.5.75, for x86-64,
ppc, and ppc64 it was introduced in 2.6.0-test3. */
diff --git a/libpthread/linuxthreads/signals.c b/libpthread/linuxthreads/signals.c
index d8dbc78..0c0f2b6 100644
--- a/libpthread/linuxthreads/signals.c
+++ b/libpthread/linuxthreads/signals.c
@@ -17,6 +17,7 @@
#include <errno.h>
#include <signal.h>
#include <stdio.h>
+#include <sys/syscall.h>
#include "pthread.h"
#include "internals.h"
#include "spinlock.h"
@@ -233,14 +234,13 @@ int sigwait(const sigset_t * set, int * sig)
/* Redefine raise() to send signal to calling thread only,
as per POSIX 1003.1c */
libpthread_hidden_proto(raise)
-int raise (int sig)
-{
- int retcode = pthread_kill(pthread_self(), sig);
- if (retcode == 0)
- return 0;
- else {
- errno = retcode;
- return -1;
- }
+int raise (int sig) {
+ int ret;
+ pid_t tid;
+
+ tid = INLINE_SYSCALL(gettid, 0);
+ ret = INLINE_SYSCALL(tkill, 2, tid, sig);
+
+ return ret;
}
libpthread_hidden_def(raise)
diff --git a/libpthread/nptl/allocatestack.c b/libpthread/nptl/allocatestack.c
index bf99252..39ec857 100644
--- a/libpthread/nptl/allocatestack.c
+++ b/libpthread/nptl/allocatestack.c
@@ -996,18 +996,8 @@ setxid_signal_thread (struct xid_command *cmdp, struct pthread *t)
int val;
INTERNAL_SYSCALL_DECL (err);
-#if defined (__ASSUME_TGKILL) && __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
t->tid, SIGSETXID);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
- t->tid, SIGSETXID);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, t->tid, SIGSETXID);
-#endif
/* If this failed, it must have had not started yet or else exited. */
if (!INTERNAL_SYSCALL_ERROR_P (val, err))
diff --git a/libpthread/nptl/pthread_cancel.c b/libpthread/nptl/pthread_cancel.c
index a8ba3c8..ee9a320 100644
--- a/libpthread/nptl/pthread_cancel.c
+++ b/libpthread/nptl/pthread_cancel.c
@@ -75,20 +75,9 @@ pthread_cancel (
a signal handler. But this is no allowed, pthread_cancel
is not guaranteed to be async-safe. */
int val;
-#if defined(__ASSUME_TGKILL) && __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3,
THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
SIGCANCEL);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3,
- THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
- SIGCANCEL);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, pd->tid, SIGCANCEL);
-#endif
if (INTERNAL_SYSCALL_ERROR_P (val, err))
result = INTERNAL_SYSCALL_ERRNO (val, err);
diff --git a/libpthread/nptl/sysdeps/pthread/createthread.c b/libpthread/nptl/sysdeps/pthread/createthread.c
index 74146ae..ebfee16 100644
--- a/libpthread/nptl/sysdeps/pthread/createthread.c
+++ b/libpthread/nptl/sysdeps/pthread/createthread.c
@@ -105,13 +105,9 @@ do_clone (struct pthread *pd, const struct pthread_attr *attr,
send it the cancellation signal. */
INTERNAL_SYSCALL_DECL (err2);
err_out:
-#if defined (__ASSUME_TGKILL) && __ASSUME_TGKILL
(void) INTERNAL_SYSCALL (tgkill, err2, 3,
THREAD_GETMEM (THREAD_SELF, pid),
pd->tid, SIGCANCEL);
-#else
- (void) INTERNAL_SYSCALL (tkill, err2, 2, pd->tid, SIGCANCEL);
-#endif
return (INTERNAL_SYSCALL_ERROR_P (res, err)
? INTERNAL_SYSCALL_ERRNO (res, err)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
index 4e14773..57481fd 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
@@ -65,21 +65,18 @@ libpthread_linux_CSRC += pthread_attr_getaffinity.c pthread_attr_setaffinity.c \
pt-tempname.c \
pthread_sigqueue.c \
lowlevellock.c lowlevelrobustlock.c
-# pt-sleep.c pt-fork.c sigtimedwait.c sigwaitinfo.c sigwait.c
libpthread_linux_SSRC := #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-write.S
libc_linux_CSRC += libc_pthread_init.c libc_multiple_threads.c \
register-atfork.c unregister-atfork.c getpid.c \
raise.c jmp-unwind.c libc-lowlevellock.c
- #sleep.c
librt_linux_CSRC += mq_notify.c timer_create.c timer_delete.c \
timer_getoverr.c timer_gettime.c timer_routines.c \
timer_settime.c
-# These provide both a cancellable and a not cancellable implementation
-libc_linux_SSRC = #close.S open.S write.S read.S waitpid.S
+libc_linux_SSRC =
libc_linux_SSRC := $(filter-out $(libc_linux_arch_SSRC-OMIT),$(libc_linux_SSRC))
libpthread_linux_CSRC := $(filter-out $(notdir $(libpthread_linux_arch_OBJS:.o=.c)),$(libpthread_linux_CSRC))
@@ -98,8 +95,6 @@ endif
libpthread-a-y += $(if $(DOPIC),$(libpthread_linux_OBJS:.o=.os),$(libpthread_linux_OBJS))
libpthread-so-y += $(libpthread_linux_OBJS:.o=.oS)
-libpthread-so-y += $(libpthread_linux_OUT)/pt-raise.oS
-#libpthread-nomulti-y += $(libpthread_linux_OBJS)
libc_linux_OBJS := $(libc_linux_arch_OBJS)
libc_linux_OBJS += $(patsubst %.c,$(libpthread_linux_OUT)/%.o,$(libc_linux_CSRC))
@@ -110,7 +105,6 @@ endif
libc-static-y += $(libc_linux_OBJS)
libc-shared-y += $(libc_linux_OBJS:.o=.oS)
-#libc-nomulti-y += $(libc_linux_OBJS)
librt_linux_OBJS := $(librt_linux_arch_OBJS)
librt_linux_OBJS += $(patsubst %.c,$(libpthread_linux_OUT)/%.o,$(librt_linux_CSRC))
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/close.S b/libpthread/nptl/sysdeps/unix/sysv/linux/close.S
deleted file mode 100644
index cf50a1e..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/close.S
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <sysdep-cancel.h>
-
-/*
-extern int __close_nocancel (int) attribute_hidden;
-*/
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-
-PSEUDO (__libc_close, close, 1)
-ret
-PSEUDO_END(__libc_close)
-
-libc_hidden_def (__close_nocancel)
-libc_hidden_def (__libc_close)
-weak_alias (__libc_close, __close)
-libc_hidden_weak (__close)
-weak_alias (__libc_close, close)
-libc_hidden_weak (close)
-
-
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/open.S b/libpthread/nptl/sysdeps/unix/sysv/linux/open.S
deleted file mode 100644
index 486686a..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/open.S
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <sysdep-cancel.h>
-
-/*
-extern int __open_nocancel (const char *, int, ...) attribute_hidden;
-*/
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-PSEUDO (__libc_open, open, 3)
-ret
-PSEUDO_END(__libc_open)
-
-libc_hidden_def (__open_nocancel)
-libc_hidden_def (__libc_open)
-weak_alias (__libc_open, __open)
-libc_hidden_weak (__open)
-weak_alias (__libc_open, open)
-libc_hidden_weak (open)
-
-
-
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
deleted file mode 100644
index 69839cb..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <unistd.h>
-
-#if 0
-static pid_t
-__fork (void)
-{
- return __libc_fork ();
-}
-strong_alias (__fork, fork)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c
deleted file mode 100644
index 6784b1b..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <signal.h>
-#include <sysdep.h>
-#include <tls.h>
-#include <bits/kernel-features.h>
-
-
-int
-raise (
- int sig)
-{
-#if (defined(__ASSUME_TGKILL) && __ASSUME_TGKILL) || defined __NR_tgkill
- /* raise is an async-safe function. It could be called while the
- fork function temporarily invalidated the PID field. Adjust for
- that. */
- pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
- if (__builtin_expect (pid < 0, 0))
- pid = -pid;
-#endif
-
-#if defined(__ASSUME_TGKILL) && __ASSUME_TGKILL
- return INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
- sig);
-#else
-# ifdef __NR_tgkill
- int res = INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
- sig);
- if (res != -1 || errno != ENOSYS)
- return res;
-# endif
- return INLINE_SYSCALL (tkill, 2, THREAD_GETMEM (THREAD_SELF, tid), sig);
-#endif
-}
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sleep.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sleep.c
deleted file mode 100644
index 9e948ad..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pt-sleep.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <pthreadP.h>
-#include <../../../../../../libc/unistd/sleep.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c b/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
index 5bc6e06..e27ab51 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
@@ -58,18 +58,8 @@ __pthread_kill (
fork, it would have to happen in a signal handler. But this is
no allowed, pthread_kill is not guaranteed to be async-safe. */
int val;
-#if defined(__ASSUME_TGKILL) && __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
tid, signo);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
- tid, signo);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, tid, signo);
-#endif
return (INTERNAL_SYSCALL_ERROR_P (val, err)
? INTERNAL_SYSCALL_ERRNO (val, err) : 0);
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c b/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c
index 8aa4830..6b15938 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2002.
@@ -21,17 +21,13 @@
#include <signal.h>
#include <sysdep.h>
#include <pthreadP.h>
-#include <bits/kernel-features.h>
int
-raise (
- int sig)
+raise (int sig)
{
struct pthread *pd = THREAD_SELF;
-#if (defined(__ASSUME_TGKILL) && __ASSUME_TGKILL) || defined __NR_tgkill
pid_t pid = THREAD_GETMEM (pd, pid);
-#endif
pid_t selftid = THREAD_GETMEM (pd, tid);
if (selftid == 0)
{
@@ -44,30 +40,17 @@ raise (
#endif
THREAD_SETMEM (pd, tid, selftid);
-#if (defined(__ASSUME_TGKILL) && __ASSUME_TGKILL) || defined __NR_tgkill
/* We do not set the PID field in the TID here since we might be
called from a signal handler while the thread executes fork. */
pid = selftid;
-#endif
}
-#if (defined(__ASSUME_TGKILL) && __ASSUME_TGKILL) || defined __NR_tgkill
else
/* raise is an async-safe function. It could be called while the
fork/vfork function temporarily invalidated the PID field. Adjust for
that. */
if (__builtin_expect (pid <= 0, 0))
pid = (pid & INT_MAX) == 0 ? selftid : -pid;
-#endif
-#if defined(__ASSUME_TGKILL) && __ASSUME_TGKILL
return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
-#else
-# ifdef __NR_tgkill
- int res = INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
- if (res != -1 || errno != ENOSYS)
- return res;
-# endif
- return INLINE_SYSCALL (tkill, 2, selftid, sig);
-#endif
}
libc_hidden_def (raise)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/read.S b/libpthread/nptl/sysdeps/unix/sysv/linux/read.S
deleted file mode 100644
index d3adfa8..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/read.S
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <sysdep-cancel.h>
-
-/*
-extern int __read_nocancel (int, void *, size_t) attribute_hidden;
-*/
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-PSEUDO (__libc_read, read, 3)
-ret
-PSEUDO_END(__libc_read)
-
-libc_hidden_def (__read_nocancel)
-libc_hidden_def (__libc_read)
-weak_alias (__libc_read, __read)
-libc_hidden_weak (__read)
-weak_alias (__libc_read, read)
-libc_hidden_weak (read)
-
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c
deleted file mode 100644
index 4cd5f54..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthreadP.h>
-#include <errno.h>
-#include <signal.h>
-#include <string.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-#ifdef __NR_rt_sigtimedwait
-
-static int
-do_sigtimedwait (const sigset_t *set, siginfo_t *info,
- const struct timespec *timeout)
-{
-#ifdef SIGCANCEL
- sigset_t tmpset;
- if (set != NULL
- && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
-# ifdef SIGSETXID
- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
-# endif
- ))
- {
- /* Create a temporary mask without the bit for SIGCANCEL set. */
- // We are not copying more than we have to.
- memcpy (&tmpset, set, _NSIG / 8);
- __sigdelset (&tmpset, SIGCANCEL);
-# ifdef SIGSETXID
- __sigdelset (&tmpset, SIGSETXID);
-# endif
- set = &tmpset;
- }
-#endif
-
- /* XXX The size argument hopefully will have to be changed to the
- real size of the user-level sigset_t. */
- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
- info, timeout, _NSIG / 8);
-
- /* The kernel generates a SI_TKILL code in si_code in case tkill is
- used. tkill is transparently used in raise(). Since having
- SI_TKILL as a code is useful in general we fold the results
- here. */
- if (result != -1 && info != NULL && info->si_code == SI_TKILL)
- info->si_code = SI_USER;
-
- return result;
-}
-
-
-/* Return any pending signal or wait for one for the given time. */
-int
-__sigtimedwait (const sigset_t *set, siginfo_t *info,
- const struct timespec *timeout)
-{
- if (SINGLE_THREAD_P)
- return do_sigtimedwait (set, info, timeout);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- /* XXX The size argument hopefully will have to be changed to the
- real size of the user-level sigset_t. */
- int result = do_sigtimedwait (set, info, timeout);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
-}
-weak_alias (__sigtimedwait, sigtimedwait)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sigwait.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sigwait.c
deleted file mode 100644
index bde0a92..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sigwait.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <pthreadP.h>
-#include "../../../../../../libc/signal/sigwait.c"
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c
deleted file mode 100644
index 3ad330d..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1997,1998,2000,2002,2003,2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthreadP.h>
-#include <errno.h>
-#include <signal.h>
-#define __need_NULL
-#include <stddef.h>
-#include <string.h>
-
-#include <sysdep-cancel.h>
-#include <sys/syscall.h>
-
-#ifdef __NR_rt_sigtimedwait
-
-static int
-do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
-{
-#ifdef SIGCANCEL
- sigset_t tmpset;
- if (set != NULL
- && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
-# ifdef SIGSETXID
- || __builtin_expect (__sigismember (set, SIGSETXID), 0)
-# endif
- ))
- {
- /* Create a temporary mask without the bit for SIGCANCEL set. */
- // We are not copying more than we have to.
- memcpy (&tmpset, set, _NSIG / 8);
- __sigdelset (&tmpset, SIGCANCEL);
-# ifdef SIGSETXID
- __sigdelset (&tmpset, SIGSETXID);
-# endif
- set = &tmpset;
- }
-#endif
-
- /* XXX The size argument hopefully will have to be changed to the
- real size of the user-level sigset_t. */
- int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
- info, NULL, _NSIG / 8);
-
- /* The kernel generates a SI_TKILL code in si_code in case tkill is
- used. tkill is transparently used in raise(). Since having
- SI_TKILL as a code is useful in general we fold the results
- here. */
- if (result != -1 && info != NULL && info->si_code == SI_TKILL)
- info->si_code = SI_USER;
-
- return result;
-}
-
-
-/* Return any pending signal or wait for one for the given time. */
-int
-__sigwaitinfo (const sigset_t *set, siginfo_t *info)
-{
- if (SINGLE_THREAD_P)
- return do_sigwaitinfo (set, info);
-
- int oldtype = LIBC_CANCEL_ASYNC ();
-
- /* XXX The size argument hopefully will have to be changed to the
- real size of the user-level sigset_t. */
- int result = do_sigwaitinfo (set, info);
-
- LIBC_CANCEL_RESET (oldtype);
-
- return result;
-}
-weak_alias (__sigwaitinfo, sigwaitinfo)
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sleep.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sleep.c
deleted file mode 100644
index 9e948ad..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sleep.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <pthreadP.h>
-#include <../../../../../../libc/unistd/sleep.c>
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/waitpid.S b/libpthread/nptl/sysdeps/unix/sysv/linux/waitpid.S
deleted file mode 100644
index 52abb27..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/waitpid.S
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <sysdep-cancel.h>
-
-#ifndef __NR_waitpid
-#error Makefile error: No NR_waitpid on this arch
-#endif
-
-/*
-extern pid_t __waitpid_nocancel (pid_t, int *, int) attribute_hidden;
-*/
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-
-PSEUDO (__waitpid, waitpid, 3)
-ret
-PSEUDO_END(__waitpid)
-
-libc_hidden_def (__waitpid)
-weak_alias (__waitpid, waitpid)
-libc_hidden_weak (waitpid)
-weak_alias (__waitpid, __libc_waitpid)
-libc_hidden_weak (__libc_waitpid)
-
-#endif
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/write.S b/libpthread/nptl/sysdeps/unix/sysv/linux/write.S
deleted file mode 100644
index 43de332..0000000
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/write.S
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <sysdep-cancel.h>
-
-/*
-extern int __write_nocancel (int, const void *, size_t) attribute_hidden;
-*/
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-PSEUDO (__libc_write, write, 3)
-ret
-PSEUDO_END(__libc_write)
-
-libc_hidden_def (__write_nocancel)
-libc_hidden_def (__libc_write)
-weak_alias (__libc_write, __write)
-libc_hidden_weak (__write)
-weak_alias (__libc_write, write)
-libc_hidden_weak (write)
-
-#endif
diff --git a/libpthread/nptl/sysdeps/xtensa/Makefile.arch b/libpthread/nptl/sysdeps/xtensa/Makefile.arch
index 2346117..2c1fc1b 100644
--- a/libpthread/nptl/sysdeps/xtensa/Makefile.arch
+++ b/libpthread/nptl/sysdeps/xtensa/Makefile.arch
@@ -15,8 +15,6 @@
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, see <http://www.gnu.org/licenses/>.
-CFLAGS-pt-raise.c = -DNOT_IN_libc -DIS_IN_libpthread
-
ASFLAGS-dl-tlsdesc.S = -DNOT_IN_libc=1
ASFLAGS-pthread_spin_lock.S = -DNOT_IN_libc -DIS_IN_libpthread
ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread
diff --git a/test/nptl/Makefile.in b/test/nptl/Makefile.in
index f8dd1ca..f5d76da 100644
--- a/test/nptl/Makefile.in
+++ b/test/nptl/Makefile.in
@@ -152,8 +152,8 @@ CFLAGS_tst-initializers1-gnu99 = $(CFLAGS-tst-initializers1) -std=gnu99
EXTRA_LDFLAGS = $(if $(findstring -lpthread,$(LDFLAGS_$@)),,-lpthread)
-LDFLAGS_tst-atfork2 := -ldl
-LDFLAGS_libatfork.so := -shared -static-libgcc -lpthread
+LDFLAGS_tst-atfork2 := -ldl -rdynamic
+LDFLAGS_tst-atfork2mod.so := -shared -static-libgcc -lpthread
LDFLAGS_tst-cleanup4 := tst-cleanup4aux.o
LDFLAGS_tst-cleanupx4 := tst-cleanup4aux.o
LDFLAGS_tst-clock2 := -lrt
@@ -210,8 +210,8 @@ tst-tls5: tst-tls5mod.so
tst-cleanupx4 : tst-cleanup4aux.o
tst-fini1: tst-fini1mod.so
-tst-atfork2: libatfork.so
-tst-atfork2_glibc: libatfork.so.glibc
+tst-atfork2: tst-atfork2mod.so
+tst-atfork2_glibc: tst-atfork2mod.so.glibc
OPTS_tst-cancel7 = -c ./tst-cancel7
OPTS_tst-mqueue7 = -- ./tst-mqueue7
diff --git a/test/nptl/libatfork.c b/test/nptl/libatfork.c
deleted file mode 100644
index f4ddca0..0000000
--- a/test/nptl/libatfork.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <stdio.h>
-#include <pthread.h>
-
-static void atfork_prepare(void)
-{
- /* nothing to do */
-}
-
-static void atfork_parent(void)
-{
- /* nothing to do */
-}
-
-static void atfork_child(void)
-{
- /* nothing to do */
-}
-
-static __attribute__((constructor)) void init(void)
-{
- pthread_atfork(atfork_prepare, atfork_parent, atfork_child);
-}
-
-static __attribute__((destructor)) void done(void)
-{
- /* nothing to do */
-}
diff --git a/test/nptl/tst-atfork2.c b/test/nptl/tst-atfork2.c
index 1c303de..594f56e 100644
--- a/test/nptl/tst-atfork2.c
+++ b/test/nptl/tst-atfork2.c
@@ -1,24 +1,156 @@
+/* Copyright (C) 2003-2016 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2003.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <errno.h>
+#include <pthread.h>
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
-#include <dlfcn.h>
+#include <sys/wait.h>
+
-int main(int argc, char *argv[])
+/* Must be exported. */
+int val;
+
+static void
+prepare (void)
{
- void *h;
- pid_t pid;
+ val *= 2;
+}
- h = dlopen("libatfork.so", RTLD_NOW);
- if (!h)
+static void
+parent (void)
+{
+ val += 4;
+}
+
+static void
+child (void)
+{
+ val += 8;
+}
+
+
+static int
+do_test (void)
+{
+
+ if (pthread_atfork (prepare, parent, child) != 0)
{
- printf("Failed to open libatfork.so\n");
- return 1;
+ puts ("do_test: atfork failed");
+ exit (1);
}
- dlclose(h);
- if ((pid = fork()) < 0) {
- printf("Fork failed\n");
- return 1;
+ void *h = dlopen ("tst-atfork2mod.so", RTLD_LAZY);
+ if (h == NULL)
+ {
+ printf ("dlopen failed: %s\n", dlerror ());
+ exit (1);
}
- return 0;
+ /* First trial of fork. */
+ pid_t pid = fork ();
+ if (pid == -1)
+ {
+ puts ("1st fork failed");
+ exit (1);
+ }
+
+ if (pid == 0)
+ {
+ /* Child. */
+ if (val != 80)
+ {
+ printf ("1st: expected val=%d, got %d\n", 80, val);
+ exit (2);
+ }
+
+ exit (0);
+ }
+
+ /* Parent. */
+ if (val != 24)
+ {
+ printf ("1st: expected val=%d, got %d\n", 24, val);
+ exit (1);
+ }
+
+ int status;
+ if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
+ {
+ puts ("1st waitpid failed");
+ exit (1);
+ }
+
+ if (status != 0)
+ exit (status);
+
+ puts ("unloading now");
+
+ /* Unload the module. */
+ if (dlclose (h) != 0)
+ {
+ puts ("dlclose failed");
+ exit (1);
+ }
+
+ puts ("2nd fork");
+
+ /* Second fork trial. */
+ val = 1;
+ pid = fork ();
+ if (pid == -1)
+ {
+ puts ("2nd fork failed");
+ exit (1);
+ }
+
+ if (pid == 0)
+ {
+ /* Child. */
+ if (val != 10)
+ {
+ printf ("2nd: expected val=%d, got %d\n", 10, val);
+ exit (3);
+ }
+
+ exit (0);
+ }
+
+ /* Parent. */
+ if (val != 6)
+ {
+ printf ("2nd: expected val=%d, got %d\n", 6, val);
+ exit (1);
+ }
+
+ if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
+ {
+ puts ("2nd waitpid failed");
+ exit (1);
+ }
+
+ if (status != 0)
+ exit (status);
+
+ return 0;
}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/test/nptl/tst-detach1.c b/test/nptl/tst-atfork2mod.c
similarity index 65%
copy from test/nptl/tst-detach1.c
copy to test/nptl/tst-atfork2mod.c
index 90a69ff..7c592b4 100644
--- a/test/nptl/tst-detach1.c
+++ b/test/nptl/tst-atfork2mod.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper(a)redhat.com>, 2003.
@@ -19,37 +19,39 @@
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
-#include <unistd.h>
-static void *
-tf (void *arg)
+extern int val;
+
+
+static void
+prepare (void)
{
- return NULL;
+ ++val;
}
+static void
+parent (void)
+{
+ val *= 4;
+}
-static int
-do_test (void)
+static void
+child (void)
{
- pthread_t th;
- if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
- {
- puts ("create failed");
- exit (1);
- }
+ val *= 8;
+}
- /* Give the child a chance to finish. */
- sleep (1);
+static void
+__attribute__ ((constructor))
+init (void)
+{
+ extern void *__dso_handle;
+ printf ("dsohandle = %p\n", __dso_handle);
- if (pthread_detach (th) != 0)
+ if (pthread_atfork (prepare, parent, child) != 0)
{
- puts ("detach failed");
+ puts ("init: atfork failed");
exit (1);
}
-
- return 0;
}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0

uClibc-ng - small C library for embedded systems branch master updated. v1.0.17-14-g126ffbd
by wbx@helium.openadk.org 25 Sep '16
by wbx@helium.openadk.org 25 Sep '16
25 Sep '16
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via 126ffbd45f65d3a6940afc8aaacfada8a73ea8a0 (commit)
from 57f820bab9108550907f03828d61525c833004a4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 126ffbd45f65d3a6940afc8aaacfada8a73ea8a0
Author: Waldemar Brodkorb <wbx(a)uclibc-ng.org>
Date: Sun Sep 25 15:21:38 2016 +0200
sync header with glibc
Fixes a compile error for samba 4.5.0.
Reported-by: Gustavo Zacarias <gustavo(a)zacarias.com.ar>
-----------------------------------------------------------------------
Summary of changes:
include/sys/quota.h | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/include/sys/quota.h b/include/sys/quota.h
index 088e613..316febe 100644
--- a/include/sys/quota.h
+++ b/include/sys/quota.h
@@ -38,11 +38,6 @@
#include <features.h>
#include <sys/types.h>
-#ifdef __UCLIBC__
-# undef _LINUX_QUOTA_VERSION
-# define _LINUX_QUOTA_VERSION 1
-#endif
-
/*
* Select between different incompatible quota versions.
* Default to the version used by Linux kernel version 2.4.22
@@ -124,6 +119,7 @@
# define Q_SETINFO 0x800006 /* set information about quota files */
# define Q_GETQUOTA 0x800007 /* get user quota structure */
# define Q_SETQUOTA 0x800008 /* set user quota structure */
+# define Q_GETNEXTQUOTA 0x800009 /* get disk limits and usage >= ID */
#endif
/*
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
1
0