From 29ff9055c80efe77a7130767a9fcb3ab8c67e8ce Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 24 Sep 2016 02:55:31 +0200 Subject: 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 --- ldso/ldso/arm/dl-syscalls.h | 37 +------------------------------------ ldso/ldso/fdpic/dl-inlines.h | 2 +- 2 files changed, 2 insertions(+), 37 deletions(-) (limited to 'ldso/ldso') 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]; -- cgit v1.2.3