summaryrefslogtreecommitdiff
path: root/ldso
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-09-24 02:55:31 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-09-26 20:23:24 +0200
commit29ff9055c80efe77a7130767a9fcb3ab8c67e8ce (patch)
treeb061656c1336d7d73ed5eef59352e3d50d8147a7 /ldso
parentb06f85d62c41a4ed108628b1c564203f36c0ab4e (diff)
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
Diffstat (limited to 'ldso')
-rw-r--r--ldso/ldso/arm/dl-syscalls.h37
-rw-r--r--ldso/ldso/fdpic/dl-inlines.h2
-rw-r--r--ldso/libdl/Makefile.in18
3 files changed, 2 insertions, 55 deletions
diff --git a/ldso/ldso/arm/dl-syscalls.h b/ldso/ldso/arm/dl-syscalls.h
index 195461f83..f40c4fd31 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 a9bfc9311..f59087568 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 1ba877071..24e00faf0 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)