diff options
author | Timo Teräs <timo.teras@iki.fi> | 2014-04-09 13:25:31 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2014-04-09 13:27:19 +0300 |
commit | a488eea97d8d9d53f9a361465b341221246377f5 (patch) | |
tree | 6fb83b9029119d329ea1ecdf4f1cbfbbb56280f0 /main/musl/0003-b9b2db2f-to-efe07b0f.patch | |
parent | 195f616f91ed4bd9733ef60e9945fdb292904162 (diff) | |
download | aports-a488eea97d8d9d53f9a361465b341221246377f5.tar.bz2 aports-a488eea97d8d9d53f9a361465b341221246377f5.tar.xz |
main/musl: reimplement getifaddrs() and if_nameindex() with netlink
this fixes issues with dhcpcd. cherry-pick also one more printf
formatting fix from musl git.
Diffstat (limited to 'main/musl/0003-b9b2db2f-to-efe07b0f.patch')
-rw-r--r-- | main/musl/0003-b9b2db2f-to-efe07b0f.patch | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/main/musl/0003-b9b2db2f-to-efe07b0f.patch b/main/musl/0003-b9b2db2f-to-efe07b0f.patch deleted file mode 100644 index 5c4291378b..0000000000 --- a/main/musl/0003-b9b2db2f-to-efe07b0f.patch +++ /dev/null @@ -1,156 +0,0 @@ -diff --git a/arch/arm/atomic.h b/arch/arm/atomic.h -index 734d287..50ad947 100644 ---- a/arch/arm/atomic.h -+++ b/arch/arm/atomic.h -@@ -22,7 +22,28 @@ static inline int a_ctz_64(uint64_t x) - return a_ctz_l(y); - } - -+#if __ARM_ARCH_6__ || __ARM_ARCH_6K__ || __ARM_ARCH_6ZK__ \ -+ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ \ -+ || __ARM_ARCH >= 7 -+static inline int __k_cas(int t, int s, volatile int *p) -+{ -+ int ret; -+ __asm__( -+ " mcr p15,0,r0,c7,c10,5\n" -+ "1: ldrex %0,%3\n" -+ " subs %0,%0,%1\n" -+ " strexeq %0,%2,%3\n" -+ " teqeq %0,#1\n" -+ " beq 1b\n" -+ " mcr p15,0,r0,c7,c10,5\n" -+ : "=&r"(ret) -+ : "r"(t), "r"(s), "Q"(*p) -+ : "memory", "cc" ); -+ return ret; -+} -+#else - #define __k_cas ((int (*)(int, int, volatile int *))0xffff0fc0) -+#endif - - static inline int a_cas(volatile int *p, int t, int s) - { -diff --git a/arch/arm/pthread_arch.h b/arch/arm/pthread_arch.h -index 43a1c01..ec77a83 100644 ---- a/arch/arm/pthread_arch.h -+++ b/arch/arm/pthread_arch.h -@@ -1,8 +1,22 @@ --typedef char *(*__ptr_func_t)(void) __attribute__((const)); -+#if __ARM_ARCH_6K__ || __ARM_ARCH_6ZK__ \ -+ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ \ -+ || __ARM_ARCH >= 7 -+ -+static inline __attribute__((const)) pthread_t __pthread_self() -+{ -+ char *p; -+ __asm__( "mrc p15,0,%0,c13,c0,3" : "=r"(p) ); -+ return (void *)(p+8-sizeof(struct pthread)); -+} -+ -+#else - -+typedef char *(*__ptr_func_t)(void) __attribute__((const)); - #define __pthread_self() \ - ((pthread_t)(((__ptr_func_t)0xffff0fe0)()+8-sizeof(struct pthread))) - -+#endif -+ - #define TLS_ABOVE_TP - #define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) - -diff --git a/include/sys/auxv.h b/include/sys/auxv.h -new file mode 100644 -index 0000000..6dcf9ad ---- /dev/null -+++ b/include/sys/auxv.h -@@ -0,0 +1,16 @@ -+#ifndef _SYS_AUXV_H -+#define _SYS_AUXV_H -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#include <elf.h> -+ -+unsigned long getauxval(unsigned long); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif -diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c -index 8ac0036..89d081e 100644 ---- a/src/env/__init_tls.c -+++ b/src/env/__init_tls.c -@@ -64,16 +64,6 @@ void *__tls_get_addr(size_t *v) - return (char *)__pthread_self()->dtv[1]+v[1]; - } - --static void *simple(void *p) --{ -- *(void **)p = p; -- return __set_thread_area(TP_ADJ(p)) ? 0 : p; --} -- --weak_alias(simple, __install_initial_tls); -- --void *__mmap(void *, size_t, int, int, int, off_t); -- - #if ULONG_MAX == 0xffffffff - typedef Elf32_Phdr Phdr; - #else -diff --git a/src/env/__libc_start_main.c b/src/env/__libc_start_main.c -index 73d4932..ac37492 100644 ---- a/src/env/__libc_start_main.c -+++ b/src/env/__libc_start_main.c -@@ -3,7 +3,6 @@ - - void __init_tls(size_t *); - void __init_security(size_t *); --void __init_ldso_ctors(void); - - #ifndef SHARED - static void dummy() {} -diff --git a/src/misc/getauxval.c b/src/misc/getauxval.c -new file mode 100644 -index 0000000..5ac8b3d ---- /dev/null -+++ b/src/misc/getauxval.c -@@ -0,0 +1,12 @@ -+#include <sys/auxv.h> -+#include <errno.h> -+#include "libc.h" -+ -+unsigned long getauxval(unsigned long item) -+{ -+ size_t *auxv = libc.auxv; -+ for (; *auxv; auxv+=2) -+ if (*auxv==item) return auxv[1]; -+ errno = ENOENT; -+ return 0; -+} -diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c -index 31c3d5d..0be7549 100644 ---- a/src/stdio/vfprintf.c -+++ b/src/stdio/vfprintf.c -@@ -356,15 +356,15 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) - *d = *d + i; - while (*d > 999999999) { - *d--=0; -+ if (d<a) *--a=0; - (*d)++; - } -- if (d<a) a=d; - for (i=10, e=9*(r-a); *a>=i; i*=10, e++); - } - } - if (z>d+1) z=d+1; -- for (; !z[-1] && z>a; z--); - } -+ for (; z>a && !z[-1]; z--); - - if ((t|32)=='g') { - if (!p) p++; |