summaryrefslogtreecommitdiff
path: root/test/dlopen/Makefile.in
diff options
context:
space:
mode:
authorLeonid Lisovskiy <lly.dev@gmail.com>2016-06-20 20:29:45 +0300
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-06-22 08:02:51 +0200
commitbc5949fd4f8cddf4eee74492c86a8a72f4dee0e7 (patch)
tree68cf04f3eade770ecd41bfb782bc5e9f51acbe94 /test/dlopen/Makefile.in
parent0bc1394750885d4e4b2064aff6c48dd542c6f4b8 (diff)
ldso: fix dlsym hang when reloading DSOs
It can happen under certain cases that the DSO had refcount 0, but was already loaded. (NODELETE flag is set, or it is pulled in via both NEEDED dependency and explicit dlopen()). Add extra reference count for NODELETE objects, this will ensure that the reference count never drops below one. It is improved version of http://lists.busybox.net/pipermail/uclibc/2013-June/047826.html Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Diffstat (limited to 'test/dlopen/Makefile.in')
-rw-r--r--test/dlopen/Makefile.in4
1 files changed, 3 insertions, 1 deletions
diff --git a/test/dlopen/Makefile.in b/test/dlopen/Makefile.in
index 0bed0f749..740453a19 100644
--- a/test/dlopen/Makefile.in
+++ b/test/dlopen/Makefile.in
@@ -5,7 +5,7 @@
export UCLIBC_ONLY := 1
TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
- testscope nodelete tst-origin
+ testscope nodelete nodelete1 tst-origin
ifneq ($(HAVE_SHARED),y)
TESTS_DISABLED := test3
@@ -80,3 +80,5 @@ LDFLAGS_nodelete := -rdynamic -ldl
LDFLAGS_nodelmod1.so := -Wl,-z,nodelete
LDFLAGS_nodelmod3.so := ./nodelmod4.so
LDFLAGS_nodelmod4.so := -Wl,-z,nodelete
+nodelete1: nodelmod1.so nodelmod2.so
+LDFLAGS_nodelete1 := -rdynamic -ldl