diff options
| author | Richard Purdie <rpurdie@linux.intel.com> | 2009-11-17 16:00:20 +0000 |
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2009-11-17 16:00:20 +0000 |
| commit | 0d816ac9865eb8b4950660d42ae8c2c653412d6f (patch) | |
| tree | 562161046a2063aeed4e1c62cc9b86aeb5b45fe2 /meta | |
| parent | 2ce975dba2a3f433e3f0668104c9d3630eca1b16 (diff) | |
| download | poky-0d816ac9865eb8b4950660d42ae8c2c653412d6f.tar.gz | |
uclibc: Upgrade 0.9.29 -> 0.9.30.1 (from OE.dev) and massively cleanup the recipes, using install step for staging
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta')
43 files changed, 1733 insertions, 650 deletions
diff --git a/meta/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch b/meta/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch deleted file mode 100644 index 3a059021a7..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/arm_fix_alignment.patch +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | ARMV5 can use STRD and LDRD access instructions but these accesses need to be | ||
| 2 | 8 byte aligned. The dynamic linker's malloc needs to match this so structures | ||
| 3 | become 8 byte aligned to void unaligned accesses. | ||
| 4 | |||
| 5 | RP - 14/02/2008 | ||
| 6 | |||
| 7 | Index: uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h | ||
| 8 | =================================================================== | ||
| 9 | --- uClibc-0.9.29.orig/ldso/ldso/arm/dl-sysdep.h 2008-02-14 00:58:12.000000000 +0000 | ||
| 10 | +++ uClibc-0.9.29/ldso/ldso/arm/dl-sysdep.h 2008-02-14 00:59:19.000000000 +0000 | ||
| 11 | @@ -15,6 +15,8 @@ | ||
| 12 | GOT_BASE[1] = (unsigned long) MODULE; \ | ||
| 13 | } | ||
| 14 | |||
| 15 | +#define DL_MALLOC_ALIGN 8 /* EABI needs 8 byte alignment for STRD LDRD*/ | ||
| 16 | + | ||
| 17 | static inline unsigned long arm_modulus(unsigned long m, unsigned long p) | ||
| 18 | { | ||
| 19 | unsigned long i,t,inc; | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/h3900/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.29/h3900/uClibc.machine deleted file mode 100644 index ec0385bc0f..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/h3900/uClibc.machine +++ /dev/null | |||
| @@ -1,70 +0,0 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Sun May 13 11:16:02 2007 | ||
| 4 | # | ||
| 5 | # TARGET_alpha is not set | ||
| 6 | TARGET_arm=y | ||
| 7 | # TARGET_bfin is not set | ||
| 8 | # TARGET_cris is not set | ||
| 9 | # TARGET_e1 is not set | ||
| 10 | # TARGET_frv is not set | ||
| 11 | # TARGET_h8300 is not set | ||
| 12 | # TARGET_hppa is not set | ||
| 13 | # TARGET_i386 is not set | ||
| 14 | # TARGET_i960 is not set | ||
| 15 | # TARGET_ia64 is not set | ||
| 16 | # TARGET_m68k is not set | ||
| 17 | # TARGET_microblaze is not set | ||
| 18 | # TARGET_mips is not set | ||
| 19 | # TARGET_nios is not set | ||
| 20 | # TARGET_nios2 is not set | ||
| 21 | # TARGET_powerpc is not set | ||
| 22 | # TARGET_sh is not set | ||
| 23 | # TARGET_sh64 is not set | ||
| 24 | # TARGET_sparc is not set | ||
| 25 | # TARGET_v850 is not set | ||
| 26 | # TARGET_vax is not set | ||
| 27 | # TARGET_x86_64 is not set | ||
| 28 | |||
| 29 | # | ||
| 30 | # Target Architecture Features and Options | ||
| 31 | # | ||
| 32 | TARGET_ARCH="arm" | ||
| 33 | FORCE_OPTIONS_FOR_ARCH=y | ||
| 34 | # CONFIG_ARM_OABI is not set | ||
| 35 | CONFIG_ARM_EABI=y | ||
| 36 | USE_BX=y | ||
| 37 | # CONFIG_GENERIC_ARM is not set | ||
| 38 | # CONFIG_ARM610 is not set | ||
| 39 | # CONFIG_ARM710 is not set | ||
| 40 | # CONFIG_ARM7TDMI is not set | ||
| 41 | # CONFIG_ARM720T is not set | ||
| 42 | # CONFIG_ARM920T is not set | ||
| 43 | # CONFIG_ARM922T is not set | ||
| 44 | # CONFIG_ARM926T is not set | ||
| 45 | # CONFIG_ARM10T is not set | ||
| 46 | # CONFIG_ARM1136JF_S is not set | ||
| 47 | # CONFIG_ARM1176JZ_S is not set | ||
| 48 | # CONFIG_ARM1176JZF_S is not set | ||
| 49 | # CONFIG_ARM_SA110 is not set | ||
| 50 | # CONFIG_ARM_SA1100 is not set | ||
| 51 | CONFIG_ARM_XSCALE=y | ||
| 52 | # CONFIG_ARM_IWMMXT is not set | ||
| 53 | TARGET_SUBARCH="" | ||
| 54 | |||
| 55 | # | ||
| 56 | # Using ELF file format | ||
| 57 | # | ||
| 58 | ARCH_ANY_ENDIAN=y | ||
| 59 | ARCH_LITTLE_ENDIAN=y | ||
| 60 | # ARCH_WANTS_BIG_ENDIAN is not set | ||
| 61 | ARCH_WANTS_LITTLE_ENDIAN=y | ||
| 62 | ARCH_HAS_MMU=y | ||
| 63 | ARCH_USE_MMU=y | ||
| 64 | UCLIBC_HAS_FLOATS=y | ||
| 65 | # UCLIBC_HAS_FPU is not set | ||
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | ||
| 67 | DO_C99_MATH=y | ||
| 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" | ||
| 69 | HAVE_DOT_CONFIG=y | ||
| 70 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/h5000/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.29/h5000/uClibc.machine deleted file mode 100644 index ec0385bc0f..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/h5000/uClibc.machine +++ /dev/null | |||
| @@ -1,70 +0,0 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Sun May 13 11:16:02 2007 | ||
| 4 | # | ||
| 5 | # TARGET_alpha is not set | ||
| 6 | TARGET_arm=y | ||
| 7 | # TARGET_bfin is not set | ||
| 8 | # TARGET_cris is not set | ||
| 9 | # TARGET_e1 is not set | ||
| 10 | # TARGET_frv is not set | ||
| 11 | # TARGET_h8300 is not set | ||
| 12 | # TARGET_hppa is not set | ||
| 13 | # TARGET_i386 is not set | ||
| 14 | # TARGET_i960 is not set | ||
| 15 | # TARGET_ia64 is not set | ||
| 16 | # TARGET_m68k is not set | ||
| 17 | # TARGET_microblaze is not set | ||
| 18 | # TARGET_mips is not set | ||
| 19 | # TARGET_nios is not set | ||
| 20 | # TARGET_nios2 is not set | ||
| 21 | # TARGET_powerpc is not set | ||
| 22 | # TARGET_sh is not set | ||
| 23 | # TARGET_sh64 is not set | ||
| 24 | # TARGET_sparc is not set | ||
| 25 | # TARGET_v850 is not set | ||
| 26 | # TARGET_vax is not set | ||
| 27 | # TARGET_x86_64 is not set | ||
| 28 | |||
| 29 | # | ||
| 30 | # Target Architecture Features and Options | ||
| 31 | # | ||
| 32 | TARGET_ARCH="arm" | ||
| 33 | FORCE_OPTIONS_FOR_ARCH=y | ||
| 34 | # CONFIG_ARM_OABI is not set | ||
| 35 | CONFIG_ARM_EABI=y | ||
| 36 | USE_BX=y | ||
| 37 | # CONFIG_GENERIC_ARM is not set | ||
| 38 | # CONFIG_ARM610 is not set | ||
| 39 | # CONFIG_ARM710 is not set | ||
| 40 | # CONFIG_ARM7TDMI is not set | ||
| 41 | # CONFIG_ARM720T is not set | ||
| 42 | # CONFIG_ARM920T is not set | ||
| 43 | # CONFIG_ARM922T is not set | ||
| 44 | # CONFIG_ARM926T is not set | ||
| 45 | # CONFIG_ARM10T is not set | ||
| 46 | # CONFIG_ARM1136JF_S is not set | ||
| 47 | # CONFIG_ARM1176JZ_S is not set | ||
| 48 | # CONFIG_ARM1176JZF_S is not set | ||
| 49 | # CONFIG_ARM_SA110 is not set | ||
| 50 | # CONFIG_ARM_SA1100 is not set | ||
| 51 | CONFIG_ARM_XSCALE=y | ||
| 52 | # CONFIG_ARM_IWMMXT is not set | ||
| 53 | TARGET_SUBARCH="" | ||
| 54 | |||
| 55 | # | ||
| 56 | # Using ELF file format | ||
| 57 | # | ||
| 58 | ARCH_ANY_ENDIAN=y | ||
| 59 | ARCH_LITTLE_ENDIAN=y | ||
| 60 | # ARCH_WANTS_BIG_ENDIAN is not set | ||
| 61 | ARCH_WANTS_LITTLE_ENDIAN=y | ||
| 62 | ARCH_HAS_MMU=y | ||
| 63 | ARCH_USE_MMU=y | ||
| 64 | UCLIBC_HAS_FLOATS=y | ||
| 65 | # UCLIBC_HAS_FPU is not set | ||
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | ||
| 67 | DO_C99_MATH=y | ||
| 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" | ||
| 69 | HAVE_DOT_CONFIG=y | ||
| 70 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-001-fix-mmap.patch b/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-001-fix-mmap.patch deleted file mode 100644 index 4775e8c332..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-001-fix-mmap.patch +++ /dev/null | |||
| @@ -1,91 +0,0 @@ | |||
| 1 | --- uClibc-0.9.29.oorig/test/mmap/mmap2.c (revision 0) | ||
| 2 | +++ uClibc-0.9.29/test/mmap/mmap2.c (revision 18616) | ||
| 3 | @@ -0,0 +1,41 @@ | ||
| 4 | +/* When trying to map /dev/mem with offset 0xFFFFF000 on the ARM platform, mmap | ||
| 5 | + * returns -EOVERFLOW. | ||
| 6 | + * | ||
| 7 | + * Since off_t is defined as a long int and the sign bit is set in the address, | ||
| 8 | + * the shift operation shifts in ones instead of zeroes | ||
| 9 | + * from the left. This results the offset sent to the kernel function becomes | ||
| 10 | + * 0xFFFFFFFF instead of 0x000FFFFF with MMAP2_PAGE_SHIFT set to 12. | ||
| 11 | + */ | ||
| 12 | + | ||
| 13 | +#include <unistd.h> | ||
| 14 | +#include <stdio.h> | ||
| 15 | +#include <stdlib.h> | ||
| 16 | +#include <string.h> | ||
| 17 | +#include <errno.h> | ||
| 18 | +#include <fcntl.h> | ||
| 19 | +#include <sys/mman.h> | ||
| 20 | + | ||
| 21 | +#define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \ | ||
| 22 | + __LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0) | ||
| 23 | + | ||
| 24 | +#define MAP_SIZE 4096UL | ||
| 25 | +#define MAP_MASK (MAP_SIZE - 1) | ||
| 26 | + | ||
| 27 | +int main(int argc, char **argv) { | ||
| 28 | + void* map_base = 0; | ||
| 29 | + int fd; | ||
| 30 | + off_t target = 0xfffff000; | ||
| 31 | + if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL; | ||
| 32 | + printf("/dev/mem opened.\n"); | ||
| 33 | + fflush(stdout); | ||
| 34 | + | ||
| 35 | + /* Map one page */ | ||
| 36 | + map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, | ||
| 37 | + fd, target & ~MAP_MASK); | ||
| 38 | + if(map_base == (void *) -1) FATAL; | ||
| 39 | + printf("Memory mapped at address %p.\n", map_base); | ||
| 40 | + fflush(stdout); | ||
| 41 | + if(munmap(map_base, MAP_SIZE) == -1) FATAL; | ||
| 42 | + close(fd); | ||
| 43 | + return 0; | ||
| 44 | +} | ||
| 45 | --- uClibc-0.9.29.oorig/libc/sysdeps/linux/arm/mmap.c (revision 18615) | ||
| 46 | +++ uClibc-0.9.29/libc/sysdeps/linux/arm/mmap.c (revision 18616) | ||
| 47 | @@ -27,7 +27,6 @@ __ptr_t mmap(__ptr_t addr, size_t len, i | ||
| 48 | |||
| 49 | #elif defined (__NR_mmap2) | ||
| 50 | #define __NR__mmap __NR_mmap2 | ||
| 51 | - | ||
| 52 | #ifndef MMAP2_PAGE_SHIFT | ||
| 53 | # define MMAP2_PAGE_SHIFT 12 | ||
| 54 | #endif | ||
| 55 | @@ -39,9 +38,17 @@ __ptr_t mmap(__ptr_t addr, size_t len, i | ||
| 56 | { | ||
| 57 | /* check if offset is page aligned */ | ||
| 58 | if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) | ||
| 59 | + { | ||
| 60 | + __set_errno(EINVAL); | ||
| 61 | return MAP_FAILED; | ||
| 62 | + } | ||
| 63 | +#ifdef __USE_FILE_OFFSET64 | ||
| 64 | + return (__ptr_t) _mmap (addr, len, prot, flags, | ||
| 65 | + fd,((__u_quad_t) offset >> MMAP2_PAGE_SHIFT)); | ||
| 66 | +#else | ||
| 67 | return (__ptr_t) _mmap (addr, len, prot, flags, | ||
| 68 | - fd,(off_t) (offset >> MMAP2_PAGE_SHIFT)); | ||
| 69 | + fd,((__u_long) offset >> MMAP2_PAGE_SHIFT)); | ||
| 70 | +#endif | ||
| 71 | } | ||
| 72 | #elif defined (__NR_mmap) | ||
| 73 | # define __NR__mmap __NR_mmap | ||
| 74 | --- uClibc-0.9.29.oorig/libc/sysdeps/linux/common/mmap64.c (revision 18615) | ||
| 75 | +++ uClibc-0.9.29/libc/sysdeps/linux/common/mmap64.c (revision 18616) | ||
| 76 | @@ -58,8 +58,13 @@ __ptr_t mmap64(__ptr_t addr, size_t len, | ||
| 77 | __set_errno(EINVAL); | ||
| 78 | return MAP_FAILED; | ||
| 79 | } | ||
| 80 | - | ||
| 81 | - return __syscall_mmap2(addr, len, prot, flags, fd, (off_t) (offset >> MMAP2_PAGE_SHIFT)); | ||
| 82 | +#ifdef __USE_FILE_OFFSET64 | ||
| 83 | + return __syscall_mmap2(addr, len, prot, flags, | ||
| 84 | + fd,((__u_quad_t)offset >> MMAP2_PAGE_SHIFT)); | ||
| 85 | +#else | ||
| 86 | + return __syscall_mmap2(addr, len, prot, flags, | ||
| 87 | + fd,((__u_long)offset >> MMAP2_PAGE_SHIFT)); | ||
| 88 | +#endif | ||
| 89 | } | ||
| 90 | |||
| 91 | # endif | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-conditional-sched_affinity.patch b/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-conditional-sched_affinity.patch deleted file mode 100644 index 509c42af52..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-conditional-sched_affinity.patch +++ /dev/null | |||
| @@ -1,53 +0,0 @@ | |||
| 1 | diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c | ||
| 2 | --- uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c 2007-02-12 16:52:32.000000000 -0600 | ||
| 3 | +++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c 2007-05-09 18:05:09.397411811 -0500 | ||
| 4 | @@ -29,6 +29,7 @@ | ||
| 5 | #include <sys/param.h> | ||
| 6 | #include <sys/types.h> | ||
| 7 | |||
| 8 | +#ifdef __NR_sched_getaffinity | ||
| 9 | libc_hidden_proto(memset) | ||
| 10 | |||
| 11 | #define __NR___syscall_sched_getaffinity __NR_sched_getaffinity | ||
| 12 | @@ -48,5 +49,15 @@ | ||
| 13 | } | ||
| 14 | return res; | ||
| 15 | } | ||
| 16 | +#else | ||
| 17 | +/* | ||
| 18 | +int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset) | ||
| 19 | +{ | ||
| 20 | + __set_errno(ENOSYS); | ||
| 21 | + return -1; | ||
| 22 | +} | ||
| 23 | +*/ | ||
| 24 | #endif | ||
| 25 | #endif | ||
| 26 | + | ||
| 27 | +#endif | ||
| 28 | diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c | ||
| 29 | --- uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c 2007-02-12 16:52:32.000000000 -0600 | ||
| 30 | +++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c 2007-05-09 18:05:09.397411811 -0500 | ||
| 31 | @@ -31,6 +31,7 @@ | ||
| 32 | #include <sys/types.h> | ||
| 33 | #include <alloca.h> | ||
| 34 | |||
| 35 | +#ifdef __NR_sched_setaffinity | ||
| 36 | libc_hidden_proto(getpid) | ||
| 37 | |||
| 38 | #define __NR___syscall_sched_setaffinity __NR_sched_setaffinity | ||
| 39 | @@ -74,5 +75,14 @@ | ||
| 40 | |||
| 41 | return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset); | ||
| 42 | } | ||
| 43 | +#else | ||
| 44 | +/* | ||
| 45 | +int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset) | ||
| 46 | +{ | ||
| 47 | + __set_errno(ENOSYS); | ||
| 48 | + return -1; | ||
| 49 | +} | ||
| 50 | +*/ | ||
| 51 | +#endif | ||
| 52 | #endif | ||
| 53 | #endif | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-gethostent_r-failure-retval.patch b/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-gethostent_r-failure-retval.patch deleted file mode 100644 index 7b246c1ad7..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-gethostent_r-failure-retval.patch +++ /dev/null | |||
| @@ -1,12 +0,0 @@ | |||
| 1 | diff -ur uClibc-0.9.29/libc/inet/resolv.c uClibc-0.9.29-patched/libc/inet/resolv.c | ||
| 2 | --- uClibc-0.9.29/libc/inet/resolv.c 2007-04-23 12:01:05.000000000 -0500 | ||
| 3 | +++ uClibc-0.9.29-patched/libc/inet/resolv.c 2007-05-09 18:05:33.563404419 -0500 | ||
| 4 | @@ -1700,7 +1700,7 @@ | ||
| 5 | int gethostent_r(struct hostent *result_buf, char *buf, size_t buflen, | ||
| 6 | struct hostent **result, int *h_errnop) | ||
| 7 | { | ||
| 8 | - int ret; | ||
| 9 | + int ret = HOST_NOT_FOUND; | ||
| 10 | |||
| 11 | __UCLIBC_MUTEX_LOCK(mylock); | ||
| 12 | if (__gethostent_fp == NULL) { | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-internal_function-definition.patch b/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-internal_function-definition.patch deleted file mode 100644 index 9b88d826f1..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-fix-internal_function-definition.patch +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | Index: uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h (revision 18898) | ||
| 4 | +++ uClibc/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h (working copy) | ||
| 5 | @@ -42,6 +42,8 @@ | ||
| 6 | /* define if target supports IEEE signed zero floats */ | ||
| 7 | #define __UCLIBC_HAVE_SIGNED_ZERO__ | ||
| 8 | |||
| 9 | +#if defined _LIBC | ||
| 10 | #define internal_function __attribute__ ((regparm (3), stdcall)) | ||
| 11 | +#endif | ||
| 12 | |||
| 13 | #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */ | ||
| 14 | Index: uClibc/include/libc-symbols.h | ||
| 15 | =================================================================== | ||
| 16 | --- uClibc/include/libc-symbols.h (revision 18898) | ||
| 17 | +++ uClibc/include/libc-symbols.h (working copy) | ||
| 18 | @@ -22,6 +22,16 @@ | ||
| 19 | #ifndef _LIBC_SYMBOLS_H | ||
| 20 | #define _LIBC_SYMBOLS_H 1 | ||
| 21 | |||
| 22 | +/* This is defined for the compilation of all C library code. features.h | ||
| 23 | + tests this to avoid inclusion of stubs.h while compiling the library, | ||
| 24 | + before stubs.h has been generated. Some library code that is shared | ||
| 25 | + with other packages also tests this symbol to see if it is being | ||
| 26 | + compiled as part of the C library. We must define this before including | ||
| 27 | + config.h, because it makes some definitions conditional on whether libc | ||
| 28 | + itself is being compiled, or just some generator program. */ | ||
| 29 | +#define _LIBC 1 | ||
| 30 | + | ||
| 31 | + | ||
| 32 | /* This file's macros are included implicitly in the compilation of every | ||
| 33 | file in the C library by -imacros. | ||
| 34 | |||
| 35 | @@ -40,16 +50,6 @@ | ||
| 36 | |||
| 37 | #include <bits/uClibc_arch_features.h> | ||
| 38 | |||
| 39 | - | ||
| 40 | -/* This is defined for the compilation of all C library code. features.h | ||
| 41 | - tests this to avoid inclusion of stubs.h while compiling the library, | ||
| 42 | - before stubs.h has been generated. Some library code that is shared | ||
| 43 | - with other packages also tests this symbol to see if it is being | ||
| 44 | - compiled as part of the C library. We must define this before including | ||
| 45 | - config.h, because it makes some definitions conditional on whether libc | ||
| 46 | - itself is being compiled, or just some generator program. */ | ||
| 47 | -#define _LIBC 1 | ||
| 48 | - | ||
| 49 | /* Enable declarations of GNU extensions, since we are compiling them. */ | ||
| 50 | #define _GNU_SOURCE 1 | ||
| 51 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-rm-whitespace.patch b/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-rm-whitespace.patch deleted file mode 100644 index 6004f91e32..0000000000 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc-0.9.29-rm-whitespace.patch +++ /dev/null | |||
| @@ -1,86 +0,0 @@ | |||
| 1 | diff -urN uClibc-0.9.29-0rig/include/assert.h uClibc-0.9.29/include/assert.h | ||
| 2 | --- uClibc-0.9.29-0rig/include/assert.h 2005-11-03 23:42:46.000000000 +0100 | ||
| 3 | +++ uClibc-0.9.29/include/assert.h 2007-08-13 19:10:57.000000000 +0200 | ||
| 4 | @@ -31,7 +31,7 @@ | ||
| 5 | #define _ASSERT_H 1 | ||
| 6 | #include <features.h> | ||
| 7 | |||
| 8 | -#if defined __cplusplus && __GNUC_PREREQ (2,95) | ||
| 9 | +#if defined __cplusplus && __GNUC_PREREQ(2,95) | ||
| 10 | # define __ASSERT_VOID_CAST static_cast<void> | ||
| 11 | #else | ||
| 12 | # define __ASSERT_VOID_CAST (void) | ||
| 13 | @@ -59,13 +59,17 @@ | ||
| 14 | (__ASSERT_VOID_CAST ((expr) ? 0 : \ | ||
| 15 | (__assert (__STRING(expr), __FILE__, __LINE__, \ | ||
| 16 | __ASSERT_FUNCTION), 0))) | ||
| 17 | - | ||
| 18 | + | ||
| 19 | +/* Define some temporaries to workaround tinyx makedepend bug */ | ||
| 20 | +#define __GNUC_PREREQ_2_6 __GNUC_PREREQ(2, 6) | ||
| 21 | +#define __GNUC_PREREQ_2_4 __GNUC_PREREQ(2, 4) | ||
| 22 | /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' | ||
| 23 | which contains the name of the function currently being defined. | ||
| 24 | This is broken in G++ before version 2.6. | ||
| 25 | C9x has a similar variable called __func__, but prefer the GCC one since | ||
| 26 | it demangles C++ function names. */ | ||
| 27 | -# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4) | ||
| 28 | + | ||
| 29 | +# if defined __cplusplus ? __GNUC_PREREQ_2_6 : __GNUC_PREREQ_2_4 | ||
| 30 | # define __ASSERT_FUNCTION __PRETTY_FUNCTION__ | ||
| 31 | # else | ||
| 32 | # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L | ||
| 33 | diff -urN uClibc-0.9.29-0rig/include/complex.h uClibc-0.9.29/include/complex.h | ||
| 34 | --- uClibc-0.9.29-0rig/include/complex.h 2002-05-09 10:15:21.000000000 +0200 | ||
| 35 | +++ uClibc-0.9.29/include/complex.h 2007-08-13 17:55:29.000000000 +0200 | ||
| 36 | @@ -33,7 +33,7 @@ | ||
| 37 | /* We might need to add support for more compilers here. But since ISO | ||
| 38 | C99 is out hopefully all maintained compilers will soon provide the data | ||
| 39 | types `float complex' and `double complex'. */ | ||
| 40 | -#if __GNUC_PREREQ (2, 7) && !__GNUC_PREREQ (2, 97) | ||
| 41 | +#if __GNUC_PREREQ(2, 7) && !__GNUC_PREREQ(2, 97) | ||
| 42 | # define _Complex __complex__ | ||
| 43 | #endif | ||
| 44 | |||
| 45 | diff -urN uClibc-0.9.29-0rig/include/features.h uClibc-0.9.29/include/features.h | ||
| 46 | --- uClibc-0.9.29-0rig/include/features.h 2006-11-29 22:10:04.000000000 +0100 | ||
| 47 | +++ uClibc-0.9.29/include/features.h 2007-08-13 17:55:51.000000000 +0200 | ||
| 48 | @@ -143,7 +143,7 @@ | ||
| 49 | |||
| 50 | /* Convenience macros to test the versions of glibc and gcc. | ||
| 51 | Use them like this: | ||
| 52 | - #if __GNUC_PREREQ (2,8) | ||
| 53 | + #if __GNUC_PREREQ(2,8) | ||
| 54 | ... code requiring gcc 2.8 or later ... | ||
| 55 | #endif | ||
| 56 | Note - they won't work for gcc1 or glibc1, since the _MINOR macros | ||
| 57 | @@ -297,7 +297,7 @@ | ||
| 58 | /* uClibc does not support _FORTIFY_SOURCE */ | ||
| 59 | #undef _FORTIFY_SOURCE | ||
| 60 | #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \ | ||
| 61 | - && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 | ||
| 62 | + && __GNUC_PREREQ(4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0 | ||
| 63 | # if _FORTIFY_SOURCE > 1 | ||
| 64 | # define __USE_FORTIFY_LEVEL 2 | ||
| 65 | # else | ||
| 66 | @@ -366,7 +366,7 @@ | ||
| 67 | #endif /* !ASSEMBLER */ | ||
| 68 | |||
| 69 | /* Decide whether we can define 'extern inline' functions in headers. */ | ||
| 70 | -#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \ | ||
| 71 | +#if __GNUC_PREREQ(2, 7) && defined __OPTIMIZE__ \ | ||
| 72 | && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ | ||
| 73 | # define __USE_EXTERN_INLINES 1 | ||
| 74 | #endif | ||
| 75 | diff -urN uClibc-0.9.29-0rig/include/tgmath.h uClibc-0.9.29/include/tgmath.h | ||
| 76 | --- uClibc-0.9.29-0rig/include/tgmath.h 2002-05-09 10:15:21.000000000 +0200 | ||
| 77 | +++ uClibc-0.9.29/include/tgmath.h 2007-08-13 17:56:17.000000000 +0200 | ||
| 78 | @@ -34,7 +34,7 @@ | ||
| 79 | do not try this for now and instead concentrate only on GNU CC. Once | ||
| 80 | we have more information support for other compilers might follow. */ | ||
| 81 | |||
| 82 | -#if __GNUC_PREREQ (2, 7) | ||
| 83 | +#if __GNUC_PREREQ(2, 7) | ||
| 84 | |||
| 85 | # ifdef __NO_LONG_DOUBLE_MATH | ||
| 86 | # define __tgml(fct) fct | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch b/meta/packages/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch new file mode 100644 index 0000000000..a9c7a4fb10 --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/Use-__always_inline-instead-of-__inline__.patch | |||
| @@ -0,0 +1,393 @@ | |||
| 1 | From c190f738e1b0e87658ea5f86c057fb147dc19428 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Carmelo Amoroso <carmelo.amoroso@st.com> | ||
| 3 | Date: Thu, 5 Mar 2009 13:28:55 +0000 | ||
| 4 | Subject: [PATCH] Use __always_inline instead of __inline__ | ||
| 5 | |||
| 6 | --- | ||
| 7 | ldso/ldso/arm/dl-sysdep.h | 8 ++++---- | ||
| 8 | ldso/ldso/bfin/dl-sysdep.h | 2 +- | ||
| 9 | ldso/ldso/cris/dl-sysdep.h | 6 +++--- | ||
| 10 | ldso/ldso/i386/dl-sysdep.h | 10 +++++----- | ||
| 11 | ldso/ldso/m68k/dl-sysdep.h | 6 +++--- | ||
| 12 | ldso/ldso/mips/dl-sysdep.h | 8 ++++---- | ||
| 13 | ldso/ldso/powerpc/dl-sysdep.h | 8 ++++---- | ||
| 14 | ldso/ldso/sh/dl-sysdep.h | 8 ++++---- | ||
| 15 | ldso/ldso/sh64/dl-sysdep.h | 6 +++--- | ||
| 16 | ldso/ldso/sparc/dl-sysdep.h | 8 ++++---- | ||
| 17 | ldso/ldso/xtensa/dl-sysdep.h | 6 +++--- | ||
| 18 | 11 files changed, 38 insertions(+), 38 deletions(-) | ||
| 19 | |||
| 20 | diff --git a/ldso/ldso/arm/dl-sysdep.h b/ldso/ldso/arm/dl-sysdep.h | ||
| 21 | index eea3b98..5191dd7 100644 | ||
| 22 | --- a/ldso/ldso/arm/dl-sysdep.h | ||
| 23 | +++ b/ldso/ldso/arm/dl-sysdep.h | ||
| 24 | @@ -15,7 +15,7 @@ | ||
| 25 | GOT_BASE[1] = (unsigned long) MODULE; \ | ||
| 26 | } | ||
| 27 | |||
| 28 | -static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p) | ||
| 29 | +static __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p) | ||
| 30 | { | ||
| 31 | unsigned long i,t,inc; | ||
| 32 | i=p; t=0; | ||
| 33 | @@ -67,7 +67,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); | ||
| 34 | first element of the GOT. We used to use the PIC register to do this | ||
| 35 | without a constant pool reference, but GCC 4.2 will use a pseudo-register | ||
| 36 | for the PIC base, so it may not be in r10. */ | ||
| 37 | -static __inline__ Elf32_Addr __attribute__ ((unused)) | ||
| 38 | +static __always_inline Elf32_Addr __attribute__ ((unused)) | ||
| 39 | elf_machine_dynamic (void) | ||
| 40 | { | ||
| 41 | Elf32_Addr dynamic; | ||
| 42 | @@ -99,7 +99,7 @@ elf_machine_dynamic (void) | ||
| 43 | } | ||
| 44 | |||
| 45 | /* Return the run-time load address of the shared object. */ | ||
| 46 | -static __inline__ Elf32_Addr __attribute__ ((unused)) | ||
| 47 | +static __always_inline Elf32_Addr __attribute__ ((unused)) | ||
| 48 | elf_machine_load_address (void) | ||
| 49 | { | ||
| 50 | extern void __dl_start __asm__ ("_dl_start"); | ||
| 51 | @@ -123,7 +123,7 @@ elf_machine_load_address (void) | ||
| 52 | return pcrel_addr - got_addr; | ||
| 53 | } | ||
| 54 | |||
| 55 | -static __inline__ void | ||
| 56 | +static __always_inline void | ||
| 57 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 58 | Elf32_Word relative_count) | ||
| 59 | { | ||
| 60 | diff --git a/ldso/ldso/bfin/dl-sysdep.h b/ldso/ldso/bfin/dl-sysdep.h | ||
| 61 | index 3c88da4..f0c5129 100644 | ||
| 62 | --- a/ldso/ldso/bfin/dl-sysdep.h | ||
| 63 | +++ b/ldso/ldso/bfin/dl-sysdep.h | ||
| 64 | @@ -210,7 +210,7 @@ while (0) | ||
| 65 | #endif | ||
| 66 | |||
| 67 | #include <elf.h> | ||
| 68 | -static __inline__ void | ||
| 69 | +static __always_inline void | ||
| 70 | elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr, | ||
| 71 | Elf32_Word relative_count) | ||
| 72 | { | ||
| 73 | diff --git a/ldso/ldso/cris/dl-sysdep.h b/ldso/ldso/cris/dl-sysdep.h | ||
| 74 | index ffb763a..e454c10 100644 | ||
| 75 | --- a/ldso/ldso/cris/dl-sysdep.h | ||
| 76 | +++ b/ldso/ldso/cris/dl-sysdep.h | ||
| 77 | @@ -37,7 +37,7 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entr | ||
| 78 | || ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT) \ | ||
| 79 | | (((type) == R_CRIS_COPY) * ELF_RTYPE_CLASS_COPY)) | ||
| 80 | |||
| 81 | -static __inline__ Elf32_Addr | ||
| 82 | +static __always_inline Elf32_Addr | ||
| 83 | elf_machine_dynamic(void) | ||
| 84 | { | ||
| 85 | /* Don't just set this to an asm variable "r0" since that's not logical | ||
| 86 | @@ -59,7 +59,7 @@ elf_machine_dynamic(void) | ||
| 87 | there's some other symbol we could use, that we don't *have* to force a | ||
| 88 | GOT entry for. */ | ||
| 89 | |||
| 90 | -static __inline__ Elf32_Addr | ||
| 91 | +static __always_inline Elf32_Addr | ||
| 92 | elf_machine_load_address(void) | ||
| 93 | { | ||
| 94 | Elf32_Addr gotaddr_diff; | ||
| 95 | @@ -93,7 +93,7 @@ elf_machine_load_address(void) | ||
| 96 | return gotaddr_diff; | ||
| 97 | } | ||
| 98 | |||
| 99 | -static __inline__ void | ||
| 100 | +static __always_inline void | ||
| 101 | elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 102 | Elf32_Word relative_count) | ||
| 103 | { | ||
| 104 | diff --git a/ldso/ldso/i386/dl-sysdep.h b/ldso/ldso/i386/dl-sysdep.h | ||
| 105 | index 77fa372..6e84861 100644 | ||
| 106 | --- a/ldso/ldso/i386/dl-sysdep.h | ||
| 107 | +++ b/ldso/ldso/i386/dl-sysdep.h | ||
| 108 | @@ -37,8 +37,8 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_ent | ||
| 109 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 110 | first element of the GOT. This must be inlined in a function which | ||
| 111 | uses global data. */ | ||
| 112 | -static __inline__ Elf32_Addr elf_machine_dynamic (void) attribute_unused; | ||
| 113 | -static __inline__ Elf32_Addr | ||
| 114 | +static __always_inline Elf32_Addr elf_machine_dynamic (void) attribute_unused; | ||
| 115 | +static __always_inline Elf32_Addr | ||
| 116 | elf_machine_dynamic (void) | ||
| 117 | { | ||
| 118 | register Elf32_Addr *got __asm__ ("%ebx"); | ||
| 119 | @@ -47,8 +47,8 @@ elf_machine_dynamic (void) | ||
| 120 | |||
| 121 | |||
| 122 | /* Return the run-time load address of the shared object. */ | ||
| 123 | -static __inline__ Elf32_Addr elf_machine_load_address (void) attribute_unused; | ||
| 124 | -static __inline__ Elf32_Addr | ||
| 125 | +static __always_inline Elf32_Addr elf_machine_load_address (void) attribute_unused; | ||
| 126 | +static __always_inline Elf32_Addr | ||
| 127 | elf_machine_load_address (void) | ||
| 128 | { | ||
| 129 | /* It doesn't matter what variable this is, the reference never makes | ||
| 130 | @@ -61,7 +61,7 @@ elf_machine_load_address (void) | ||
| 131 | return addr; | ||
| 132 | } | ||
| 133 | |||
| 134 | -static __inline__ void | ||
| 135 | +static __always_inline void | ||
| 136 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 137 | Elf32_Word relative_count) | ||
| 138 | { | ||
| 139 | diff --git a/ldso/ldso/m68k/dl-sysdep.h b/ldso/ldso/m68k/dl-sysdep.h | ||
| 140 | index 8e26e20..259cb84 100644 | ||
| 141 | --- a/ldso/ldso/m68k/dl-sysdep.h | ||
| 142 | +++ b/ldso/ldso/m68k/dl-sysdep.h | ||
| 143 | @@ -39,7 +39,7 @@ extern unsigned long _dl_linux_resolver (struct elf_resolve *, int); | ||
| 144 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 145 | first element of the GOT. This must be inlined in a function which | ||
| 146 | uses global data. */ | ||
| 147 | -static __inline__ Elf32_Addr | ||
| 148 | +static __always_inline Elf32_Addr | ||
| 149 | elf_machine_dynamic (void) | ||
| 150 | { | ||
| 151 | register Elf32_Addr *got __asm__ ("%a5"); | ||
| 152 | @@ -48,7 +48,7 @@ elf_machine_dynamic (void) | ||
| 153 | |||
| 154 | |||
| 155 | /* Return the run-time load address of the shared object. */ | ||
| 156 | -static __inline__ Elf32_Addr | ||
| 157 | +static __always_inline Elf32_Addr | ||
| 158 | elf_machine_load_address (void) | ||
| 159 | { | ||
| 160 | Elf32_Addr addr; | ||
| 161 | @@ -58,7 +58,7 @@ elf_machine_load_address (void) | ||
| 162 | return addr; | ||
| 163 | } | ||
| 164 | |||
| 165 | -static __inline__ void | ||
| 166 | +static __always_inline void | ||
| 167 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 168 | Elf32_Word relative_count) | ||
| 169 | { | ||
| 170 | diff --git a/ldso/ldso/mips/dl-sysdep.h b/ldso/ldso/mips/dl-sysdep.h | ||
| 171 | index cf6b28b..30d84fb 100644 | ||
| 172 | --- a/ldso/ldso/mips/dl-sysdep.h | ||
| 173 | +++ b/ldso/ldso/mips/dl-sysdep.h | ||
| 174 | @@ -169,7 +169,7 @@ void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy) | ||
| 175 | |||
| 176 | #define OFFSET_GP_GOT 0x7ff0 | ||
| 177 | |||
| 178 | -static __inline__ ElfW(Addr) * | ||
| 179 | +static __always_inline ElfW(Addr) * | ||
| 180 | elf_mips_got_from_gpreg (ElfW(Addr) gpreg) | ||
| 181 | { | ||
| 182 | /* FIXME: the offset of gp from GOT may be system-dependent. */ | ||
| 183 | @@ -179,7 +179,7 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpreg) | ||
| 184 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 185 | first element of the GOT. This must be inlined in a function which | ||
| 186 | uses global data. We assume its $gp points to the primary GOT. */ | ||
| 187 | -static __inline__ ElfW(Addr) | ||
| 188 | +static __always_inline ElfW(Addr) | ||
| 189 | elf_machine_dynamic (void) | ||
| 190 | { | ||
| 191 | register ElfW(Addr) gp __asm__ ("$28"); | ||
| 192 | @@ -198,7 +198,7 @@ elf_machine_dynamic (void) | ||
| 193 | #endif | ||
| 194 | |||
| 195 | /* Return the run-time load address of the shared object. */ | ||
| 196 | -static __inline__ ElfW(Addr) | ||
| 197 | +static __always_inline ElfW(Addr) | ||
| 198 | elf_machine_load_address (void) | ||
| 199 | { | ||
| 200 | ElfW(Addr) addr; | ||
| 201 | @@ -214,7 +214,7 @@ elf_machine_load_address (void) | ||
| 202 | return addr; | ||
| 203 | } | ||
| 204 | |||
| 205 | -static __inline__ void | ||
| 206 | +static __always_inline void | ||
| 207 | elf_machine_relative (ElfW(Addr) load_off, const ElfW(Addr) rel_addr, | ||
| 208 | ElfW(Word) relative_count) | ||
| 209 | { | ||
| 210 | diff --git a/ldso/ldso/powerpc/dl-sysdep.h b/ldso/ldso/powerpc/dl-sysdep.h | ||
| 211 | index fdbf564..f33214c 100644 | ||
| 212 | --- a/ldso/ldso/powerpc/dl-sysdep.h | ||
| 213 | +++ b/ldso/ldso/powerpc/dl-sysdep.h | ||
| 214 | @@ -85,7 +85,7 @@ void _dl_init_got(unsigned long *lpnt,struct elf_resolve *tpnt); | ||
| 215 | #define ELF_MACHINE_PLTREL_OVERLAP 1 | ||
| 216 | |||
| 217 | /* Return the value of the GOT pointer. */ | ||
| 218 | -static __inline__ Elf32_Addr * __attribute__ ((const)) | ||
| 219 | +static __always_inline Elf32_Addr * __attribute__ ((const)) | ||
| 220 | ppc_got (void) | ||
| 221 | { | ||
| 222 | Elf32_Addr *got; | ||
| 223 | @@ -104,14 +104,14 @@ ppc_got (void) | ||
| 224 | |||
| 225 | /* Return the link-time address of _DYNAMIC, stored as | ||
| 226 | the first value in the GOT. */ | ||
| 227 | -static __inline__ Elf32_Addr __attribute__ ((const)) | ||
| 228 | +static __always_inline Elf32_Addr __attribute__ ((const)) | ||
| 229 | elf_machine_dynamic (void) | ||
| 230 | { | ||
| 231 | return *ppc_got(); | ||
| 232 | } | ||
| 233 | |||
| 234 | /* Return the run-time load address of the shared object. */ | ||
| 235 | -static __inline__ Elf32_Addr __attribute__ ((const)) | ||
| 236 | +static __always_inline Elf32_Addr __attribute__ ((const)) | ||
| 237 | elf_machine_load_address (void) | ||
| 238 | { | ||
| 239 | Elf32_Addr *branchaddr; | ||
| 240 | @@ -159,7 +159,7 @@ elf_machine_load_address (void) | ||
| 241 | return runtime_dynamic - elf_machine_dynamic (); | ||
| 242 | } | ||
| 243 | |||
| 244 | -static __inline__ void | ||
| 245 | +static __always_inline void | ||
| 246 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 247 | Elf32_Word relative_count) | ||
| 248 | { | ||
| 249 | diff --git a/ldso/ldso/sh/dl-sysdep.h b/ldso/ldso/sh/dl-sysdep.h | ||
| 250 | index daedda5..d4fc784 100644 | ||
| 251 | --- a/ldso/ldso/sh/dl-sysdep.h | ||
| 252 | +++ b/ldso/ldso/sh/dl-sysdep.h | ||
| 253 | @@ -25,7 +25,7 @@ | ||
| 254 | struct elf_resolve; | ||
| 255 | extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); | ||
| 256 | |||
| 257 | -static __inline__ unsigned int | ||
| 258 | +static __always_inline unsigned int | ||
| 259 | _dl_urem(unsigned int n, unsigned int base) | ||
| 260 | { | ||
| 261 | int res; | ||
| 262 | @@ -95,7 +95,7 @@ _dl_urem(unsigned int n, unsigned int base) | ||
| 263 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 264 | first element of the GOT. This must be inlined in a function which | ||
| 265 | uses global data. */ | ||
| 266 | -static __inline__ Elf32_Addr __attribute__ ((unused)) | ||
| 267 | +static __always_inline Elf32_Addr __attribute__ ((unused)) | ||
| 268 | elf_machine_dynamic (void) | ||
| 269 | { | ||
| 270 | register Elf32_Addr *got; | ||
| 271 | @@ -104,7 +104,7 @@ elf_machine_dynamic (void) | ||
| 272 | } | ||
| 273 | |||
| 274 | /* Return the run-time load address of the shared object. */ | ||
| 275 | -static __inline__ Elf32_Addr __attribute__ ((unused)) | ||
| 276 | +static __always_inline Elf32_Addr __attribute__ ((unused)) | ||
| 277 | elf_machine_load_address (void) | ||
| 278 | { | ||
| 279 | Elf32_Addr addr; | ||
| 280 | @@ -146,7 +146,7 @@ elf_machine_load_address (void) | ||
| 281 | } \ | ||
| 282 | } | ||
| 283 | |||
| 284 | -static __inline__ void | ||
| 285 | +static __always_inline void | ||
| 286 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 287 | Elf32_Word relative_count) | ||
| 288 | { | ||
| 289 | diff --git a/ldso/ldso/sh64/dl-sysdep.h b/ldso/ldso/sh64/dl-sysdep.h | ||
| 290 | index fc67b12..15d9b5e 100644 | ||
| 291 | --- a/ldso/ldso/sh64/dl-sysdep.h | ||
| 292 | +++ b/ldso/ldso/sh64/dl-sysdep.h | ||
| 293 | @@ -41,7 +41,7 @@ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_ent | ||
| 294 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 295 | first element of the GOT. This must be inlined in a function which | ||
| 296 | uses global data. */ | ||
| 297 | -static __inline__ Elf32_Addr elf_machine_dynamic(void) | ||
| 298 | +static __always_inline Elf32_Addr elf_machine_dynamic(void) | ||
| 299 | { | ||
| 300 | register Elf32_Addr *got; | ||
| 301 | |||
| 302 | @@ -69,7 +69,7 @@ static __inline__ Elf32_Addr elf_machine_dynamic(void) | ||
| 303 | } | ||
| 304 | |||
| 305 | /* Return the run-time load address of the shared object. */ | ||
| 306 | -static __inline__ Elf32_Addr elf_machine_load_address(void) | ||
| 307 | +static __always_inline Elf32_Addr elf_machine_load_address(void) | ||
| 308 | { | ||
| 309 | Elf32_Addr addr; | ||
| 310 | |||
| 311 | @@ -122,7 +122,7 @@ static __inline__ Elf32_Addr elf_machine_load_address(void) | ||
| 312 | } \ | ||
| 313 | } | ||
| 314 | |||
| 315 | -static __inline__ void | ||
| 316 | +static __always_inline void | ||
| 317 | elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 318 | Elf32_Word relative_count) | ||
| 319 | { | ||
| 320 | diff --git a/ldso/ldso/sparc/dl-sysdep.h b/ldso/ldso/sparc/dl-sysdep.h | ||
| 321 | index 7936517..ebfa268 100644 | ||
| 322 | --- a/ldso/ldso/sparc/dl-sysdep.h | ||
| 323 | +++ b/ldso/ldso/sparc/dl-sysdep.h | ||
| 324 | @@ -52,7 +52,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry); | ||
| 325 | |||
| 326 | #ifndef COMPILE_ASM | ||
| 327 | /* Cheap modulo implementation, taken from arm/ld_sysdep.h. */ | ||
| 328 | -static __inline__ unsigned long | ||
| 329 | +static __always_inline unsigned long | ||
| 330 | sparc_mod(unsigned long m, unsigned long p) | ||
| 331 | { | ||
| 332 | unsigned long i, t, inc; | ||
| 333 | @@ -118,7 +118,7 @@ do { register Elf32_Addr pc __asm__("o7"); \ | ||
| 334 | /* Return the link-time address of _DYNAMIC. Conveniently, this is the | ||
| 335 | first element of the GOT. This must be inlined in a function which | ||
| 336 | uses global data. */ | ||
| 337 | -static __inline__ Elf32_Addr | ||
| 338 | +static __always_inline Elf32_Addr | ||
| 339 | elf_machine_dynamic (void) | ||
| 340 | { | ||
| 341 | register Elf32_Addr *got __asm__ ("%l7"); | ||
| 342 | @@ -129,7 +129,7 @@ elf_machine_dynamic (void) | ||
| 343 | } | ||
| 344 | |||
| 345 | /* Return the run-time load address of the shared object. */ | ||
| 346 | -static __inline__ Elf32_Addr | ||
| 347 | +static __always_inline Elf32_Addr | ||
| 348 | elf_machine_load_address (void) | ||
| 349 | { | ||
| 350 | register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7"); | ||
| 351 | @@ -148,7 +148,7 @@ elf_machine_load_address (void) | ||
| 352 | return (Elf32_Addr) got - *got + (pc[2] - pc[3]) * 4 - 4; | ||
| 353 | } | ||
| 354 | |||
| 355 | -static __inline__ void | ||
| 356 | +static __always_inline void | ||
| 357 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 358 | Elf32_Word relative_count) | ||
| 359 | { | ||
| 360 | diff --git a/ldso/ldso/xtensa/dl-sysdep.h b/ldso/ldso/xtensa/dl-sysdep.h | ||
| 361 | index daae428..07b9b79 100644 | ||
| 362 | --- a/ldso/ldso/xtensa/dl-sysdep.h | ||
| 363 | +++ b/ldso/ldso/xtensa/dl-sysdep.h | ||
| 364 | @@ -85,7 +85,7 @@ extern unsigned long _dl_linux_resolver (struct elf_resolve *, int); | ||
| 365 | (((type) == R_XTENSA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) | ||
| 366 | |||
| 367 | /* Return the link-time address of _DYNAMIC. */ | ||
| 368 | -static __inline__ Elf32_Addr | ||
| 369 | +static __always_inline Elf32_Addr | ||
| 370 | elf_machine_dynamic (void) | ||
| 371 | { | ||
| 372 | /* This function is only used while bootstrapping the runtime linker. | ||
| 373 | @@ -95,7 +95,7 @@ elf_machine_dynamic (void) | ||
| 374 | } | ||
| 375 | |||
| 376 | /* Return the run-time load address of the shared object. */ | ||
| 377 | -static __inline__ Elf32_Addr | ||
| 378 | +static __always_inline Elf32_Addr | ||
| 379 | elf_machine_load_address (void) | ||
| 380 | { | ||
| 381 | Elf32_Addr addr, tmp; | ||
| 382 | @@ -116,7 +116,7 @@ elf_machine_load_address (void) | ||
| 383 | return addr - 3; | ||
| 384 | } | ||
| 385 | |||
| 386 | -static __inline__ void | ||
| 387 | +static __always_inline void | ||
| 388 | elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, | ||
| 389 | Elf32_Word relative_count) | ||
| 390 | { | ||
| 391 | -- | ||
| 392 | 1.6.3.3.444.g4ecbc | ||
| 393 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/a780/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/akita/uClibc.machine index e27931cf6b..e27931cf6b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/a780/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/akita/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch b/meta/packages/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch new file mode 100644 index 0000000000..e222668a66 --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/arm-linuxthreads.patch | |||
| @@ -0,0 +1,218 @@ | |||
| 1 | Index: uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S | ||
| 2 | =================================================================== | ||
| 3 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
| 4 | +++ uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2008-08-28 00:22:06.278340855 +0200 | ||
| 5 | @@ -0,0 +1,78 @@ | ||
| 6 | +/* Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc. | ||
| 7 | + This file is part of the GNU C Library. | ||
| 8 | + Contributed by Philip Blundell <philb@gnu.org>. | ||
| 9 | + | ||
| 10 | + The GNU C Library is free software; you can redistribute it and/or | ||
| 11 | + modify it under the terms of the GNU Lesser General Public | ||
| 12 | + License as published by the Free Software Foundation; either | ||
| 13 | + version 2.1 of the License, or (at your option) any later version. | ||
| 14 | + | ||
| 15 | + The GNU C Library is distributed in the hope that it will be useful, | ||
| 16 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 18 | + Lesser General Public License for more details. | ||
| 19 | + | ||
| 20 | + You should have received a copy of the GNU Lesser General Public | ||
| 21 | + License along with the GNU C Library; if not, write to the Free | ||
| 22 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
| 23 | + 02111-1307 USA. */ | ||
| 24 | + | ||
| 25 | +#include <sysdep-cancel.h> | ||
| 26 | +#define _ERRNO_H 1 | ||
| 27 | +#include <bits/errno.h> | ||
| 28 | +#include <kernel-features.h> | ||
| 29 | + | ||
| 30 | +/* Clone the calling process, but without copying the whole address space. | ||
| 31 | + The calling process is suspended until the new process exits or is | ||
| 32 | + replaced by a call to `execve'. Return -1 for errors, 0 to the new process, | ||
| 33 | + and the process ID of the new process to the old process. */ | ||
| 34 | + | ||
| 35 | +ENTRY (__vfork) | ||
| 36 | + | ||
| 37 | +#ifdef __NR_vfork | ||
| 38 | + | ||
| 39 | +#ifdef SHARED | ||
| 40 | + ldr ip, 1f | ||
| 41 | + ldr r0, 2f | ||
| 42 | +3: add ip, pc, ip | ||
| 43 | + ldr r0, [ip, r0] | ||
| 44 | +#else | ||
| 45 | + ldr r0, 1f | ||
| 46 | +#endif | ||
| 47 | + movs r0, r0 | ||
| 48 | + bne HIDDEN_JUMPTARGET (__fork) | ||
| 49 | + | ||
| 50 | + DO_CALL (vfork, 0) | ||
| 51 | + cmn a1, #4096 | ||
| 52 | + RETINSTR(cc, lr) | ||
| 53 | + | ||
| 54 | +#ifndef __ASSUME_VFORK_SYSCALL | ||
| 55 | + /* Check if vfork syscall is known at all. */ | ||
| 56 | + cmn a1, #ENOSYS | ||
| 57 | + bne PLTJMP(C_SYMBOL_NAME(__syscall_error)) | ||
| 58 | +#endif | ||
| 59 | + | ||
| 60 | +#endif | ||
| 61 | + | ||
| 62 | +#ifndef __ASSUME_VFORK_SYSCALL | ||
| 63 | + /* If we don't have vfork, fork is close enough. */ | ||
| 64 | + DO_CALL (fork, 0) | ||
| 65 | + cmn a1, #4096 | ||
| 66 | + RETINSTR(cc, lr) | ||
| 67 | +#elif !defined __NR_vfork | ||
| 68 | +# error "__NR_vfork not available and __ASSUME_VFORK_SYSCALL defined" | ||
| 69 | +#endif | ||
| 70 | + b PLTJMP(C_SYMBOL_NAME(__syscall_error)) | ||
| 71 | + | ||
| 72 | +#ifdef SHARED | ||
| 73 | +1: .word _GLOBAL_OFFSET_TABLE_ - 3b - 8 | ||
| 74 | +2: .word __libc_pthread_functions(GOTOFF) | ||
| 75 | +#else | ||
| 76 | + .weak pthread_create | ||
| 77 | +1: .word pthread_create | ||
| 78 | +#endif | ||
| 79 | + | ||
| 80 | +PSEUDO_END (__vfork) | ||
| 81 | +libc_hidden_def (__vfork) | ||
| 82 | + | ||
| 83 | +weak_alias (__vfork, vfork) | ||
| 84 | Index: uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h | ||
| 85 | =================================================================== | ||
| 86 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
| 87 | +++ uClibc/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2008-08-28 00:28:04.301636993 +0200 | ||
| 88 | @@ -0,0 +1,130 @@ | ||
| 89 | +/* Copyright (C) 2003, 2005 Free Software Foundation, Inc. | ||
| 90 | + This file is part of the GNU C Library. | ||
| 91 | + Contributed by Phil Blundell <pb@nexus.co.uk>, 2003. | ||
| 92 | + | ||
| 93 | + The GNU C Library is free software; you can redistribute it and/or | ||
| 94 | + modify it under the terms of the GNU Lesser General Public | ||
| 95 | + License as published by the Free Software Foundation; either | ||
| 96 | + version 2.1 of the License, or (at your option) any later version. | ||
| 97 | + | ||
| 98 | + The GNU C Library is distributed in the hope that it will be useful, | ||
| 99 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 100 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
| 101 | + Lesser General Public License for more details. | ||
| 102 | + | ||
| 103 | + You should have received a copy of the GNU Lesser General Public | ||
| 104 | + License along with the GNU C Library; if not, write to the Free | ||
| 105 | + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | ||
| 106 | + 02111-1307 USA. */ | ||
| 107 | + | ||
| 108 | +#include <tls.h> | ||
| 109 | +#include <pt-machine.h> | ||
| 110 | +#ifndef __ASSEMBLER__ | ||
| 111 | +# include <linuxthreads/internals.h> | ||
| 112 | +#endif | ||
| 113 | + | ||
| 114 | +#if !defined NOT_IN_libc || defined IS_IN_libpthread | ||
| 115 | + | ||
| 116 | +/* We push lr onto the stack, so we have to use ldmib instead of ldmia | ||
| 117 | + to find the saved arguments. */ | ||
| 118 | +# ifdef PIC | ||
| 119 | +# undef DOARGS_5 | ||
| 120 | +# undef DOARGS_6 | ||
| 121 | +# undef DOARGS_7 | ||
| 122 | +# define DOARGS_5 str r4, [sp, $-4]!; ldr r4, [sp, $8]; | ||
| 123 | +# define DOARGS_6 mov ip, sp; stmfd sp!, {r4, r5}; ldmib ip, {r4, r5}; | ||
| 124 | +# define DOARGS_7 mov ip, sp; stmfd sp!, {r4, r5, r6}; ldmib ip, {r4, r5, r6}; | ||
| 125 | +# endif | ||
| 126 | + | ||
| 127 | +# undef PSEUDO_RET | ||
| 128 | +# define PSEUDO_RET \ | ||
| 129 | + ldrcc pc, [sp], $4; \ | ||
| 130 | + ldr lr, [sp], $4; \ | ||
| 131 | + b PLTJMP(SYSCALL_ERROR) | ||
| 132 | + | ||
| 133 | +# undef PSEUDO | ||
| 134 | +# define PSEUDO(name, syscall_name, args) \ | ||
| 135 | + .section ".text"; \ | ||
| 136 | + PSEUDO_PROLOGUE; \ | ||
| 137 | + ENTRY (name); \ | ||
| 138 | + SINGLE_THREAD_P; \ | ||
| 139 | + bne .Lpseudo_cancel; \ | ||
| 140 | + DO_CALL (syscall_name, args); \ | ||
| 141 | + cmn r0, $4096; \ | ||
| 142 | + RETINSTR(cc, lr); \ | ||
| 143 | + b PLTJMP(SYSCALL_ERROR); \ | ||
| 144 | + .Lpseudo_cancel: \ | ||
| 145 | + str lr, [sp, $-4]!; \ | ||
| 146 | + DOCARGS_##args; /* save syscall args around CENABLE. */ \ | ||
| 147 | + CENABLE; \ | ||
| 148 | + mov ip, r0; /* put mask in safe place. */ \ | ||
| 149 | + UNDOCARGS_##args; /* restore syscall args. */ \ | ||
| 150 | + swi SYS_ify (syscall_name); /* do the call. */ \ | ||
| 151 | + str r0, [sp, $-4]!; /* save syscall return value. */ \ | ||
| 152 | + mov r0, ip; /* get mask back. */ \ | ||
| 153 | + CDISABLE; \ | ||
| 154 | + ldr r0, [sp], $4; /* retrieve return value. */ \ | ||
| 155 | + UNDOC2ARGS_##args; /* fix register damage. */ \ | ||
| 156 | + cmn r0, $4096; | ||
| 157 | + | ||
| 158 | +# define DOCARGS_0 | ||
| 159 | +# define UNDOCARGS_0 | ||
| 160 | +# define UNDOC2ARGS_0 | ||
| 161 | + | ||
| 162 | +# define DOCARGS_1 str r0, [sp, #-4]!; | ||
| 163 | +# define UNDOCARGS_1 ldr r0, [sp], #4; | ||
| 164 | +# define UNDOC2ARGS_1 | ||
| 165 | + | ||
| 166 | +# define DOCARGS_2 str r1, [sp, #-4]!; str r0, [sp, #-4]!; | ||
| 167 | +# define UNDOCARGS_2 ldr r0, [sp], #4; ldr r1, [sp], #4; | ||
| 168 | +# define UNDOC2ARGS_2 | ||
| 169 | + | ||
| 170 | +# define DOCARGS_3 str r2, [sp, #-4]!; str r1, [sp, #-4]!; str r0, [sp, #-4]!; | ||
| 171 | +# define UNDOCARGS_3 ldr r0, [sp], #4; ldr r1, [sp], #4; ldr r2, [sp], #4 | ||
| 172 | +# define UNDOC2ARGS_3 | ||
| 173 | + | ||
| 174 | +# define DOCARGS_4 stmfd sp!, {r0-r3} | ||
| 175 | +# define UNDOCARGS_4 ldmfd sp!, {r0-r3} | ||
| 176 | +# define UNDOC2ARGS_4 | ||
| 177 | + | ||
| 178 | +# define DOCARGS_5 stmfd sp!, {r0-r3} | ||
| 179 | +# define UNDOCARGS_5 ldmfd sp, {r0-r3}; str r4, [sp, #-4]!; ldr r4, [sp, #24] | ||
| 180 | +# define UNDOC2ARGS_5 ldr r4, [sp], #20 | ||
| 181 | + | ||
| 182 | +# ifdef IS_IN_libpthread | ||
| 183 | +# define CENABLE bl PLTJMP(__pthread_enable_asynccancel) | ||
| 184 | +# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel) | ||
| 185 | +# define __local_multiple_threads __pthread_multiple_threads | ||
| 186 | +# else | ||
| 187 | +# define CENABLE bl PLTJMP(__libc_enable_asynccancel) | ||
| 188 | +# define CDISABLE bl PLTJMP(__libc_disable_asynccancel) | ||
| 189 | +# define __local_multiple_threads __libc_multiple_threads | ||
| 190 | +# endif | ||
| 191 | + | ||
| 192 | +# ifndef __ASSEMBLER__ | ||
| 193 | +extern int __local_multiple_threads attribute_hidden; | ||
| 194 | +# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) | ||
| 195 | +# else | ||
| 196 | +# if !defined PIC | ||
| 197 | +# define SINGLE_THREAD_P \ | ||
| 198 | + ldr ip, =__local_multiple_threads; \ | ||
| 199 | + ldr ip, [ip]; \ | ||
| 200 | + teq ip, #0; | ||
| 201 | +# define PSEUDO_PROLOGUE | ||
| 202 | +# else | ||
| 203 | +# define SINGLE_THREAD_P \ | ||
| 204 | + ldr ip, 1b; \ | ||
| 205 | +2: \ | ||
| 206 | + ldr ip, [pc, ip]; \ | ||
| 207 | + teq ip, #0; | ||
| 208 | +# define PSEUDO_PROLOGUE \ | ||
| 209 | + 1: .word __local_multiple_threads - 2f - 8; | ||
| 210 | +# endif | ||
| 211 | +# endif | ||
| 212 | + | ||
| 213 | +#elif !defined __ASSEMBLER__ | ||
| 214 | + | ||
| 215 | +/* This code should never be used but we define it anyhow. */ | ||
| 216 | +# define SINGLE_THREAD_P (1) | ||
| 217 | + | ||
| 218 | +#endif | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/ep93xx/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/arm/uClibc.machine index 898b73a33b..898b73a33b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/ep93xx/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/arm/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/ixp4xxbe/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine index 2d9f63e531..2d9f63e531 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/ixp4xxbe/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/armeb/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/om-gta01/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine index 898b73a33b..898b73a33b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/om-gta01/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/armv4t/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/c7x0/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine index ec0385bc0f..ec0385bc0f 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/c7x0/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/armv5te/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/h4000/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine index ec0385bc0f..85f70f70c7 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/h4000/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/armv6/uClibc.machine | |||
| @@ -62,8 +62,8 @@ ARCH_WANTS_LITTLE_ENDIAN=y | |||
| 62 | ARCH_HAS_MMU=y | 62 | ARCH_HAS_MMU=y |
| 63 | ARCH_USE_MMU=y | 63 | ARCH_USE_MMU=y |
| 64 | UCLIBC_HAS_FLOATS=y | 64 | UCLIBC_HAS_FLOATS=y |
| 65 | # UCLIBC_HAS_FPU is not set | 65 | UCLIBC_HAS_FPU=y |
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | 66 | UCLIBC_HAS_SOFT_FLOAT=n |
| 67 | DO_C99_MATH=y | 67 | DO_C99_MATH=y |
| 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" | 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" |
| 69 | HAVE_DOT_CONFIG=y | 69 | HAVE_DOT_CONFIG=y |
diff --git a/meta/packages/uclibc/uclibc-0.9.29/poodle/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine index ec0385bc0f..85f70f70c7 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/poodle/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/armv7a/uClibc.machine | |||
| @@ -62,8 +62,8 @@ ARCH_WANTS_LITTLE_ENDIAN=y | |||
| 62 | ARCH_HAS_MMU=y | 62 | ARCH_HAS_MMU=y |
| 63 | ARCH_USE_MMU=y | 63 | ARCH_USE_MMU=y |
| 64 | UCLIBC_HAS_FLOATS=y | 64 | UCLIBC_HAS_FLOATS=y |
| 65 | # UCLIBC_HAS_FPU is not set | 65 | UCLIBC_HAS_FPU=y |
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | 66 | UCLIBC_HAS_SOFT_FLOAT=n |
| 67 | DO_C99_MATH=y | 67 | DO_C99_MATH=y |
| 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" | 68 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include" |
| 69 | HAVE_DOT_CONFIG=y | 69 | HAVE_DOT_CONFIG=y |
diff --git a/meta/packages/uclibc/uclibc-0.9.29/h2200/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine index ec0385bc0f..ec0385bc0f 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/h2200/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/c7x0/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/akita/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine index e27931cf6b..e27931cf6b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/akita/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/cm-x270/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch b/meta/packages/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch new file mode 100644 index 0000000000..b9ff6710bc --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/gcc-4.4-fixlet.patch | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | Index: uClibc-0.9.30.1/extra/scripts/unifdef.c | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc-0.9.30.1.orig/extra/scripts/unifdef.c 2009-08-09 11:55:23.000000000 +0200 | ||
| 4 | +++ uClibc-0.9.30.1/extra/scripts/unifdef.c 2009-08-09 11:55:46.000000000 +0200 | ||
| 5 | @@ -206,7 +206,7 @@ | ||
| 6 | static void error(const char *); | ||
| 7 | static int findsym(const char *); | ||
| 8 | static void flushline(bool); | ||
| 9 | -static Linetype getline(void); | ||
| 10 | +static Linetype _getline(void); | ||
| 11 | static Linetype ifeval(const char **); | ||
| 12 | static void ignoreoff(void); | ||
| 13 | static void ignoreon(void); | ||
| 14 | @@ -512,7 +512,7 @@ | ||
| 15 | |||
| 16 | for (;;) { | ||
| 17 | linenum++; | ||
| 18 | - lineval = getline(); | ||
| 19 | + lineval = _getline(); | ||
| 20 | trans_table[ifstate[depth]][lineval](); | ||
| 21 | debug("process %s -> %s depth %d", | ||
| 22 | linetype_name[lineval], | ||
| 23 | @@ -526,7 +526,7 @@ | ||
| 24 | * help from skipcomment(). | ||
| 25 | */ | ||
| 26 | static Linetype | ||
| 27 | -getline(void) | ||
| 28 | +_getline(void) | ||
| 29 | { | ||
| 30 | const char *cp; | ||
| 31 | int cursym; | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/cm-x270/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine index e27931cf6b..e27931cf6b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/cm-x270/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/iwmmxt/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch b/meta/packages/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch new file mode 100644 index 0000000000..cfa68ce52d --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | Index: uClibc/ldso/ldso/arm/resolve.S | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc.orig/ldso/ldso/arm/resolve.S 2009-03-20 12:03:32.000000000 -0700 | ||
| 4 | +++ uClibc/ldso/ldso/arm/resolve.S 2009-03-20 12:04:23.000000000 -0700 | ||
| 5 | @@ -97,7 +97,6 @@ | ||
| 6 | |||
| 7 | .text | ||
| 8 | .align 4 @ 16 byte boundary and there are 32 bytes below (arm case) | ||
| 9 | - #if !defined(__thumb__) || defined(__thumb2__) | ||
| 10 | .arm | ||
| 11 | .globl _dl_linux_resolve | ||
| 12 | .type _dl_linux_resolve,%function | ||
| 13 | @@ -129,7 +128,7 @@ | ||
| 14 | #else | ||
| 15 | mov pc,ip | ||
| 16 | #endif | ||
| 17 | -#else | ||
| 18 | +#if 0 | ||
| 19 | @ In the thumb case _dl_linux_resolver is thumb. If a bl is used | ||
| 20 | @ from arm code the linker will insert a stub call which, with | ||
| 21 | @ binutils 2.16, is not PIC. Since this code is accessed by an | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch b/meta/packages/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch new file mode 100644 index 0000000000..f6f32cdd29 --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/linuxthreads-changes.patch | |||
| @@ -0,0 +1,291 @@ | |||
| 1 | Index: uClibc/libpthread/linuxthreads/descr.h | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc.orig/libpthread/linuxthreads/descr.h 2008-08-27 23:59:46.171809044 +0200 | ||
| 4 | +++ uClibc/libpthread/linuxthreads/descr.h 2008-08-28 00:00:35.435134759 +0200 | ||
| 5 | @@ -123,9 +123,9 @@ | ||
| 6 | union dtv *dtvp; | ||
| 7 | pthread_descr self; /* Pointer to this structure */ | ||
| 8 | int multiple_threads; | ||
| 9 | -# ifdef NEED_DL_SYSINFO | ||
| 10 | uintptr_t sysinfo; | ||
| 11 | -# endif | ||
| 12 | + uintptr_t stack_guard; | ||
| 13 | + uintptr_t pointer_guard; | ||
| 14 | } data; | ||
| 15 | void *__padding[16]; | ||
| 16 | } p_header; | ||
| 17 | @@ -193,6 +193,13 @@ | ||
| 18 | size_t p_alloca_cutoff; /* Maximum size which should be allocated | ||
| 19 | using alloca() instead of malloc(). */ | ||
| 20 | /* New elements must be added at the end. */ | ||
| 21 | + | ||
| 22 | + /* This member must be last. */ | ||
| 23 | + char end_padding[]; | ||
| 24 | + | ||
| 25 | +#define PTHREAD_STRUCT_END_PADDING \ | ||
| 26 | + (sizeof (struct _pthread_descr_struct) \ | ||
| 27 | + - offsetof (struct _pthread_descr_struct, end_padding)) | ||
| 28 | } __attribute__ ((aligned(32))); /* We need to align the structure so that | ||
| 29 | doubles are aligned properly. This is 8 | ||
| 30 | bytes on MIPS and 16 bytes on MIPS64. | ||
| 31 | Index: uClibc/libpthread/linuxthreads/manager.c | ||
| 32 | =================================================================== | ||
| 33 | --- uClibc.orig/libpthread/linuxthreads/manager.c 2008-08-27 23:59:54.185140485 +0200 | ||
| 34 | +++ uClibc/libpthread/linuxthreads/manager.c 2008-08-28 00:00:35.435134759 +0200 | ||
| 35 | @@ -679,6 +679,17 @@ | ||
| 36 | new_thread->p_inheritsched = attr ? attr->__inheritsched : 0; | ||
| 37 | new_thread->p_alloca_cutoff = stksize / 4 > __MAX_ALLOCA_CUTOFF | ||
| 38 | ? __MAX_ALLOCA_CUTOFF : stksize / 4; | ||
| 39 | + | ||
| 40 | + /* Copy the stack guard canary. */ | ||
| 41 | +#ifdef THREAD_COPY_STACK_GUARD | ||
| 42 | + THREAD_COPY_STACK_GUARD (new_thread); | ||
| 43 | +#endif | ||
| 44 | + | ||
| 45 | + /* Copy the pointer guard value. */ | ||
| 46 | +#ifdef THREAD_COPY_POINTER_GUARD | ||
| 47 | + THREAD_COPY_POINTER_GUARD (new_thread); | ||
| 48 | +#endif | ||
| 49 | + | ||
| 50 | /* Initialize the thread handle */ | ||
| 51 | __pthread_init_lock(&__pthread_handles[sseg].h_lock); | ||
| 52 | __pthread_handles[sseg].h_descr = new_thread; | ||
| 53 | @@ -742,15 +753,15 @@ | ||
| 54 | pid = __clone2(pthread_start_thread_event, | ||
| 55 | (void **)new_thread_bottom, | ||
| 56 | (char *)stack_addr - new_thread_bottom, | ||
| 57 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 58 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 59 | __pthread_sig_cancel, new_thread); | ||
| 60 | #elif _STACK_GROWS_UP | ||
| 61 | pid = __clone(pthread_start_thread_event, (void *) new_thread_bottom, | ||
| 62 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 63 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 64 | __pthread_sig_cancel, new_thread); | ||
| 65 | #else | ||
| 66 | pid = __clone(pthread_start_thread_event, stack_addr, | ||
| 67 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 68 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 69 | __pthread_sig_cancel, new_thread); | ||
| 70 | #endif | ||
| 71 | saved_errno = errno; | ||
| 72 | @@ -783,15 +794,15 @@ | ||
| 73 | pid = __clone2(pthread_start_thread, | ||
| 74 | (void **)new_thread_bottom, | ||
| 75 | (char *)stack_addr - new_thread_bottom, | ||
| 76 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 77 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 78 | __pthread_sig_cancel, new_thread); | ||
| 79 | #elif _STACK_GROWS_UP | ||
| 80 | pid = __clone(pthread_start_thread, (void *) new_thread_bottom, | ||
| 81 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 82 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 83 | __pthread_sig_cancel, new_thread); | ||
| 84 | #else | ||
| 85 | pid = __clone(pthread_start_thread, stack_addr, | ||
| 86 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | | ||
| 87 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM | | ||
| 88 | __pthread_sig_cancel, new_thread); | ||
| 89 | #endif /* !NEED_SEPARATE_REGISTER_STACK */ | ||
| 90 | saved_errno = errno; | ||
| 91 | @@ -892,10 +903,11 @@ | ||
| 92 | #ifdef _STACK_GROWS_UP | ||
| 93 | # ifdef USE_TLS | ||
| 94 | size_t stacksize = guardaddr - th->p_stackaddr; | ||
| 95 | + guardaddr = th->p_stackaddr; | ||
| 96 | # else | ||
| 97 | size_t stacksize = guardaddr - (char *)th; | ||
| 98 | -# endif | ||
| 99 | guardaddr = (char *)th; | ||
| 100 | +# endif | ||
| 101 | #else | ||
| 102 | /* Guardaddr is always set, even if guardsize is 0. This allows | ||
| 103 | us to compute everything else. */ | ||
| 104 | Index: uClibc/libpthread/linuxthreads/pthread.c | ||
| 105 | =================================================================== | ||
| 106 | --- uClibc.orig/libpthread/linuxthreads/pthread.c 2008-08-28 00:00:00.825141935 +0200 | ||
| 107 | +++ uClibc/libpthread/linuxthreads/pthread.c 2008-08-28 00:00:35.438472147 +0200 | ||
| 108 | @@ -698,6 +698,16 @@ | ||
| 109 | mgr = &__pthread_manager_thread; | ||
| 110 | #endif | ||
| 111 | |||
| 112 | + /* Copy the stack guard canary. */ | ||
| 113 | +#ifdef THREAD_COPY_STACK_GUARD | ||
| 114 | + THREAD_COPY_STACK_GUARD (mgr); | ||
| 115 | +#endif | ||
| 116 | + | ||
| 117 | + /* Copy the pointer guard value. */ | ||
| 118 | +#ifdef THREAD_COPY_POINTER_GUARD | ||
| 119 | + THREAD_COPY_POINTER_GUARD (mgr); | ||
| 120 | +#endif | ||
| 121 | + | ||
| 122 | __pthread_manager_request = manager_pipe[1]; /* writing end */ | ||
| 123 | __pthread_manager_reader = manager_pipe[0]; /* reading end */ | ||
| 124 | |||
| 125 | @@ -738,17 +748,17 @@ | ||
| 126 | pid = __clone2(__pthread_manager_event, | ||
| 127 | (void **) __pthread_manager_thread_bos, | ||
| 128 | THREAD_MANAGER_STACK_SIZE, | ||
| 129 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, | ||
| 130 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, | ||
| 131 | mgr); | ||
| 132 | #elif _STACK_GROWS_UP | ||
| 133 | pid = __clone(__pthread_manager_event, | ||
| 134 | (void **) __pthread_manager_thread_bos, | ||
| 135 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, | ||
| 136 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, | ||
| 137 | mgr); | ||
| 138 | #else | ||
| 139 | pid = __clone(__pthread_manager_event, | ||
| 140 | (void **) __pthread_manager_thread_tos, | ||
| 141 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, | ||
| 142 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, | ||
| 143 | mgr); | ||
| 144 | #endif | ||
| 145 | |||
| 146 | @@ -778,13 +788,13 @@ | ||
| 147 | #ifdef NEED_SEPARATE_REGISTER_STACK | ||
| 148 | pid = __clone2(__pthread_manager, (void **) __pthread_manager_thread_bos, | ||
| 149 | THREAD_MANAGER_STACK_SIZE, | ||
| 150 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr); | ||
| 151 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr); | ||
| 152 | #elif _STACK_GROWS_UP | ||
| 153 | pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_bos, | ||
| 154 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr); | ||
| 155 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr); | ||
| 156 | #else | ||
| 157 | pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_tos, | ||
| 158 | - CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr); | ||
| 159 | + CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr); | ||
| 160 | #endif | ||
| 161 | } | ||
| 162 | if (__builtin_expect (pid, 0) == -1) { | ||
| 163 | @@ -971,6 +981,10 @@ | ||
| 164 | struct pthread_request request; | ||
| 165 | pthread_descr self = thread_self(); | ||
| 166 | |||
| 167 | + /* Make sure we come back here after suspend(), in case we entered | ||
| 168 | + from a signal handler. */ | ||
| 169 | + THREAD_SETMEM(self, p_signal_jmp, NULL); | ||
| 170 | + | ||
| 171 | request.req_thread = self; | ||
| 172 | request.req_kind = REQ_PROCESS_EXIT; | ||
| 173 | request.req_args.exit.code = retcode; | ||
| 174 | @@ -1198,13 +1212,13 @@ | ||
| 175 | |||
| 176 | void __pthread_restart_old(pthread_descr th) | ||
| 177 | { | ||
| 178 | - if (atomic_increment(&th->p_resume_count) == -1) | ||
| 179 | + if (pthread_atomic_increment(&th->p_resume_count) == -1) | ||
| 180 | kill(th->p_pid, __pthread_sig_restart); | ||
| 181 | } | ||
| 182 | |||
| 183 | void __pthread_suspend_old(pthread_descr self) | ||
| 184 | { | ||
| 185 | - if (atomic_decrement(&self->p_resume_count) <= 0) | ||
| 186 | + if (pthread_atomic_decrement(&self->p_resume_count) <= 0) | ||
| 187 | __pthread_wait_for_restart_signal(self); | ||
| 188 | } | ||
| 189 | |||
| 190 | @@ -1215,7 +1229,7 @@ | ||
| 191 | int was_signalled = 0; | ||
| 192 | sigjmp_buf jmpbuf; | ||
| 193 | |||
| 194 | - if (atomic_decrement(&self->p_resume_count) == 0) { | ||
| 195 | + if (pthread_atomic_decrement(&self->p_resume_count) == 0) { | ||
| 196 | /* Set up a longjmp handler for the restart signal, unblock | ||
| 197 | the signal and sleep. */ | ||
| 198 | |||
| 199 | @@ -1272,9 +1286,9 @@ | ||
| 200 | being delivered. */ | ||
| 201 | |||
| 202 | if (!was_signalled) { | ||
| 203 | - if (atomic_increment(&self->p_resume_count) != -1) { | ||
| 204 | + if (pthread_atomic_increment(&self->p_resume_count) != -1) { | ||
| 205 | __pthread_wait_for_restart_signal(self); | ||
| 206 | - atomic_decrement(&self->p_resume_count); /* should be zero now! */ | ||
| 207 | + pthread_atomic_decrement(&self->p_resume_count); /* should be zero now! */ | ||
| 208 | /* woke spontaneously and consumed restart signal */ | ||
| 209 | return 1; | ||
| 210 | } | ||
| 211 | Index: uClibc/libpthread/linuxthreads/specific.c | ||
| 212 | =================================================================== | ||
| 213 | --- uClibc.orig/libpthread/linuxthreads/specific.c 2008-08-28 00:00:07.595139286 +0200 | ||
| 214 | +++ uClibc/libpthread/linuxthreads/specific.c 2008-08-28 00:00:35.438472147 +0200 | ||
| 215 | @@ -104,13 +104,14 @@ | ||
| 216 | that if the key is reallocated later by pthread_key_create, its | ||
| 217 | associated values will be NULL in all threads. | ||
| 218 | |||
| 219 | - If no threads have been created yet, clear it just in the | ||
| 220 | - current thread. */ | ||
| 221 | + If no threads have been created yet, or if we are exiting, clear | ||
| 222 | + it just in the current thread. */ | ||
| 223 | |||
| 224 | struct pthread_key_delete_helper_args args; | ||
| 225 | args.idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE; | ||
| 226 | args.idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE; | ||
| 227 | - if (__pthread_manager_request != -1) | ||
| 228 | + if (__pthread_manager_request != -1 | ||
| 229 | + && !(__builtin_expect (__pthread_exit_requested, 0))) | ||
| 230 | { | ||
| 231 | struct pthread_request request; | ||
| 232 | |||
| 233 | @@ -203,8 +204,9 @@ | ||
| 234 | __pthread_lock(THREAD_GETMEM(self, p_lock), self); | ||
| 235 | for (i = 0; i < PTHREAD_KEY_1STLEVEL_SIZE; i++) { | ||
| 236 | if (THREAD_GETMEM_NC(self, p_specific[i]) != NULL) { | ||
| 237 | - free(THREAD_GETMEM_NC(self, p_specific[i])); | ||
| 238 | + void *p = THREAD_GETMEM_NC(self, p_specific[i]); | ||
| 239 | THREAD_SETMEM_NC(self, p_specific[i], NULL); | ||
| 240 | + free(p); | ||
| 241 | } | ||
| 242 | } | ||
| 243 | __pthread_unlock(THREAD_GETMEM(self, p_lock)); | ||
| 244 | Index: uClibc/libpthread/linuxthreads/spinlock.c | ||
| 245 | =================================================================== | ||
| 246 | --- uClibc.orig/libpthread/linuxthreads/spinlock.c 2008-08-28 00:00:17.805140454 +0200 | ||
| 247 | +++ uClibc/libpthread/linuxthreads/spinlock.c 2008-08-28 00:00:35.438472147 +0200 | ||
| 248 | @@ -637,8 +637,20 @@ | ||
| 249 | #if defined HAS_COMPARE_AND_SWAP | ||
| 250 | wait_node_dequeue(pp_head, pp_max_prio, p_max_prio); | ||
| 251 | #endif | ||
| 252 | + | ||
| 253 | + /* Release the spinlock before restarting. */ | ||
| 254 | +#if defined TEST_FOR_COMPARE_AND_SWAP | ||
| 255 | + if (!__pthread_has_cas) | ||
| 256 | +#endif | ||
| 257 | +#if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP | ||
| 258 | + { | ||
| 259 | + __pthread_release(&lock->__spinlock); | ||
| 260 | + } | ||
| 261 | +#endif | ||
| 262 | + | ||
| 263 | restart(p_max_prio->thr); | ||
| 264 | - break; | ||
| 265 | + | ||
| 266 | + return; | ||
| 267 | } | ||
| 268 | } | ||
| 269 | |||
| 270 | Index: uClibc/libpthread/linuxthreads/spinlock.h | ||
| 271 | =================================================================== | ||
| 272 | --- uClibc.orig/libpthread/linuxthreads/spinlock.h 2008-08-28 00:00:24.768471655 +0200 | ||
| 273 | +++ uClibc/libpthread/linuxthreads/spinlock.h 2008-08-28 00:02:42.971786951 +0200 | ||
| 274 | @@ -172,7 +172,7 @@ | ||
| 275 | |||
| 276 | /* Operations on pthread_atomic, which is defined in internals.h */ | ||
| 277 | |||
| 278 | -static __inline__ long atomic_increment(struct pthread_atomic *pa) | ||
| 279 | +static __inline__ long pthread_atomic_increment(struct pthread_atomic *pa) | ||
| 280 | { | ||
| 281 | long oldval; | ||
| 282 | |||
| 283 | @@ -184,7 +184,7 @@ | ||
| 284 | } | ||
| 285 | |||
| 286 | |||
| 287 | -static __inline__ long atomic_decrement(struct pthread_atomic *pa) | ||
| 288 | +static __inline__ long pthread_atomic_decrement(struct pthread_atomic *pa) | ||
| 289 | { | ||
| 290 | long oldval; | ||
| 291 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine index 6e89444a64..5df15f94cb 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/netbook/uClibc.machine | |||
| @@ -1,16 +1,16 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Sun May 13 11:29:51 2007 | 3 | # Fri Nov 23 15:49:33 2007 |
| 4 | # | 4 | # |
| 5 | # TARGET_alpha is not set | 5 | # TARGET_alpha is not set |
| 6 | TARGET_arm=y | 6 | # TARGET_arm is not set |
| 7 | # TARGET_bfin is not set | 7 | # TARGET_bfin is not set |
| 8 | # TARGET_cris is not set | 8 | # TARGET_cris is not set |
| 9 | # TARGET_e1 is not set | 9 | # TARGET_e1 is not set |
| 10 | # TARGET_frv is not set | 10 | # TARGET_frv is not set |
| 11 | # TARGET_h8300 is not set | 11 | # TARGET_h8300 is not set |
| 12 | # TARGET_hppa is not set | 12 | # TARGET_hppa is not set |
| 13 | # TARGET_i386 is not set | 13 | TARGET_i386=y |
| 14 | # TARGET_i960 is not set | 14 | # TARGET_i960 is not set |
| 15 | # TARGET_ia64 is not set | 15 | # TARGET_ia64 is not set |
| 16 | # TARGET_m68k is not set | 16 | # TARGET_m68k is not set |
| @@ -29,42 +29,41 @@ TARGET_arm=y | |||
| 29 | # | 29 | # |
| 30 | # Target Architecture Features and Options | 30 | # Target Architecture Features and Options |
| 31 | # | 31 | # |
| 32 | TARGET_ARCH="arm" | 32 | TARGET_ARCH="i386" |
| 33 | FORCE_OPTIONS_FOR_ARCH=y | 33 | FORCE_OPTIONS_FOR_ARCH=y |
| 34 | CONFIG_ARM_OABI=y | 34 | CONFIG_GENERIC_386=y |
| 35 | # CONFIG_ARM_EABI is not set | 35 | # CONFIG_386 is not set |
| 36 | # USE_BX is not set | 36 | # CONFIG_486 is not set |
| 37 | # CONFIG_GENERIC_ARM is not set | 37 | # CONFIG_586 is not set |
| 38 | # CONFIG_ARM610 is not set | 38 | # CONFIG_586MMX is not set |
| 39 | # CONFIG_ARM710 is not set | 39 | # CONFIG_686 is not set |
| 40 | # CONFIG_ARM7TDMI is not set | 40 | # CONFIG_PENTIUMII is not set |
| 41 | # CONFIG_ARM720T is not set | 41 | # CONFIG_PENTIUMIII is not set |
| 42 | # CONFIG_ARM920T is not set | 42 | # CONFIG_PENTIUM4 is not set |
| 43 | # CONFIG_ARM922T is not set | 43 | # CONFIG_K6 is not set |
| 44 | # CONFIG_ARM926T is not set | 44 | # CONFIG_K7 is not set |
| 45 | # CONFIG_ARM10T is not set | 45 | # CONFIG_ELAN is not set |
| 46 | # CONFIG_ARM1136JF_S is not set | 46 | # CONFIG_CRUSOE is not set |
| 47 | # CONFIG_ARM1176JZ_S is not set | 47 | # CONFIG_WINCHIPC6 is not set |
| 48 | # CONFIG_ARM1176JZF_S is not set | 48 | # CONFIG_WINCHIP2 is not set |
| 49 | # CONFIG_ARM_SA110 is not set | 49 | # CONFIG_CYRIXIII is not set |
| 50 | CONFIG_ARM_SA1100=y | 50 | # CONFIG_NEHEMIAH is not set |
| 51 | # CONFIG_ARM_XSCALE is not set | ||
| 52 | # CONFIG_ARM_IWMMXT is not set | ||
| 53 | TARGET_SUBARCH="" | 51 | TARGET_SUBARCH="" |
| 54 | 52 | ||
| 55 | # | 53 | # |
| 56 | # Using ELF file format | 54 | # Using ELF file format |
| 57 | # | 55 | # |
| 58 | ARCH_ANY_ENDIAN=y | ||
| 59 | ARCH_LITTLE_ENDIAN=y | 56 | ARCH_LITTLE_ENDIAN=y |
| 60 | # ARCH_WANTS_BIG_ENDIAN is not set | 57 | |
| 61 | ARCH_WANTS_LITTLE_ENDIAN=y | 58 | # |
| 59 | # Using Little Endian | ||
| 60 | # | ||
| 62 | ARCH_HAS_MMU=y | 61 | ARCH_HAS_MMU=y |
| 63 | ARCH_USE_MMU=y | 62 | ARCH_USE_MMU=y |
| 64 | UCLIBC_HAS_FLOATS=y | 63 | UCLIBC_HAS_FLOATS=y |
| 65 | # UCLIBC_HAS_FPU is not set | 64 | UCLIBC_HAS_FPU=y |
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | ||
| 67 | DO_C99_MATH=y | 65 | DO_C99_MATH=y |
| 68 | KERNEL_HEADERS="/usr/include" | 66 | KERNEL_HEADERS="/usr/include" |
| 69 | HAVE_DOT_CONFIG=y | 67 | HAVE_DOT_CONFIG=y |
| 70 | 68 | ||
| 69 | UCLIBC_HAS_FENV=y | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv4t b/meta/packages/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine index 898b73a33b..898b73a33b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv4t +++ b/meta/packages/uclibc/uclibc-0.9.30.1/om-gta01/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/pthread_atfork.patch b/meta/packages/uclibc/uclibc-0.9.30.1/pthread_atfork.patch new file mode 100644 index 0000000000..92accc2a1a --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/pthread_atfork.patch | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | Index: uClibc-0.9.30/libpthread/linuxthreads/Makefile.in | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc-0.9.30.orig/libpthread/linuxthreads/Makefile.in 2009-01-11 01:09:27.008515954 +0100 | ||
| 4 | +++ uClibc-0.9.30/libpthread/linuxthreads/Makefile.in 2009-01-11 01:09:35.295181636 +0100 | ||
| 5 | @@ -45,7 +45,7 @@ | ||
| 6 | pthread_SRC := \ | ||
| 7 | attr barrier cancel condvar errno events join pthread \ | ||
| 8 | lockfile manager mutex pt-machine ptcleanup \ | ||
| 9 | - ptclock_gettime ptclock_settime ptfork pthandles \ | ||
| 10 | + ptclock_gettime ptclock_settime ptfork pthandles pthread_atfork \ | ||
| 11 | pthread_setegid pthread_seteuid pthread_setgid pthread_setregid \ | ||
| 12 | pthread_setresgid pthread_setresuid pthread_setreuid pthread_setuid \ | ||
| 13 | rwlock semaphore sighandler signals specific spinlock | ||
| 14 | Index: uClibc-0.9.30/libpthread/linuxthreads/pthread_atfork.c | ||
| 15 | =================================================================== | ||
| 16 | --- uClibc-0.9.30.orig/libpthread/linuxthreads/pthread_atfork.c 2009-01-11 01:09:44.931848926 +0100 | ||
| 17 | +++ uClibc-0.9.30/libpthread/linuxthreads/pthread_atfork.c 2009-01-11 01:12:49.926539743 +0100 | ||
| 18 | @@ -43,12 +43,8 @@ | ||
| 19 | |||
| 20 | /* Hide the symbol so that no definition but the one locally in the | ||
| 21 | executable or DSO is used. */ | ||
| 22 | -int | ||
| 23 | -#ifndef __pthread_atfork | ||
| 24 | -/* Don't mark the compatibility function as hidden. */ | ||
| 25 | -attribute_hidden | ||
| 26 | -#endif | ||
| 27 | -__pthread_atfork (prepare, parent, child) | ||
| 28 | + | ||
| 29 | +int attribute_hidden __pthread_atfork (prepare, parent, child) | ||
| 30 | void (*prepare) (void); | ||
| 31 | void (*parent) (void); | ||
| 32 | void (*child) (void); | ||
| 33 | @@ -56,8 +52,5 @@ | ||
| 34 | return __register_atfork (prepare, parent, child, | ||
| 35 | &__dso_handle == NULL ? NULL : __dso_handle); | ||
| 36 | } | ||
| 37 | -#ifndef __pthread_atfork | ||
| 38 | -extern int pthread_atfork (void (*prepare) (void), void (*parent) (void), | ||
| 39 | - void (*child) (void)) attribute_hidden; | ||
| 40 | + | ||
| 41 | strong_alias (__pthread_atfork, pthread_atfork) | ||
| 42 | -#endif | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/qemuarm/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine index fafdd7584e..fafdd7584e 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/qemuarm/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/qemuarm/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/titan/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine index 75c5328056..44fec169c8 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/titan/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/qemumips/uClibc.machine | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Wed May 16 12:03:09 2007 | 3 | # Fri Nov 23 15:49:33 2007 |
| 4 | # | 4 | # |
| 5 | # TARGET_alpha is not set | 5 | # TARGET_alpha is not set |
| 6 | # TARGET_arm is not set | 6 | # TARGET_arm is not set |
| @@ -10,7 +10,7 @@ | |||
| 10 | # TARGET_frv is not set | 10 | # TARGET_frv is not set |
| 11 | # TARGET_h8300 is not set | 11 | # TARGET_h8300 is not set |
| 12 | # TARGET_hppa is not set | 12 | # TARGET_hppa is not set |
| 13 | # TARGET_i386 is not set | 13 | TARGET_i386=y |
| 14 | # TARGET_i960 is not set | 14 | # TARGET_i960 is not set |
| 15 | # TARGET_ia64 is not set | 15 | # TARGET_ia64 is not set |
| 16 | # TARGET_m68k is not set | 16 | # TARGET_m68k is not set |
| @@ -19,7 +19,7 @@ | |||
| 19 | # TARGET_nios is not set | 19 | # TARGET_nios is not set |
| 20 | # TARGET_nios2 is not set | 20 | # TARGET_nios2 is not set |
| 21 | # TARGET_powerpc is not set | 21 | # TARGET_powerpc is not set |
| 22 | TARGET_sh=y | 22 | # TARGET_sh is not set |
| 23 | # TARGET_sh64 is not set | 23 | # TARGET_sh64 is not set |
| 24 | # TARGET_sparc is not set | 24 | # TARGET_sparc is not set |
| 25 | # TARGET_v850 is not set | 25 | # TARGET_v850 is not set |
| @@ -29,24 +29,40 @@ TARGET_sh=y | |||
| 29 | # | 29 | # |
| 30 | # Target Architecture Features and Options | 30 | # Target Architecture Features and Options |
| 31 | # | 31 | # |
| 32 | TARGET_ARCH="sh" | 32 | TARGET_ARCH="i386" |
| 33 | FORCE_OPTIONS_FOR_ARCH=y | 33 | FORCE_OPTIONS_FOR_ARCH=y |
| 34 | # CONFIG_SH2A is not set | 34 | CONFIG_GENERIC_386=y |
| 35 | # CONFIG_SH2 is not set | 35 | # CONFIG_386 is not set |
| 36 | # CONFIG_SH3 is not set | 36 | # CONFIG_486 is not set |
| 37 | CONFIG_SH4=y | 37 | # CONFIG_586 is not set |
| 38 | # CONFIG_586MMX is not set | ||
| 39 | # CONFIG_686 is not set | ||
| 40 | # CONFIG_PENTIUMII is not set | ||
| 41 | # CONFIG_PENTIUMIII is not set | ||
| 42 | # CONFIG_PENTIUM4 is not set | ||
| 43 | # CONFIG_K6 is not set | ||
| 44 | # CONFIG_K7 is not set | ||
| 45 | # CONFIG_ELAN is not set | ||
| 46 | # CONFIG_CRUSOE is not set | ||
| 47 | # CONFIG_WINCHIPC6 is not set | ||
| 48 | # CONFIG_WINCHIP2 is not set | ||
| 49 | # CONFIG_CYRIXIII is not set | ||
| 50 | # CONFIG_NEHEMIAH is not set | ||
| 38 | TARGET_SUBARCH="" | 51 | TARGET_SUBARCH="" |
| 39 | 52 | ||
| 40 | # | 53 | # |
| 41 | # Using ELF file format | 54 | # Using ELF file format |
| 42 | # | 55 | # |
| 43 | ARCH_ANY_ENDIAN=y | ||
| 44 | ARCH_LITTLE_ENDIAN=y | 56 | ARCH_LITTLE_ENDIAN=y |
| 45 | # ARCH_WANTS_BIG_ENDIAN is not set | 57 | |
| 46 | ARCH_WANTS_LITTLE_ENDIAN=y | 58 | # |
| 59 | # Using Little Endian | ||
| 60 | # | ||
| 47 | ARCH_HAS_MMU=y | 61 | ARCH_HAS_MMU=y |
| 48 | ARCH_USE_MMU=y | 62 | ARCH_USE_MMU=y |
| 49 | UCLIBC_HAS_FLOATS=y | 63 | UCLIBC_HAS_FLOATS=y |
| 50 | UCLIBC_HAS_FPU=y | 64 | UCLIBC_HAS_FPU=y |
| 65 | DO_C99_MATH=y | ||
| 51 | KERNEL_HEADERS="/usr/include" | 66 | KERNEL_HEADERS="/usr/include" |
| 52 | HAVE_DOT_CONFIG=y | 67 | HAVE_DOT_CONFIG=y |
| 68 | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/efika/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine index e059257c09..44fec169c8 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/efika/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/qemux86/uClibc.machine | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Sun May 13 11:25:50 2007 | 3 | # Fri Nov 23 15:49:33 2007 |
| 4 | # | 4 | # |
| 5 | # TARGET_alpha is not set | 5 | # TARGET_alpha is not set |
| 6 | # TARGET_arm is not set | 6 | # TARGET_arm is not set |
| @@ -10,7 +10,7 @@ | |||
| 10 | # TARGET_frv is not set | 10 | # TARGET_frv is not set |
| 11 | # TARGET_h8300 is not set | 11 | # TARGET_h8300 is not set |
| 12 | # TARGET_hppa is not set | 12 | # TARGET_hppa is not set |
| 13 | # TARGET_i386 is not set | 13 | TARGET_i386=y |
| 14 | # TARGET_i960 is not set | 14 | # TARGET_i960 is not set |
| 15 | # TARGET_ia64 is not set | 15 | # TARGET_ia64 is not set |
| 16 | # TARGET_m68k is not set | 16 | # TARGET_m68k is not set |
| @@ -18,7 +18,7 @@ | |||
| 18 | # TARGET_mips is not set | 18 | # TARGET_mips is not set |
| 19 | # TARGET_nios is not set | 19 | # TARGET_nios is not set |
| 20 | # TARGET_nios2 is not set | 20 | # TARGET_nios2 is not set |
| 21 | TARGET_powerpc=y | 21 | # TARGET_powerpc is not set |
| 22 | # TARGET_sh is not set | 22 | # TARGET_sh is not set |
| 23 | # TARGET_sh64 is not set | 23 | # TARGET_sh64 is not set |
| 24 | # TARGET_sparc is not set | 24 | # TARGET_sparc is not set |
| @@ -29,25 +29,40 @@ TARGET_powerpc=y | |||
| 29 | # | 29 | # |
| 30 | # Target Architecture Features and Options | 30 | # Target Architecture Features and Options |
| 31 | # | 31 | # |
| 32 | TARGET_ARCH="powerpc" | 32 | TARGET_ARCH="i386" |
| 33 | FORCE_OPTIONS_FOR_ARCH=y | 33 | FORCE_OPTIONS_FOR_ARCH=y |
| 34 | CONFIG_CLASSIC=y | 34 | CONFIG_GENERIC_386=y |
| 35 | # CONFIG_E500 is not set | 35 | # CONFIG_386 is not set |
| 36 | TARGET_SUBARCH="classic" | 36 | # CONFIG_486 is not set |
| 37 | # CONFIG_586 is not set | ||
| 38 | # CONFIG_586MMX is not set | ||
| 39 | # CONFIG_686 is not set | ||
| 40 | # CONFIG_PENTIUMII is not set | ||
| 41 | # CONFIG_PENTIUMIII is not set | ||
| 42 | # CONFIG_PENTIUM4 is not set | ||
| 43 | # CONFIG_K6 is not set | ||
| 44 | # CONFIG_K7 is not set | ||
| 45 | # CONFIG_ELAN is not set | ||
| 46 | # CONFIG_CRUSOE is not set | ||
| 47 | # CONFIG_WINCHIPC6 is not set | ||
| 48 | # CONFIG_WINCHIP2 is not set | ||
| 49 | # CONFIG_CYRIXIII is not set | ||
| 50 | # CONFIG_NEHEMIAH is not set | ||
| 51 | TARGET_SUBARCH="" | ||
| 37 | 52 | ||
| 38 | # | 53 | # |
| 39 | # Using ELF file format | 54 | # Using ELF file format |
| 40 | # | 55 | # |
| 41 | ARCH_BIG_ENDIAN=y | 56 | ARCH_LITTLE_ENDIAN=y |
| 42 | 57 | ||
| 43 | # | 58 | # |
| 44 | # Using Big Endian | 59 | # Using Little Endian |
| 45 | # | 60 | # |
| 46 | ARCH_HAS_MMU=y | 61 | ARCH_HAS_MMU=y |
| 47 | ARCH_USE_MMU=y | 62 | ARCH_USE_MMU=y |
| 48 | UCLIBC_HAS_FLOATS=y | 63 | UCLIBC_HAS_FLOATS=y |
| 49 | UCLIBC_HAS_FPU=y | 64 | UCLIBC_HAS_FPU=y |
| 50 | DO_C99_MATH=y | 65 | DO_C99_MATH=y |
| 51 | KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/powerpc-angstrom-linux-uclibc/include" | 66 | KERNEL_HEADERS="/usr/include" |
| 52 | HAVE_DOT_CONFIG=y | 67 | HAVE_DOT_CONFIG=y |
| 53 | 68 | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/hx4700/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine index e27931cf6b..e27931cf6b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/hx4700/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/spitz/uClibc.machine | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.config b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.config index e69de29bb2..e69de29bb2 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.config +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.config | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.distro b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.distro index ec9424d5a2..042ea4c547 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.distro +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.distro | |||
| @@ -14,6 +14,7 @@ LDSO_BASE_FILENAME="ld.so" | |||
| 14 | # UCLIBC_STATIC_LDCONFIG is not set | 14 | # UCLIBC_STATIC_LDCONFIG is not set |
| 15 | LDSO_RUNPATH=y | 15 | LDSO_RUNPATH=y |
| 16 | UCLIBC_CTOR_DTOR=y | 16 | UCLIBC_CTOR_DTOR=y |
| 17 | LDSO_GNU_HASH_SUPPORT=y | ||
| 17 | # HAS_NO_THREADS is not set | 18 | # HAS_NO_THREADS is not set |
| 18 | UCLIBC_HAS_THREADS=y | 19 | UCLIBC_HAS_THREADS=y |
| 19 | PTHREADS_DEBUG_SUPPORT=y | 20 | PTHREADS_DEBUG_SUPPORT=y |
| @@ -28,9 +29,10 @@ COMPAT_ATEXIT=y | |||
| 28 | UCLIBC_SUSV3_LEGACY=y | 29 | UCLIBC_SUSV3_LEGACY=y |
| 29 | UCLIBC_SUSV3_LEGACY_MACROS=y | 30 | UCLIBC_SUSV3_LEGACY_MACROS=y |
| 30 | UCLIBC_HAS_SHADOW=y | 31 | UCLIBC_HAS_SHADOW=y |
| 31 | # UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set | 32 | UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y |
| 32 | UCLIBC_HAS___PROGNAME=y | 33 | UCLIBC_HAS___PROGNAME=y |
| 33 | UNIX98PTY_ONLY=y | 34 | UNIX98PTY_ONLY=y |
| 35 | UCLIBC_HAS_GETPT=y | ||
| 34 | ASSUME_DEVPTS=y | 36 | ASSUME_DEVPTS=y |
| 35 | UCLIBC_HAS_TM_EXTENSIONS=y | 37 | UCLIBC_HAS_TM_EXTENSIONS=y |
| 36 | UCLIBC_HAS_TZ_CACHING=y | 38 | UCLIBC_HAS_TZ_CACHING=y |
| @@ -81,8 +83,8 @@ UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y | |||
| 81 | # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set | 83 | # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set |
| 82 | # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set | 84 | # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set |
| 83 | # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set | 85 | # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set |
| 84 | UCLIBC_HAS_STDIO_GETC_MACRO=y | 86 | # UCLIBC_HAS_STDIO_GETC_MACRO is not set |
| 85 | UCLIBC_HAS_STDIO_PUTC_MACRO=y | 87 | # UCLIBC_HAS_STDIO_PUTC_MACRO is not set |
| 86 | UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y | 88 | UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y |
| 87 | # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set | 89 | # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set |
| 88 | UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y | 90 | UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y |
| @@ -105,7 +107,7 @@ UCLIBC_HAS_FNMATCH=y | |||
| 105 | UCLIBC_HAS_WORDEXP=y | 107 | UCLIBC_HAS_WORDEXP=y |
| 106 | UCLIBC_HAS_FTW=y | 108 | UCLIBC_HAS_FTW=y |
| 107 | UCLIBC_HAS_GLOB=y | 109 | UCLIBC_HAS_GLOB=y |
| 108 | # UCLIBC_HAS_GNU_GLOB is not set | 110 | UCLIBC_HAS_GNU_GLOB=y |
| 109 | 111 | ||
| 110 | # | 112 | # |
| 111 | # Library Installation Options | 113 | # Library Installation Options |
| @@ -132,7 +134,7 @@ CROSS_COMPILER_PREFIX="" | |||
| 132 | UCLIBC_EXTRA_CFLAGS="" | 134 | UCLIBC_EXTRA_CFLAGS="" |
| 133 | # DODEBUG is not set | 135 | # DODEBUG is not set |
| 134 | # DODEBUG_PT is not set | 136 | # DODEBUG_PT is not set |
| 135 | # DOSTRIP is not set | 137 | DOSTRIP=n |
| 136 | # DOASSERTS is not set | 138 | # DOASSERTS is not set |
| 137 | # SUPPORT_LD_DEBUG is not set | 139 | # SUPPORT_LD_DEBUG is not set |
| 138 | # SUPPORT_LD_DEBUG_EARLY is not set | 140 | # SUPPORT_LD_DEBUG_EARLY is not set |
diff --git a/meta/packages/uclibc/uclibc-0.9.29/spitz/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t index e27931cf6b..898b73a33b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/spitz/uClibc.machine +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.armv4t | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | # | 1 | # |
| 2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
| 3 | # Sat May 12 23:18:41 2007 | 3 | # Mon May 14 10:23:14 2007 |
| 4 | # | 4 | # |
| 5 | # TARGET_alpha is not set | 5 | # TARGET_alpha is not set |
| 6 | TARGET_arm=y | 6 | TARGET_arm=y |
| @@ -39,7 +39,7 @@ USE_BX=y | |||
| 39 | # CONFIG_ARM710 is not set | 39 | # CONFIG_ARM710 is not set |
| 40 | # CONFIG_ARM7TDMI is not set | 40 | # CONFIG_ARM7TDMI is not set |
| 41 | # CONFIG_ARM720T is not set | 41 | # CONFIG_ARM720T is not set |
| 42 | # CONFIG_ARM920T is not set | 42 | CONFIG_ARM920T=y |
| 43 | # CONFIG_ARM922T is not set | 43 | # CONFIG_ARM922T is not set |
| 44 | # CONFIG_ARM926T is not set | 44 | # CONFIG_ARM926T is not set |
| 45 | # CONFIG_ARM10T is not set | 45 | # CONFIG_ARM10T is not set |
| @@ -49,7 +49,7 @@ USE_BX=y | |||
| 49 | # CONFIG_ARM_SA110 is not set | 49 | # CONFIG_ARM_SA110 is not set |
| 50 | # CONFIG_ARM_SA1100 is not set | 50 | # CONFIG_ARM_SA1100 is not set |
| 51 | # CONFIG_ARM_XSCALE is not set | 51 | # CONFIG_ARM_XSCALE is not set |
| 52 | CONFIG_ARM_IWMMXT=y | 52 | # CONFIG_ARM_IWMMXT is not set |
| 53 | TARGET_SUBARCH="" | 53 | TARGET_SUBARCH="" |
| 54 | 54 | ||
| 55 | # | 55 | # |
| @@ -64,7 +64,6 @@ ARCH_USE_MMU=y | |||
| 64 | UCLIBC_HAS_FLOATS=y | 64 | UCLIBC_HAS_FLOATS=y |
| 65 | # UCLIBC_HAS_FPU is not set | 65 | # UCLIBC_HAS_FPU is not set |
| 66 | UCLIBC_HAS_SOFT_FLOAT=y | 66 | UCLIBC_HAS_SOFT_FLOAT=y |
| 67 | DO_C99_MATH=y | ||
| 68 | KERNEL_HEADERS="/usr/include" | 67 | KERNEL_HEADERS="/usr/include" |
| 69 | HAVE_DOT_CONFIG=y | 68 | HAVE_DOT_CONFIG=y |
| 70 | 69 | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv5te b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te index ec0385bc0f..ec0385bc0f 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv5te +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.armv5te | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.iwmmxt b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt index e27931cf6b..e27931cf6b 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.iwmmxt +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.iwmmxt | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.strongarm b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm index 6e89444a64..6e89444a64 100644 --- a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.strongarm +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uClibc.machine.strongarm | |||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch b/meta/packages/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch new file mode 100644 index 0000000000..f3718431ea --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uclibc-c99-ldbl-math.patch | |||
| @@ -0,0 +1,474 @@ | |||
| 1 | Index: uClibc-0.9.30.1/libm/ldouble_wrappers.c | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc-0.9.30.1/libm/ldouble_wrappers.c (revision 25552) | ||
| 4 | +++ uClibc-0.9.30.1/libm/ldouble_wrappers.c (working copy) | ||
| 5 | @@ -13,6 +13,16 @@ | ||
| 6 | #include "math.h" | ||
| 7 | #include <complex.h> | ||
| 8 | |||
| 9 | +#if defined __NO_LONG_DOUBLE_MATH | ||
| 10 | +# define int_WRAPPER_C99(func) /* not needed */ | ||
| 11 | +# else | ||
| 12 | +# define int_WRAPPER_C99(func) \ | ||
| 13 | +int func##l(long double x) \ | ||
| 14 | +{ \ | ||
| 15 | + return func((double) x); \ | ||
| 16 | +} \ | ||
| 17 | +libm_hidden_def(func##l) | ||
| 18 | +#endif | ||
| 19 | |||
| 20 | /* Implement the following, as defined by SuSv3 */ | ||
| 21 | #if 0 | ||
| 22 | @@ -543,46 +553,28 @@ long double truncl (long double x) | ||
| 23 | #endif | ||
| 24 | |||
| 25 | |||
| 26 | -#ifdef __DO_C99_MATH__ | ||
| 27 | +#if defined __DO_C99_MATH__ | ||
| 28 | |||
| 29 | #ifdef L_fpclassifyl | ||
| 30 | -int __fpclassifyl (long double x) | ||
| 31 | -{ | ||
| 32 | - return __fpclassify ( (double) x ); | ||
| 33 | -} | ||
| 34 | -libm_hidden_def(__fpclassifyl) | ||
| 35 | +int_WRAPPER_C99(__fpclassify) | ||
| 36 | #endif | ||
| 37 | |||
| 38 | #ifdef L_finitel | ||
| 39 | -int __finitel (long double x) | ||
| 40 | -{ | ||
| 41 | - return __finite ( (double)x ); | ||
| 42 | -} | ||
| 43 | -libm_hidden_def(__finitel) | ||
| 44 | +int_WRAPPER_C99(__finite) | ||
| 45 | #endif | ||
| 46 | |||
| 47 | #ifdef L_signbitl | ||
| 48 | -int __signbitl (long double x) | ||
| 49 | -{ | ||
| 50 | - return __signbitl ( (double)x ); | ||
| 51 | -} | ||
| 52 | -libm_hidden_def(__signbitl) | ||
| 53 | +int_WRAPPER_C99(__signbit) | ||
| 54 | #endif | ||
| 55 | |||
| 56 | #ifdef L_isnanl | ||
| 57 | -int __isnanl (long double x) | ||
| 58 | -{ | ||
| 59 | - return __isnan ( (double)x ); | ||
| 60 | -} | ||
| 61 | -libm_hidden_def(__isnanl) | ||
| 62 | +int_WRAPPER_C99(__isnan) | ||
| 63 | #endif | ||
| 64 | |||
| 65 | #ifdef L_isinfl | ||
| 66 | -int __isinfl (long double x) | ||
| 67 | -{ | ||
| 68 | - return __isinf ( (double)x ); | ||
| 69 | -} | ||
| 70 | -libm_hidden_def(__isinfl) | ||
| 71 | +int_WRAPPER_C99(__isinf) | ||
| 72 | #endif | ||
| 73 | |||
| 74 | -#endif | ||
| 75 | +#endif /* DO_C99_MATH */ | ||
| 76 | + | ||
| 77 | +#undef int_WRAPPER_C99 | ||
| 78 | Index: uClibc-0.9.30.1/libm/nan.c | ||
| 79 | =================================================================== | ||
| 80 | --- uClibc-0.9.30.1/libm/nan.c (revision 25552) | ||
| 81 | +++ uClibc-0.9.30.1/libm/nan.c (working copy) | ||
| 82 | @@ -45,7 +45,7 @@ float nanf (const char *tagp) | ||
| 83 | } | ||
| 84 | libm_hidden_def(nanf) | ||
| 85 | |||
| 86 | -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 87 | +#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH | ||
| 88 | libm_hidden_proto(nanl) | ||
| 89 | long double nanl (const char *tagp) | ||
| 90 | { | ||
| 91 | Index: uClibc-0.9.30.1/include/math.h | ||
| 92 | =================================================================== | ||
| 93 | --- uClibc-0.9.30.1/include/math.h (revision 25552) | ||
| 94 | +++ uClibc-0.9.30.1/include/math.h (working copy) | ||
| 95 | @@ -118,7 +118,7 @@ __BEGIN_DECLS | ||
| 96 | # undef __MATH_PRECNAME | ||
| 97 | |||
| 98 | # if (__STDC__ - 0 || __GNUC__ - 0) \ | ||
| 99 | - && (defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ || defined __LDBL_COMPAT) | ||
| 100 | + && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT) | ||
| 101 | # ifdef __LDBL_COMPAT | ||
| 102 | |||
| 103 | # ifdef __USE_ISOC99 | ||
| 104 | @@ -230,7 +230,7 @@ enum | ||
| 105 | }; | ||
| 106 | |||
| 107 | /* Return number of classification appropriate for X. */ | ||
| 108 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 109 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 110 | # define fpclassify(x) \ | ||
| 111 | (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x)) | ||
| 112 | # else | ||
| 113 | @@ -242,7 +242,7 @@ enum | ||
| 114 | # endif | ||
| 115 | |||
| 116 | /* Return nonzero value if sign of X is negative. */ | ||
| 117 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 118 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 119 | # define signbit(x) \ | ||
| 120 | (sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x)) | ||
| 121 | # else | ||
| 122 | @@ -254,7 +254,7 @@ enum | ||
| 123 | # endif | ||
| 124 | |||
| 125 | /* Return nonzero value if X is not +-Inf or NaN. */ | ||
| 126 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 127 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 128 | # define isfinite(x) \ | ||
| 129 | (sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x)) | ||
| 130 | # else | ||
| 131 | @@ -270,7 +270,7 @@ enum | ||
| 132 | |||
| 133 | /* Return nonzero value if X is a NaN. We could use `fpclassify' but | ||
| 134 | we already have this functions `__isnan' and it is faster. */ | ||
| 135 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 136 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 137 | # define isnan(x) \ | ||
| 138 | (sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x)) | ||
| 139 | # else | ||
| 140 | @@ -282,7 +282,7 @@ enum | ||
| 141 | # endif | ||
| 142 | |||
| 143 | /* Return nonzero value is X is positive or negative infinity. */ | ||
| 144 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 145 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 146 | # define isinf(x) \ | ||
| 147 | (sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x)) | ||
| 148 | # else | ||
| 149 | Index: uClibc-0.9.30.1/include/tgmath.h | ||
| 150 | =================================================================== | ||
| 151 | --- uClibc-0.9.30.1/include/tgmath.h (revision 25552) | ||
| 152 | +++ uClibc-0.9.30.1/include/tgmath.h (working copy) | ||
| 153 | @@ -36,7 +36,7 @@ | ||
| 154 | |||
| 155 | #if __GNUC_PREREQ (2, 7) | ||
| 156 | |||
| 157 | -# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 158 | +# ifdef __NO_LONG_DOUBLE_MATH | ||
| 159 | # define __tgml(fct) fct | ||
| 160 | # else | ||
| 161 | # define __tgml(fct) fct ## l | ||
| 162 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h | ||
| 163 | =================================================================== | ||
| 164 | --- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (revision 25552) | ||
| 165 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (working copy) | ||
| 166 | @@ -7,13 +7,13 @@ | ||
| 167 | # define __WORDSIZE 32 | ||
| 168 | #endif | ||
| 169 | |||
| 170 | -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL | ||
| 171 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL | ||
| 172 | |||
| 173 | /* Signal the glibc ABI didn't used to have a `long double'. | ||
| 174 | The changes all the `long double' function variants to be redirects | ||
| 175 | to the double functions. */ | ||
| 176 | # define __LONG_DOUBLE_MATH_OPTIONAL 1 | ||
| 177 | # ifndef __LONG_DOUBLE_128__ | ||
| 178 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 179 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 180 | # endif | ||
| 181 | #endif | ||
| 182 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h | ||
| 183 | =================================================================== | ||
| 184 | --- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (revision 25552) | ||
| 185 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (working copy) | ||
| 186 | @@ -65,11 +65,13 @@ typedef double double_t; | ||
| 187 | |||
| 188 | #endif /* ISO C99 */ | ||
| 189 | |||
| 190 | -#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 191 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 192 | #include <bits/wordsize.h> | ||
| 193 | /* Signal that we do not really have a `long double'. The disables the | ||
| 194 | declaration of all the `long double' function variants. */ | ||
| 195 | # if __WORDSIZE == 32 | ||
| 196 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 197 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 198 | +# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 199 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 200 | # endif /* __WORDSIZE == 32 */ | ||
| 201 | -#endif /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */ | ||
| 202 | +#endif /* __NO_LONG_DOUBLE_MATH */ | ||
| 203 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h | ||
| 204 | =================================================================== | ||
| 205 | --- uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (revision 25552) | ||
| 206 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (working copy) | ||
| 207 | @@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp | ||
| 208 | # define FP_ILOGBNAN (2147483647) | ||
| 209 | |||
| 210 | #endif /* ISO C99 */ | ||
| 211 | + | ||
| 212 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 213 | +/* Signal that we do not really have a `long double'. This disables the | ||
| 214 | + declaration of all the `long double' function variants. */ | ||
| 215 | +/* XXX The FPA does support this but the patterns in GCC are currently | ||
| 216 | + turned off. */ | ||
| 217 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 218 | +#endif | ||
| 219 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h | ||
| 220 | =================================================================== | ||
| 221 | --- uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (revision 25552) | ||
| 222 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (working copy) | ||
| 223 | @@ -36,3 +36,7 @@ typedef long double double_t; /* `double | ||
| 224 | # define FP_ILOGBNAN (2147483647) | ||
| 225 | |||
| 226 | #endif /* ISO C99 */ | ||
| 227 | + | ||
| 228 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 229 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 230 | +#endif | ||
| 231 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h | ||
| 232 | =================================================================== | ||
| 233 | --- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (revision 25552) | ||
| 234 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (working copy) | ||
| 235 | @@ -18,13 +18,13 @@ | ||
| 236 | |||
| 237 | #define __WORDSIZE 64 | ||
| 238 | |||
| 239 | -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL | ||
| 240 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL | ||
| 241 | |||
| 242 | /* Signal that we didn't used to have a `long double'. The changes all | ||
| 243 | the `long double' function variants to be redirects to the double | ||
| 244 | functions. */ | ||
| 245 | # define __LONG_DOUBLE_MATH_OPTIONAL 1 | ||
| 246 | # ifndef __LONG_DOUBLE_128__ | ||
| 247 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 248 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 249 | # endif | ||
| 250 | #endif | ||
| 251 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h | ||
| 252 | =================================================================== | ||
| 253 | --- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (revision 25552) | ||
| 254 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (working copy) | ||
| 255 | @@ -78,3 +78,7 @@ typedef double double_t; | ||
| 256 | |||
| 257 | # endif /* GNUC before 3.4 */ | ||
| 258 | #endif /* COMPLEX_H */ | ||
| 259 | + | ||
| 260 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 261 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 262 | +#endif | ||
| 263 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h | ||
| 264 | =================================================================== | ||
| 265 | --- uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (revision 25552) | ||
| 266 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (working copy) | ||
| 267 | @@ -35,3 +35,9 @@ typedef double double_t; /* `double' exp | ||
| 268 | # define FP_ILOGBNAN 2147483647 | ||
| 269 | |||
| 270 | #endif /* ISO C99 */ | ||
| 271 | + | ||
| 272 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 273 | +/* Signal that we do not really have a `long double'. The disables the | ||
| 274 | + declaration of all the `long double' function variants. */ | ||
| 275 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 276 | +#endif | ||
| 277 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h | ||
| 278 | =================================================================== | ||
| 279 | --- uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (revision 25552) | ||
| 280 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (working copy) | ||
| 281 | @@ -44,3 +44,7 @@ typedef long double double_t; /* `double | ||
| 282 | # define FP_ILOGBNAN (-2147483647 - 1) | ||
| 283 | |||
| 284 | #endif /* ISO C99 */ | ||
| 285 | + | ||
| 286 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 287 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 288 | +#endif | ||
| 289 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h | ||
| 290 | =================================================================== | ||
| 291 | --- uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (revision 25552) | ||
| 292 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (working copy) | ||
| 293 | @@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp | ||
| 294 | # define FP_ILOGBNAN (2147483647) | ||
| 295 | |||
| 296 | #endif /* ISO C99 */ | ||
| 297 | + | ||
| 298 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 299 | +/* Signal that we do not really have a `long double'. This disables the | ||
| 300 | + declaration of all the `long double' function variants. */ | ||
| 301 | +/* XXX The FPA does support this but the patterns in GCC are currently | ||
| 302 | + turned off. */ | ||
| 303 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 304 | +#endif | ||
| 305 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h | ||
| 306 | =================================================================== | ||
| 307 | --- uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (revision 25552) | ||
| 308 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (working copy) | ||
| 309 | @@ -46,3 +46,7 @@ typedef long double double_t; /* `double | ||
| 310 | # define FP_ILOGBNAN (-2147483647 - 1) | ||
| 311 | |||
| 312 | #endif /* ISO C99 */ | ||
| 313 | + | ||
| 314 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 315 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 316 | +#endif | ||
| 317 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h | ||
| 318 | =================================================================== | ||
| 319 | --- uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (revision 25552) | ||
| 320 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (working copy) | ||
| 321 | @@ -36,8 +36,8 @@ typedef double double_t; /* `double' exp | ||
| 322 | |||
| 323 | #endif /* ISO C99 */ | ||
| 324 | |||
| 325 | -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 326 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 327 | /* Signal that we do not really have a `long double'. The disables the | ||
| 328 | declaration of all the `long double' function variants. */ | ||
| 329 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 330 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 331 | #endif | ||
| 332 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h | ||
| 333 | =================================================================== | ||
| 334 | --- uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (revision 25552) | ||
| 335 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (working copy) | ||
| 336 | @@ -35,3 +35,7 @@ typedef double double_t; /* `double' exp | ||
| 337 | # define FP_ILOGBNAN 2147483647 | ||
| 338 | |||
| 339 | #endif /* ISO C99 */ | ||
| 340 | + | ||
| 341 | +#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 342 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 343 | +#endif | ||
| 344 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h | ||
| 345 | =================================================================== | ||
| 346 | --- uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (revision 25552) | ||
| 347 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (working copy) | ||
| 348 | @@ -39,8 +39,10 @@ typedef double double_t; /* `double' exp | ||
| 349 | |||
| 350 | #endif /* ISO C99 */ | ||
| 351 | |||
| 352 | -#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32 | ||
| 353 | +#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32 | ||
| 354 | /* Signal that we do not really have a `long double'. This disables the | ||
| 355 | declaration of all the `long double' function variants. */ | ||
| 356 | -# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32 | ||
| 357 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 358 | +#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 359 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 360 | #endif | ||
| 361 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h | ||
| 362 | =================================================================== | ||
| 363 | --- uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (revision 25552) | ||
| 364 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (working copy) | ||
| 365 | @@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp | ||
| 366 | # define FP_ILOGBNAN (2147483647) | ||
| 367 | |||
| 368 | #endif /* ISO C99 */ | ||
| 369 | + | ||
| 370 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 371 | +/* Signal that we do not really have a `long double'. This disables the | ||
| 372 | + declaration of all the `long double' function variants. */ | ||
| 373 | +/* XXX The FPA does support this but the patterns in GCC are currently | ||
| 374 | + turned off. */ | ||
| 375 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 376 | +#endif | ||
| 377 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h | ||
| 378 | =================================================================== | ||
| 379 | --- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (revision 25552) | ||
| 380 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (working copy) | ||
| 381 | @@ -6,7 +6,7 @@ | ||
| 382 | # define __WORDSIZE 32 | ||
| 383 | #endif | ||
| 384 | |||
| 385 | -#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/ | ||
| 386 | +#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/ | ||
| 387 | |||
| 388 | # if __WORDSIZE == 32 | ||
| 389 | /* Signal that in 32bit ABI we didn't used to have a `long double'. | ||
| 390 | @@ -14,7 +14,7 @@ | ||
| 391 | to the double functions. */ | ||
| 392 | # define __LONG_DOUBLE_MATH_OPTIONAL 1 | ||
| 393 | # ifndef __LONG_DOUBLE_128__ | ||
| 394 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 395 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 396 | # endif | ||
| 397 | # endif | ||
| 398 | #endif | ||
| 399 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h | ||
| 400 | =================================================================== | ||
| 401 | --- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (revision 25552) | ||
| 402 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (working copy) | ||
| 403 | @@ -57,13 +57,15 @@ typedef double double_t; | ||
| 404 | |||
| 405 | #endif /* ISO C99 */ | ||
| 406 | |||
| 407 | -#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 408 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 409 | |||
| 410 | # if __WORDSIZE == 32 | ||
| 411 | /* Signal that in 32bit ABI we do not really have a `long double'. | ||
| 412 | The disables the declaration of all the `long double' function | ||
| 413 | variants. */ | ||
| 414 | -# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 415 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 416 | +# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 417 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 418 | # endif | ||
| 419 | |||
| 420 | #endif | ||
| 421 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h | ||
| 422 | =================================================================== | ||
| 423 | --- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (revision 25552) | ||
| 424 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (working copy) | ||
| 425 | @@ -37,7 +37,7 @@ | ||
| 426 | |||
| 427 | # if __WORDSIZE == 32 | ||
| 428 | |||
| 429 | -# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 430 | +# ifndef __NO_LONG_DOUBLE_MATH | ||
| 431 | |||
| 432 | # define __unordered_cmp(x, y) \ | ||
| 433 | (__extension__ \ | ||
| 434 | @@ -157,7 +157,7 @@ __NTH (__signbit (double __x)) | ||
| 435 | return __u.__i[0] < 0; | ||
| 436 | } | ||
| 437 | |||
| 438 | -# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 439 | +# ifndef __NO_LONG_DOUBLE_MATH | ||
| 440 | __MATH_INLINE int | ||
| 441 | __NTH (__signbitl (long double __x)) | ||
| 442 | { | ||
| 443 | @@ -219,7 +219,7 @@ __NTH (sqrtl (long double __x)) | ||
| 444 | _Qp_sqrt (&__r, &__x); | ||
| 445 | return __r; | ||
| 446 | } | ||
| 447 | -# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 448 | +# elif !defined __NO_LONG_DOUBLE_MATH | ||
| 449 | __MATH_INLINE long double | ||
| 450 | sqrtl (long double __x) __THROW | ||
| 451 | { | ||
| 452 | @@ -257,7 +257,7 @@ __ieee754_sqrtl (long double __x) | ||
| 453 | _Qp_sqrt(&__r, &__x); | ||
| 454 | return __r; | ||
| 455 | } | ||
| 456 | -# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ | ||
| 457 | +# elif !defined __NO_LONG_DOUBLE_MATH | ||
| 458 | __MATH_INLINE long double | ||
| 459 | __ieee754_sqrtl (long double __x) | ||
| 460 | { | ||
| 461 | Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h | ||
| 462 | =================================================================== | ||
| 463 | --- uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (revision 25552) | ||
| 464 | +++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (working copy) | ||
| 465 | @@ -61,3 +61,9 @@ typedef double double_t; | ||
| 466 | # define FP_ILOGBNAN 0x7fffffff | ||
| 467 | |||
| 468 | #endif /* ISO C99 */ | ||
| 469 | + | ||
| 470 | +#ifndef __NO_LONG_DOUBLE_MATH | ||
| 471 | +/* Signal that we do not really have a `long double'. The disables the | ||
| 472 | + declaration of all the `long double' function variants. */ | ||
| 473 | +# define __NO_LONG_DOUBLE_MATH 1 | ||
| 474 | +#endif | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch b/meta/packages/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch new file mode 100644 index 0000000000..7a89e66621 --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/uclibc_ldso_use_O0.patch | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | Index: uClibc/ldso/ldso/Makefile.in | ||
| 2 | =================================================================== | ||
| 3 | --- uClibc.orig/ldso/ldso/Makefile.in 2009-02-03 17:27:55.000000000 -0800 | ||
| 4 | +++ uClibc/ldso/ldso/Makefile.in 2009-02-03 17:28:11.000000000 -0800 | ||
| 5 | @@ -8,7 +8,7 @@ | ||
| 6 | CFLAGS-ldso := -DNOT_IN_libc -DIS_IN_rtld $(SSP_DISABLE_FLAGS) | ||
| 7 | |||
| 8 | # This stuff will not work with -fomit-frame-pointer | ||
| 9 | -CFLAGS-ldso += -fno-omit-frame-pointer | ||
| 10 | +CFLAGS-ldso += -O0 -fno-omit-frame-pointer | ||
| 11 | |||
| 12 | CFLAGS-ldso += -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) -I$(top_srcdir)ldso/include -I$(top_srcdir)ldso/ldso | ||
| 13 | CFLAGS-ldso += -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" | ||
diff --git a/meta/packages/uclibc/uclibc-0.9.30.1/x86/uClibc.machine b/meta/packages/uclibc/uclibc-0.9.30.1/x86/uClibc.machine new file mode 100644 index 0000000000..6cd19e851e --- /dev/null +++ b/meta/packages/uclibc/uclibc-0.9.30.1/x86/uClibc.machine | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated make config: don't edit | ||
| 3 | # Version: 0.9.30.1 | ||
| 4 | # Wed Jul 1 17:04:32 2009 | ||
| 5 | # | ||
| 6 | # TARGET_alpha is not set | ||
| 7 | # TARGET_arm is not set | ||
| 8 | # TARGET_avr32 is not set | ||
| 9 | # TARGET_bfin is not set | ||
| 10 | # TARGET_cris is not set | ||
| 11 | # TARGET_e1 is not set | ||
| 12 | # TARGET_frv is not set | ||
| 13 | # TARGET_h8300 is not set | ||
| 14 | # TARGET_hppa is not set | ||
| 15 | TARGET_i386=y | ||
| 16 | # TARGET_i960 is not set | ||
| 17 | # TARGET_ia64 is not set | ||
| 18 | # TARGET_m68k is not set | ||
| 19 | # TARGET_microblaze is not set | ||
| 20 | # TARGET_mips is not set | ||
| 21 | # TARGET_nios is not set | ||
| 22 | # TARGET_nios2 is not set | ||
| 23 | # TARGET_powerpc is not set | ||
| 24 | # TARGET_sh is not set | ||
| 25 | # TARGET_sh64 is not set | ||
| 26 | # TARGET_sparc is not set | ||
| 27 | # TARGET_v850 is not set | ||
| 28 | # TARGET_vax is not set | ||
| 29 | # TARGET_x86_64 is not set | ||
| 30 | # TARGET_xtensa is not set | ||
| 31 | |||
| 32 | # | ||
| 33 | # Target Architecture Features and Options | ||
| 34 | # | ||
| 35 | TARGET_ARCH="i386" | ||
| 36 | FORCE_OPTIONS_FOR_ARCH=y | ||
| 37 | CONFIG_GENERIC_386=y | ||
| 38 | # CONFIG_386 is not set | ||
| 39 | # CONFIG_486 is not set | ||
| 40 | # CONFIG_586 is not set | ||
| 41 | # CONFIG_586MMX is not set | ||
| 42 | # CONFIG_686 is not set | ||
| 43 | # CONFIG_PENTIUMII is not set | ||
| 44 | # CONFIG_PENTIUMIII is not set | ||
| 45 | # CONFIG_PENTIUM4 is not set | ||
| 46 | # CONFIG_K6 is not set | ||
| 47 | # CONFIG_K7 is not set | ||
| 48 | # CONFIG_ELAN is not set | ||
| 49 | # CONFIG_CRUSOE is not set | ||
| 50 | # CONFIG_WINCHIPC6 is not set | ||
| 51 | # CONFIG_WINCHIP2 is not set | ||
| 52 | # CONFIG_CYRIXIII is not set | ||
| 53 | # CONFIG_NEHEMIAH is not set | ||
| 54 | TARGET_SUBARCH="" | ||
| 55 | |||
| 56 | # | ||
| 57 | # Using ELF file format | ||
| 58 | # | ||
| 59 | ARCH_LITTLE_ENDIAN=y | ||
| 60 | |||
| 61 | # | ||
| 62 | # Using Little Endian | ||
| 63 | # | ||
| 64 | ARCH_HAS_MMU=y | ||
| 65 | ARCH_USE_MMU=y | ||
| 66 | UCLIBC_HAS_FLOATS=y | ||
| 67 | UCLIBC_HAS_FPU=y | ||
| 68 | DO_C99_MATH=y | ||
| 69 | # UCLIBC_HAS_FENV is not set | ||
| 70 | UCLIBC_HAS_LONG_DOUBLE_MATH=y | ||
| 71 | KERNEL_HEADERS="/bla" | ||
| 72 | HAVE_DOT_CONFIG=y | ||
diff --git a/meta/packages/uclibc/uclibc-initial_0.9.29.bb b/meta/packages/uclibc/uclibc-initial_0.9.29.bb deleted file mode 100644 index ee0631d453..0000000000 --- a/meta/packages/uclibc/uclibc-initial_0.9.29.bb +++ /dev/null | |||
| @@ -1,34 +0,0 @@ | |||
| 1 | SECTION = "base" | ||
| 2 | require uclibc_${PV}.bb | ||
| 3 | |||
| 4 | FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" | ||
| 5 | |||
| 6 | DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial" | ||
| 7 | PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" | ||
| 8 | PACKAGES = "" | ||
| 9 | |||
| 10 | do_stage() { | ||
| 11 | # Install initial headers into the cross dir | ||
| 12 | make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 13 | RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 14 | pregen install_dev | ||
| 15 | make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 16 | RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 17 | lib/crt1.o lib/crti.o lib/crtn.o | ||
| 18 | |||
| 19 | ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include | ||
| 20 | |||
| 21 | # This conflicts with the c++ version of this header | ||
| 22 | rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h | ||
| 23 | install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib | ||
| 24 | ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \ | ||
| 25 | -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so | ||
| 26 | } | ||
| 27 | |||
| 28 | do_install() { | ||
| 29 | : | ||
| 30 | } | ||
| 31 | |||
| 32 | do_compile () { | ||
| 33 | : | ||
| 34 | } | ||
diff --git a/meta/packages/uclibc/uclibc-initial_0.9.30.1.bb b/meta/packages/uclibc/uclibc-initial_0.9.30.1.bb new file mode 100644 index 0000000000..d0491fcc67 --- /dev/null +++ b/meta/packages/uclibc/uclibc-initial_0.9.30.1.bb | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | SECTION = "base" | ||
| 2 | require uclibc_${PV}.bb | ||
| 3 | |||
| 4 | DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial" | ||
| 5 | PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" | ||
| 6 | PACKAGES = "" | ||
| 7 | |||
| 8 | do_install() { | ||
| 9 | # Install initial headers into the cross dir | ||
| 10 | make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ | ||
| 11 | install_headers | ||
| 12 | #ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include | ||
| 13 | |||
| 14 | # This conflicts with the c++ version of this header | ||
| 15 | rm -f ${D}${includedir}/bits/atomicity.h | ||
| 16 | install -d ${D}${libdir}/ | ||
| 17 | install -m 644 lib/crt[1in].o ${D}${libdir}/ | ||
| 18 | install -d ${D}${libdir}/ | ||
| 19 | install -m 644 lib/libc.so ${D}${libdir}/ | ||
| 20 | } | ||
| 21 | |||
| 22 | do_compile () { | ||
| 23 | make V=1 CC="${CC}" PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ | ||
| 24 | lib/crt1.o lib/crti.o lib/crtn.o | ||
| 25 | ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \ | ||
| 26 | -o lib/libc.so | ||
| 27 | } | ||
diff --git a/meta/packages/uclibc/uclibc.inc b/meta/packages/uclibc/uclibc.inc index bb0b3643bc..18392b5c17 100644 --- a/meta/packages/uclibc/uclibc.inc +++ b/meta/packages/uclibc/uclibc.inc | |||
| @@ -22,26 +22,32 @@ python __anonymous () { | |||
| 22 | PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" | 22 | PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" |
| 23 | PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}" | 23 | PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}" |
| 24 | DEPENDS = "virtual/${TARGET_PREFIX}binutils \ | 24 | DEPENDS = "virtual/${TARGET_PREFIX}binutils \ |
| 25 | virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native" | 25 | virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native" |
| 26 | RDEPENDS_${PN}-dev = "linux-libc-headers-dev" | ||
| 26 | 27 | ||
| 27 | # Blackfin needs a wrapper around ld | 28 | # Blackfin needs a wrapper around ld |
| 28 | DEPENDS_append_bfin = " elf2flt " | 29 | #DEPENDS_append_bfin = " elf2flt " |
| 29 | 30 | ||
| 30 | INHIBIT_DEFAULT_DEPS = "1" | 31 | INHIBIT_DEFAULT_DEPS = "1" |
| 31 | PARALLEL_MAKE = "" | 32 | PARALLEL_MAKE = "" |
| 32 | 33 | ||
| 33 | PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db" | 34 | PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db" |
| 34 | 35 | ||
| 36 | LEAD_SONAME = "libc.so" | ||
| 37 | |||
| 35 | # The last line (gdb and lib1) is for uclinux-uclibc builds | 38 | # The last line (gdb and lib1) is for uclinux-uclibc builds |
| 36 | uclibc_baselibs = "/lib/libcrypt*.so* /lib/libdl*.so \ | 39 | uclibc_baselibs = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so \ |
| 37 | /lib/libintl*.so* /lib/libm*.so \ | 40 | ${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so \ |
| 38 | /lib/libnsl*.so* /lib/libpthread*.so \ | 41 | ${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so \ |
| 39 | /lib/libresolv*.so* /lib/libutil*.so \ | 42 | ${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so \ |
| 40 | /lib/libuClibc*.so* /lib/ld*.so* \ | 43 | ${base_libdir}/ld*.so.* ${base_libdir}/ld-*.so \ |
| 41 | /lib/libc*.so* /lib/libdl*.so* \ | 44 | ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \ |
| 42 | /lib/libm*.so* /lib/libutil*.so* \ | 45 | ${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so \ |
| 43 | /lib/libpthread*.so* /lib/librt*.so* \ | 46 | ${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so \ |
| 44 | /usr/lib/libc.gdb /usr/lib/libc /lib/lib1.so \ | 47 | ${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so \ |
| 48 | ${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so \ | ||
| 49 | ${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so \ | ||
| 50 | ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \ | ||
| 45 | " | 51 | " |
| 46 | FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \ | 52 | FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \ |
| 47 | ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale" | 53 | ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale" |
| @@ -61,19 +67,20 @@ RPROVIDES_uclibc-dev += "libc-dev" | |||
| 61 | UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz" | 67 | UCLIBC_LOCALE_FILE = "uClibc-locale-030818.tgz" |
| 62 | UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz" | 68 | UCLIBC_LOCALE_FILE_arm = "uClibc-locale-030818.arm.tgz" |
| 63 | UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}" | 69 | UCLIBC_LOCALE_URI = "http://www.uclibc.org/downloads/${UCLIBC_LOCALE_FILE}" |
| 64 | UCLIBC_LOCALE_URI_arm = "http://openembedded.org/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}" | 70 | UCLIBC_LOCALE_URI_arm = "http://wiki.openembedded.net/dl/uclibc-locale/${UCLIBC_LOCALE_FILE}" |
| 65 | 71 | ||
| 66 | SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \ | 72 | SRC_URI = "${@['${UCLIBC_LOCALE_URI}', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']} \ |
| 67 | file://uClibc.config" | 73 | file://uClibc.config \ |
| 68 | 74 | http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2 \ | |
| 69 | UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${prefix}" | 75 | " |
| 70 | 76 | ||
| 71 | # do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in | 77 | # do_stage barfs on a CC with whitepspace, therefore put the 'HOST_CC_ARCH' in |
| 72 | # the CFLAGS (for when building the utils). | 78 | # the CFLAGS (for when building the utils). |
| 73 | OEMAKE_NO_CC = "'OPTIMIZATION=' 'CPU_CFLAGS=${CFLAGS}' 'STRIPTOOL=true' 'LD=${LD}' \ | 79 | OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \ |
| 74 | 'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'" | 80 | 'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'" |
| 75 | EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' HOSTCFLAGS='-I${STAGING_INCDIR_NATIVE}'" | 81 | EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \ |
| 76 | EXTRA_OEMAKE_task_do_populate_sysroot = "${OEMAKE_NO_CC}" | 82 | 'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}' \ |
| 83 | ARCH=`grep TARGET_ARCH ${S}/.config|sed -e 's/TARGET_ARCH=//g'`" | ||
| 77 | EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}" | 84 | EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}" |
| 78 | 85 | ||
| 79 | KERNEL_SOURCE = "${STAGING_INCDIR}" | 86 | KERNEL_SOURCE = "${STAGING_INCDIR}" |
| @@ -94,7 +101,10 @@ configmangle = 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE="${KERNEL_SOURCE}",g; \ | |||
| 94 | s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \ | 101 | s,^SHARED_LIB_LOADER_PATH=.*,SHARED_LIB_LOADER_PATH="/lib",; \ |
| 95 | s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \ | 102 | s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="/lib",; \ |
| 96 | s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \ | 103 | s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \ |
| 97 | ${@["s,.*UCLIBC_HAS_LOCALE.*,# UCLIBC_HAS_LOCALE is not set,;", ""][bb.data.getVar("USE_NLS", d, 1) == "yes"]}' | 104 | ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][bb.data.getVar("USE_NLS", d, 1) == "yes"]} \ |
| 105 | ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][bb.data.getVar("TARGET_ARCH", d, 1) in ['mips', 'mipsel', 'avr32']]} \ | ||
| 106 | ' | ||
| 107 | |||
| 98 | CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}" | 108 | CFLAGS := "${@oe_filter_out('-I\S+', '${CFLAGS}', d)}" |
| 99 | 109 | ||
| 100 | python () { | 110 | python () { |
| @@ -133,84 +143,41 @@ do_configure() { | |||
| 133 | 143 | ||
| 134 | # Mangle the resulting .config depending on OE variables | 144 | # Mangle the resulting .config depending on OE variables |
| 135 | perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak | 145 | perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak |
| 146 | sed -i -e s:'$(CROSS)strip':true: ${S}/Rules.mak | ||
| 136 | perl -i -p -e '${configmangle}' ${S}/.config | 147 | perl -i -p -e '${configmangle}' ${S}/.config |
| 137 | 148 | ||
| 138 | sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config | 149 | sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config |
| 139 | 150 | ||
| 140 | if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then | 151 | if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then |
| 141 | echo "CONFIG_ARM_EABI=y" >> ${S}/.config | 152 | if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then |
| 142 | else | 153 | echo "CONFIG_ARM_EABI=y" >> ${S}/.config |
| 143 | echo "# CONFIG_ARM_EABI is not set" >> ${S}/.config | 154 | else |
| 155 | echo "# CONFIG_ARM_EABI is not set" >> ${S}/.config | ||
| 156 | fi | ||
| 144 | fi | 157 | fi |
| 145 | |||
| 146 | yes '' | oe_runmake oldconfig | 158 | yes '' | oe_runmake oldconfig |
| 147 | } | 159 | } |
| 148 | 160 | ||
| 149 | do_stage() { | ||
| 150 | # This MUST be done first because we | ||
| 151 | # will install crt1.o in the install_dev stage and gcc needs it | ||
| 152 | |||
| 153 | # Install into the staging dir | ||
| 154 | oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 155 | RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 156 | install_dev install_runtime | ||
| 157 | |||
| 158 | # Install into the staging dir | ||
| 159 | oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 160 | RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 161 | install_utils | ||
| 162 | |||
| 163 | # We don't really need this | ||
| 164 | rm -f ${UCLIBC_STAGE_PREFIX}/include/.cvsignore | ||
| 165 | |||
| 166 | # Fixup shared lib symlinks | ||
| 167 | ( cd ${UCLIBC_STAGE_PREFIX}/lib | ||
| 168 | for f in c crypt dl m nsl pthread resolv thread_db util; do | ||
| 169 | ln -sf lib${f}.so.? lib${f}.so | ||
| 170 | done | ||
| 171 | ) | ||
| 172 | |||
| 173 | # This conflicts with the c++ version of this header | ||
| 174 | rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h | ||
| 175 | } | ||
| 176 | |||
| 177 | do_install() { | 161 | do_install() { |
| 178 | # Tis MUST be done first because we | ||
| 179 | # will install crt1.o in the install_dev stage and gcc needs it) | ||
| 180 | oe_runmake PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 181 | RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \ | ||
| 182 | install_dev install_runtime | ||
| 183 | |||
| 184 | oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ | 162 | oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ |
| 185 | install_dev install_runtime | 163 | install_dev install_runtime |
| 186 | 164 | ||
| 165 | # Need to overwrite the version from -initial | ||
| 166 | if [ ! -e ${D}${libdir}/libc.so ]; then | ||
| 167 | ln -s ../../lib/libc.so.0 ${D}${libdir}/libc.so | ||
| 168 | fi | ||
| 169 | |||
| 187 | # We don't really need this in ${includedir} | 170 | # We don't really need this in ${includedir} |
| 188 | rm -f ${D}${prefix}/include/.cvsignore | 171 | rm -f ${D}${prefix}/include/.cvsignore |
| 189 | 172 | ||
| 190 | # This conflicts with the c++ version of this header | 173 | # This conflicts with the c++ version of this header |
| 191 | rm -f ${D}${prefix}/include/bits/atomicity.h | 174 | rm -f ${D}${prefix}/include/bits/atomicity.h |
| 192 | 175 | ||
| 193 | # ugh.. uclibc doesn't like obeying our path variables. | 176 | oe_runmake "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" utils |
| 194 | if [ "${includedir}" != "${prefix}/include" ]; then | 177 | oe_runmake STRIPTOOL=true PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ |
| 195 | install -d ${D}${includedir} | ||
| 196 | mv ${D}${prefix}/include/* ${D}${includedir}/ | ||
| 197 | rmdir ${D}${prefix}/include | ||
| 198 | fi | ||
| 199 | |||
| 200 | if [ "${libdir}" != "${prefix}/lib" ]; then | ||
| 201 | install -d ${D}${libdir} | ||
| 202 | mv ${D}${prefix}/lib/* ${D}${libdir}/ | ||
| 203 | rmdir ${D}${prefix}/lib | ||
| 204 | fi | ||
| 205 | |||
| 206 | if [ "${bindir}" != "/usr/bin" ]; then | ||
| 207 | install -d ${D}${bindir} | ||
| 208 | mv ${D}/usr/bin/* ${D}${bindir}/ | ||
| 209 | rmdir ${D}/usr/bin | ||
| 210 | fi | ||
| 211 | |||
| 212 | oe_runmake utils | ||
| 213 | oe_runmake PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \ | ||
| 214 | install_utils | 178 | install_utils |
| 179 | |||
| 180 | # oe_runstrip needs +x on files | ||
| 181 | chmod +x ${D}/${base_libdir}/* | ||
| 215 | } | 182 | } |
| 216 | 183 | ||
diff --git a/meta/packages/uclibc/uclibc_0.9.29.bb b/meta/packages/uclibc/uclibc_0.9.30.1.bb index 6e3c8b0d1c..14b59b74e3 100644 --- a/meta/packages/uclibc/uclibc_0.9.29.bb +++ b/meta/packages/uclibc/uclibc_0.9.30.1.bb | |||
| @@ -6,39 +6,28 @@ | |||
| 6 | # UCLIBC_BASE can be set in a distro file, but whether this works depends | 6 | # UCLIBC_BASE can be set in a distro file, but whether this works depends |
| 7 | # on whether the base patches apply to the selected (SRCDATE) svn release. | 7 | # on whether the base patches apply to the selected (SRCDATE) svn release. |
| 8 | # | 8 | # |
| 9 | UCLIBC_BASE ?= "0.9.29" | 9 | UCLIBC_BASE ?= "0.9.30.1" |
| 10 | PR = "r9" | ||
| 11 | 10 | ||
| 12 | require uclibc.inc | 11 | require uclibc.inc |
| 12 | PR = "r0" | ||
| 13 | 13 | ||
| 14 | PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc" | 14 | PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc" |
| 15 | 15 | ||
| 16 | DEPENDS += "ncurses-native" | ||
| 17 | |||
| 18 | SRC_URI += "file://uClibc.machine file://uClibc.distro \ | 16 | SRC_URI += "file://uClibc.machine file://uClibc.distro \ |
| 19 | file://errno_values.h.patch;patch=1 \ | 17 | file://arm-linuxthreads.patch;patch=1 \ |
| 20 | file://termios.h.patch;patch=1 \ | 18 | file://linuxthreads-changes.patch;patch=1 \ |
| 21 | file://uClibc-0.9.29-001-fix-mmap.patch;patch=1 \ | 19 | file://pthread_atfork.patch;patch=1 \ |
| 22 | file://uClibc-0.9.29-conditional-sched_affinity.patch;patch=1 \ | 20 | file://uclibc_ldso_use_O0.patch;patch=1 \ |
| 23 | file://uClibc-0.9.29-fix-gethostent_r-failure-retval.patch;patch=1 \ | 21 | file://ldso_use_arm_dl_linux_resolve_in_thumb_mode.patch;patch=1 \ |
| 24 | file://uClibc-0.9.29-fix-internal_function-definition.patch;patch=1 \ | 22 | file://gcc-4.4-fixlet.patch;patch=1 \ |
| 25 | file://uClibc-0.9.29-rm-whitespace.patch;patch=1 \ | 23 | file://uclibc-c99-ldbl-math.patch;patch=1 \ |
| 26 | file://arm_fix_alignment.patch;patch=1 \ | 24 | file://Use-__always_inline-instead-of-__inline__.patch;patch=1 \ |
| 27 | " | 25 | " |
| 28 | |||
| 29 | # mmap-unsigned-shift_bugid1303.patch | ||
| 30 | # http://uclibc.org/lists/uclibc-cvs/2007-May/011360.html;patch=1" | ||
| 31 | |||
| 32 | #recent versions uclibc require real kernel headers | 26 | #recent versions uclibc require real kernel headers |
| 33 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 27 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
| 34 | 28 | ||
| 35 | #as stated above, uclibc needs real kernel-headers | 29 | #as stated above, uclibc needs real kernel-headers |
| 36 | #however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking .... | 30 | #however: we can't depend on virtual/kernel when nptl hits due to depends deadlocking .... |
| 37 | KERNEL_SOURCE = "${CROSS_DIR}/${TARGET_SYS}" | 31 | KERNEL_SOURCE = "${STAGING_DIR_HOST}/${exec_prefix}" |
| 38 | |||
| 39 | SRC_URI += "http://www.uclibc.org/downloads/uClibc-${PV}.tar.bz2" | ||
| 40 | 32 | ||
| 41 | S = "${WORKDIR}/uClibc-${UCLIBC_BASE}" | 33 | S = "${WORKDIR}/uClibc-${UCLIBC_BASE}" |
| 42 | |||
| 43 | LEAD_SONAME = "libc.so" | ||
| 44 | |||
