diff options
Diffstat (limited to 'libc')
26 files changed, 24 insertions, 52 deletions
diff --git a/libc/sysdeps/linux/cris/__init_brk.c b/libc/sysdeps/linux/cris/__init_brk.c index 8e6591a62..df41f9b4c 100644 --- a/libc/sysdeps/linux/cris/__init_brk.c +++ b/libc/sysdeps/linux/cris/__init_brk.c @@ -5,10 +5,7 @@ #include <errno.h> #include "sysdep.h" -extern void *__curbrk; -libc_hidden_proto(__curbrk) void * __curbrk = 0; -libc_hidden_data_def(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h b/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h index b62a51020..98548e0bd 100644 --- a/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h +++ b/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h @@ -40,6 +40,6 @@ #define __UCLIBC_HAVE_SIGNED_ZERO__ /* lovely */ -#define ASM_LINE_SEP @ +#define __UCLIBC_ASM_LINE_SEP__ @ #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */ diff --git a/libc/sysdeps/linux/cris/brk.c b/libc/sysdeps/linux/cris/brk.c index 6c518f5a6..8183aabf3 100644 --- a/libc/sysdeps/linux/cris/brk.c +++ b/libc/sysdeps/linux/cris/brk.c @@ -12,7 +12,6 @@ libc_hidden_proto(brk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/cris/sbrk.c b/libc/sysdeps/linux/cris/sbrk.c index 15f506cd7..934dc90c4 100644 --- a/libc/sysdeps/linux/cris/sbrk.c +++ b/libc/sysdeps/linux/cris/sbrk.c @@ -13,7 +13,6 @@ libc_hidden_proto(sbrk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/frv/__init_brk.c b/libc/sysdeps/linux/frv/__init_brk.c index 507902fc5..b688f98af 100644 --- a/libc/sysdeps/linux/frv/__init_brk.c +++ b/libc/sysdeps/linux/frv/__init_brk.c @@ -4,10 +4,7 @@ #include <unistd.h> #include <sys/syscall.h> -extern void * __curbrk; -libc_hidden_proto(__curbrk) void * __curbrk = 0; -libc_hidden_data_def(__curbrk) #define __NR__brk __NR_brk attribute_hidden _syscall1(void *, _brk, void *, ptr); diff --git a/libc/sysdeps/linux/frv/brk.c b/libc/sysdeps/linux/frv/brk.c index 9e33830ab..b26f74fec 100644 --- a/libc/sysdeps/linux/frv/brk.c +++ b/libc/sysdeps/linux/frv/brk.c @@ -12,7 +12,6 @@ libc_hidden_proto(brk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/frv/sbrk.c b/libc/sysdeps/linux/frv/sbrk.c index bb66f0148..fd760985e 100644 --- a/libc/sysdeps/linux/frv/sbrk.c +++ b/libc/sysdeps/linux/frv/sbrk.c @@ -7,7 +7,6 @@ libc_hidden_proto(sbrk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/h8300/brk.c b/libc/sysdeps/linux/h8300/brk.c index 52ba1ac9c..0da4286e7 100644 --- a/libc/sysdeps/linux/h8300/brk.c +++ b/libc/sysdeps/linux/h8300/brk.c @@ -12,10 +12,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { diff --git a/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h b/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h index cccaabbb9..4ae53fd3c 100644 --- a/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h @@ -1,3 +1,6 @@ +#ifndef _BITS_SIGACTION_STRUCT_H +#define _BITS_SIGACTION_STRUCT_H + /* We have a separate header file here because we do not support SA_RESTORER on hppa. */ @@ -18,4 +21,6 @@ struct kernel_sigaction { }; extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded, - struct kernel_sigaction *__unbounded, size_t); + struct kernel_sigaction *__unbounded, size_t) attribute_hidden; + +#endif diff --git a/libc/sysdeps/linux/hppa/brk.c b/libc/sysdeps/linux/hppa/brk.c index 52d0b4c74..b57c3328a 100644 --- a/libc/sysdeps/linux/hppa/brk.c +++ b/libc/sysdeps/linux/hppa/brk.c @@ -24,10 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) diff --git a/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h b/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h index 718ab2a9c..d08ac0bd7 100644 --- a/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h +++ b/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h @@ -18,7 +18,8 @@ #define __UCLIBC_BROKEN_CREATE_MODULE__ /* does your target have to worry about older [gs]etrlimit() ? */ -#define __UCLIBC_HANDLE_OLDER_RLIMIT__ +/* this is only an issue on i386 where linux < 2.3.25, so we just assume it works ... */ +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__ /* does your target prefix all symbols with an _ ? */ #define __UCLIBC_NO_UNDERSCORES__ diff --git a/libc/sysdeps/linux/i386/brk.c b/libc/sysdeps/linux/i386/brk.c index 6a654f0d0..fcf7f3b33 100644 --- a/libc/sysdeps/linux/i386/brk.c +++ b/libc/sysdeps/linux/i386/brk.c @@ -24,10 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { diff --git a/libc/sysdeps/linux/m68k/brk.c b/libc/sysdeps/linux/m68k/brk.c index b627f6400..cad5976de 100644 --- a/libc/sysdeps/linux/m68k/brk.c +++ b/libc/sysdeps/linux/m68k/brk.c @@ -12,10 +12,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void * __curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { diff --git a/libc/sysdeps/linux/nios/brk.c b/libc/sysdeps/linux/nios/brk.c index 69f60d336..2c252f90c 100644 --- a/libc/sysdeps/linux/nios/brk.c +++ b/libc/sysdeps/linux/nios/brk.c @@ -24,10 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { diff --git a/libc/sysdeps/linux/nios2/brk.c b/libc/sysdeps/linux/nios2/brk.c index 2d7bf4420..1711e609c 100644 --- a/libc/sysdeps/linux/nios2/brk.c +++ b/libc/sysdeps/linux/nios2/brk.c @@ -24,11 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) - int brk (void *addr) { diff --git a/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h index 1e994ec68..7efa8c40f 100644 --- a/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h +++ b/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h @@ -18,7 +18,8 @@ #undef __UCLIBC_BROKEN_CREATE_MODULE__ /* does your target have to worry about older [gs]etrlimit() ? */ -#define __UCLIBC_HANDLE_OLDER_RLIMIT__ +/* this is only an issue on i386 where linux < 2.3.35, so we just assume it works ... */ +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__ /* does your target prefix all symbols with an _ ? */ #define __UCLIBC_NO_UNDERSCORES__ diff --git a/libc/sysdeps/linux/powerpc/brk.S b/libc/sysdeps/linux/powerpc/brk.S index b7b19d153..b06dc0c94 100644 --- a/libc/sysdeps/linux/powerpc/brk.S +++ b/libc/sysdeps/linux/powerpc/brk.S @@ -24,7 +24,18 @@ #include <sys/syscall.h> #ifdef __NR_brk - .comm __curbrk,4,4 + +#ifdef __PIC__ +.section .bss + .align 4 + .globl __curbrk +__curbrk: .skip 4 + .type __curbrk,@object + .size __curbrk,4 +#else +.comm __curbrk, 4,4 +#endif + .text .globl brk .type brk,@function @@ -58,6 +69,4 @@ brk: .size brk,.-brk libc_hidden_def(brk) -/* won't help too much, HIDDEN_JUMPTARGET should be used here as well, now the reloc remains */ -libc_hidden_data_def(__curbrk) #endif diff --git a/libc/sysdeps/linux/sh/__init_brk.c b/libc/sysdeps/linux/sh/__init_brk.c index c14180a6c..9f5ee867b 100644 --- a/libc/sysdeps/linux/sh/__init_brk.c +++ b/libc/sysdeps/linux/sh/__init_brk.c @@ -4,10 +4,7 @@ #include <unistd.h> #include <sys/syscall.h> -extern void * __curbrk; -libc_hidden_proto(__curbrk) void * __curbrk = 0; -libc_hidden_data_def(__curbrk) #define __NR__brk __NR_brk attribute_hidden _syscall1(void *, _brk, void *, ptr); diff --git a/libc/sysdeps/linux/sh/brk.c b/libc/sysdeps/linux/sh/brk.c index 9e33830ab..b26f74fec 100644 --- a/libc/sysdeps/linux/sh/brk.c +++ b/libc/sysdeps/linux/sh/brk.c @@ -12,7 +12,6 @@ libc_hidden_proto(brk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/sh/sbrk.c b/libc/sysdeps/linux/sh/sbrk.c index bb66f0148..fd760985e 100644 --- a/libc/sysdeps/linux/sh/sbrk.c +++ b/libc/sysdeps/linux/sh/sbrk.c @@ -7,7 +7,6 @@ libc_hidden_proto(sbrk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/sh64/__init_brk.c b/libc/sysdeps/linux/sh64/__init_brk.c index c14180a6c..9f5ee867b 100644 --- a/libc/sysdeps/linux/sh64/__init_brk.c +++ b/libc/sysdeps/linux/sh64/__init_brk.c @@ -4,10 +4,7 @@ #include <unistd.h> #include <sys/syscall.h> -extern void * __curbrk; -libc_hidden_proto(__curbrk) void * __curbrk = 0; -libc_hidden_data_def(__curbrk) #define __NR__brk __NR_brk attribute_hidden _syscall1(void *, _brk, void *, ptr); diff --git a/libc/sysdeps/linux/sh64/brk.c b/libc/sysdeps/linux/sh64/brk.c index 9e33830ab..b26f74fec 100644 --- a/libc/sysdeps/linux/sh64/brk.c +++ b/libc/sysdeps/linux/sh64/brk.c @@ -12,7 +12,6 @@ libc_hidden_proto(brk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/sh64/sbrk.c b/libc/sysdeps/linux/sh64/sbrk.c index bb66f0148..fd760985e 100644 --- a/libc/sysdeps/linux/sh64/sbrk.c +++ b/libc/sysdeps/linux/sh64/sbrk.c @@ -7,7 +7,6 @@ libc_hidden_proto(sbrk) extern void * __curbrk; -libc_hidden_proto(__curbrk) extern int __init_brk (void); libc_hidden_proto(__init_brk) diff --git a/libc/sysdeps/linux/sparc/brk.c b/libc/sysdeps/linux/sparc/brk.c index a855ef013..f6d5281d2 100644 --- a/libc/sysdeps/linux/sparc/brk.c +++ b/libc/sysdeps/linux/sparc/brk.c @@ -24,10 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { diff --git a/libc/sysdeps/linux/x86_64/bits/wordsize.h b/libc/sysdeps/linux/x86_64/bits/wordsize.h index e96a9f1ad..0cce4ead9 100644 --- a/libc/sysdeps/linux/x86_64/bits/wordsize.h +++ b/libc/sysdeps/linux/x86_64/bits/wordsize.h @@ -2,6 +2,7 @@ #if defined __x86_64__ # define __WORDSIZE 64 +/*# define __WORDSIZE_COMPAT32 1*/ #else # define __WORDSIZE 32 #endif diff --git a/libc/sysdeps/linux/x86_64/brk.c b/libc/sysdeps/linux/x86_64/brk.c index e0f9637c4..09d911066 100644 --- a/libc/sysdeps/linux/x86_64/brk.c +++ b/libc/sysdeps/linux/x86_64/brk.c @@ -24,10 +24,7 @@ libc_hidden_proto(brk) /* This must be initialized data because commons can't have aliases. */ -extern void *__curbrk; -libc_hidden_proto(__curbrk) void *__curbrk = 0; -libc_hidden_data_def(__curbrk) int brk (void *addr) { |