diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2013-06-30 21:29:05 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2013-07-04 00:13:23 +0200 |
commit | a5e92d92e7ee413157aae7cecf1f354e718731e1 (patch) | |
tree | c033861dd9e050c885fca487d2f3305c0defaf4d /package | |
parent | 00e9b1e4f78633d5667b187332f36972a94b9f8b (diff) | |
download | buildroot-novena-a5e92d92e7ee413157aae7cecf1f354e718731e1.tar.gz buildroot-novena-a5e92d92e7ee413157aae7cecf1f354e718731e1.zip |
uclibc: convert to the package infrastructure
[Peter: update manual to match]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package')
-rw-r--r-- | package/gcc/gcc-intermediate/gcc-intermediate.mk | 2 | ||||
-rw-r--r-- | package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch | 43 | ||||
-rw-r--r-- | package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch | 34 | ||||
-rw-r--r-- | package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch | 68 | ||||
-rw-r--r-- | package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch | 11 | ||||
-rw-r--r-- | package/uclibc/0.9.32.1/uclibc-unshare.patch | 82 | ||||
-rw-r--r-- | package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch | 16 | ||||
-rw-r--r-- | package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch | 36 | ||||
-rw-r--r-- | package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch | 28 | ||||
-rw-r--r-- | package/uclibc/0.9.33.2/uclibc-dup3.patch | 56 | ||||
-rw-r--r-- | package/uclibc/Config.in | 166 | ||||
-rw-r--r-- | package/uclibc/uClibc-0.9.32.config | 268 | ||||
-rw-r--r-- | package/uclibc/uClibc-0.9.33.config | 278 | ||||
-rw-r--r-- | package/uclibc/uClibc-snapshot.config | 281 | ||||
-rw-r--r-- | package/uclibc/uclibc.mk | 484 |
15 files changed, 1852 insertions, 1 deletions
diff --git a/package/gcc/gcc-intermediate/gcc-intermediate.mk b/package/gcc/gcc-intermediate/gcc-intermediate.mk index 6b6b57e1f..3a7167196 100644 --- a/package/gcc/gcc-intermediate/gcc-intermediate.mk +++ b/package/gcc/gcc-intermediate/gcc-intermediate.mk @@ -10,7 +10,7 @@ GCC_INTERMEDIATE_SOURCE = $(GCC_SOURCE) HOST_GCC_INTERMEDIATE_DEPENDENCIES = \ $(HOST_GCC_COMMON_DEPENDENCIES) \ - uclibc-configured + uclibc-configure HOST_GCC_INTERMEDIATE_EXTRACT_CMDS = $(HOST_GCC_EXTRACT_CMDS) diff --git a/package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch b/package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch new file mode 100644 index 000000000..8cda4f902 --- /dev/null +++ b/package/uclibc/0.9.32.1/uclibc-Fix-__libc_epoll_pwait-compile-failure-on-x86.patch @@ -0,0 +1,43 @@ +From 8245f3b4638fdff2011c2657af1bb211def704bc Mon Sep 17 00:00:00 2001 +From: Phil Blundell <pb@pbcl.net> +Date: Sat, 11 Jun 2011 01:10:46 -0400 +Subject: [PATCH] Fix __libc_epoll_pwait compile failure on x86 + +This prevents "memory input 7 is not directly addressable" errors. + +| libc/sysdeps/linux/common/epoll.c: In function '__libc_epoll_pwait': +| libc/sysdeps/linux/common/epoll.c:71:80: error: memory input 7 is not directly addressable +| libc/sysdeps/linux/common/epoll.c:75:86: error: memory input 7 is not directly addressable +| make: *** [libc/sysdeps/linux/common/epoll.o] Error 1 +| make: *** Waiting for unfinished jobs.... + +Signed-off-by: Phil Blundell <pb@pbcl.net> +Signed-off-by: Jason Woodward <jason.woodward@timesys.com> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libc/sysdeps/linux/common/epoll.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libc/sysdeps/linux/common/epoll.c b/libc/sysdeps/linux/common/epoll.c +index 85b0cfd..ab3e73b 100644 +--- a/libc/sysdeps/linux/common/epoll.c ++++ b/libc/sysdeps/linux/common/epoll.c +@@ -67,12 +67,13 @@ extern __typeof(epoll_pwait) __libc_epoll_pwait; + int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents, + int timeout, const sigset_t *set) + { ++ int nsig = _NSIG / 8; + if (SINGLE_THREAD_P) +- return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8); ++ return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig); + # ifdef __UCLIBC_HAS_THREADS_NATIVE__ + else { + int oldtype = LIBC_CANCEL_ASYNC (); +- int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8); ++ int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig); + LIBC_CANCEL_RESET (oldtype); + return result; + } +-- +1.7.5.4 + diff --git a/package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch b/package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch new file mode 100644 index 000000000..1908925a3 --- /dev/null +++ b/package/uclibc/0.9.32.1/uclibc-Fix-e500-__fe_nomask_env-use-of-__set_errno.patch @@ -0,0 +1,34 @@ +>From 49f58308779cb0b798f5e7bc902bbc515c1ec394 Mon Sep 17 00:00:00 2001 +From: Jason Woodward <jason.woodward@timesys.com> +Date: Sat, 11 Jun 2011 22:00:59 -0400 +Subject: [PATCH] Fix e500 __fe_nomask_env use of __set_errno w/o CFLAGS-libm + +Since the new _LIBC guard in 96c9a8f7d00cdf6bb7968a2390b9d87da8a45e2d we need +to use CFLAGS-libm (-DNOT_IN_libc -DIS_IN_libm) or we end up with linker +errors like: + + lib/libm.a(fe_nomask.os): In function `__fe_nomask_env': + fe_nomask.c:(.text+0x26): undefined reference to `__libc_errno' + collect2: ld returned 1 exit status + +Signed-off-by: Jason Woodward <jason.woodward@timesys.com> +--- + libm/powerpc/e500/fpu/Makefile.arch | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/libm/powerpc/e500/fpu/Makefile.arch b/libm/powerpc/e500/fpu/Makefile.arch +index 904561e..a64843f 100644 +--- a/libm/powerpc/e500/fpu/Makefile.arch ++++ b/libm/powerpc/e500/fpu/Makefile.arch +@@ -11,6 +11,8 @@ libm_ARCH_SRC:=$(wildcard $(libm_ARCH_fpu_DIR)/*.c) + libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_fpu_DIR)/%.c,$(libm_ARCH_fpu_OUT)/%.o,$(libm_ARCH_SRC)) + endif + ++CFLAGS-fe_nomask.c := $(CFLAGS-libm) ++ + libm_ARCH_OBJS:=$(libm_ARCH_OBJ) + + ifeq ($(DOPIC),y) +-- +1.7.0.4 + diff --git a/package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch b/package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch new file mode 100644 index 000000000..c4d0d00df --- /dev/null +++ b/package/uclibc/0.9.32.1/uclibc-linuxthreads-errno-fix.patch @@ -0,0 +1,68 @@ +From af8b2d71ce37b9d4d24ddbc755cdea68de02949a Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <jacmet@sunsite.dk> +Date: Mon, 5 Jul 2010 14:08:17 +0200 +Subject: [PATCH] don't make __errno_location / __h_errno_location hidden + +Closes #2089 (https://bugs.busybox.net/show_bug.cgi?id=2089) + +__errno_location / __h_errno_location access has to go through the PLT +like malloc/free, so the linuxthread variants gets used instead when +compiling with -pthread. + +Based on http://github.com/mat-c/uClibc/commit/328d392c54aa5dc2b8e7f398a419087de497de2b + +Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> +--- + include/netdb.h | 1 - + libc/misc/internals/__errno_location.c | 3 --- + libc/misc/internals/__h_errno_location.c | 1 - + libc/sysdeps/linux/common/bits/errno.h | 1 - + 6 files changed, 0 insertions(+), 11 deletions(-) + +diff --git a/include/netdb.h b/include/netdb.h +index 9d3807d..ac411ab 100644 +--- a/include/netdb.h ++++ b/include/netdb.h +@@ -59,7 +59,6 @@ __BEGIN_DECLS + + /* Function to get address of global `h_errno' variable. */ + extern int *__h_errno_location (void) __THROW __attribute__ ((__const__)); +-libc_hidden_proto(__h_errno_location) + + /* Macros for accessing h_errno from inside libc. */ + #ifdef _LIBC +diff --git a/libc/misc/internals/__errno_location.c b/libc/misc/internals/__errno_location.c +index 487a9c2..0620860 100644 +--- a/libc/misc/internals/__errno_location.c ++++ b/libc/misc/internals/__errno_location.c +@@ -15,6 +15,3 @@ int * weak_const_function __errno_location (void) + { + return &errno; + } +-#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */ +-libc_hidden_weak(__errno_location) +-#endif +diff --git a/libc/misc/internals/__h_errno_location.c b/libc/misc/internals/__h_errno_location.c +index 213d398..235df4e 100644 +--- a/libc/misc/internals/__h_errno_location.c ++++ b/libc/misc/internals/__h_errno_location.c +@@ -10,4 +10,3 @@ int * weak_const_function __h_errno_location (void) + { + return &h_errno; + } +-libc_hidden_weak(__h_errno_location) +diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c +index 6e520fa..f4a9ebb 100644 +--- a/libc/sysdeps/linux/common/bits/errno.h ++++ b/libc/sysdeps/linux/common/bits/errno.h +@@ -43,7 +43,6 @@ + # ifndef __ASSEMBLER__ + /* Function to get address of global `errno' variable. */ + extern int *__errno_location (void) __THROW __attribute__ ((__const__)); +-libc_hidden_proto(__errno_location) + + # ifdef __UCLIBC_HAS_THREADS__ + /* When using threads, errno is a per-thread value. */ +-- +1.7.1 + diff --git a/package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch b/package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch new file mode 100644 index 000000000..44d06cb62 --- /dev/null +++ b/package/uclibc/0.9.32.1/uclibc-sparc-errno-fix.patch @@ -0,0 +1,11 @@ +--- uClibc-0.9.32.ori/libc/sysdeps/linux/sparc/pipe.S 2011-06-08 21:35:20.000000000 +0200 ++++ uClibc-0.9.32/libc/sysdeps/linux/sparc/pipe.S 2011-11-11 15:57:25.000000000 +0100 +@@ -52,7 +52,7 @@ + restore %g0,%g0,%o0 + + .Lerror: +- call HIDDEN_JUMPTARGET(__errno_location) ++ call __errno_location + or %g0,EINVAL,%i0 + st %i0,[%o0] + ret diff --git a/package/uclibc/0.9.32.1/uclibc-unshare.patch b/package/uclibc/0.9.32.1/uclibc-unshare.patch new file mode 100644 index 000000000..5820e15bb --- /dev/null +++ b/package/uclibc/0.9.32.1/uclibc-unshare.patch @@ -0,0 +1,82 @@ +Backport of unshare() syscall. +From uClibc git 19dd090a0f68765db87990ef8eda9bf77bb29581 + +Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> + +--- +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:54:30.571841170 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:57:45.874205079 -0300 +@@ -58,7 +58,13 @@ + force CLONE_PTRACE on this clone. */ + # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in + the child. */ +-# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ ++# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ ++# define CLONE_NEWUTS 0x04000000 /* New utsname group. */ ++# define CLONE_NEWIPC 0x08000000 /* New ipcs. */ ++# define CLONE_NEWUSER 0x10000000 /* New user namespace. */ ++# define CLONE_NEWPID 0x20000000 /* New pid namespace. */ ++# define CLONE_NEWNET 0x40000000 /* New network namespace. */ ++# define CLONE_IO 0x80000000 /* Clone I/O context. */ + #endif + + /* The official definition. */ +@@ -74,11 +80,9 @@ + extern int clone (int (*__fn) (void *__arg), void *__child_stack, + int __flags, void *__arg, ...) __THROW; + +-#if 0 + /* Unshare the specified resources. */ + extern int unshare (int __flags) __THROW; + #endif +-#endif + + __END_DECLS + +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:54:30.577841215 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:56:08.801527166 -0300 +@@ -24,7 +24,8 @@ + remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \ + sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \ + splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \ +- sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c ++ sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c uselib.c \ ++ vhangup.c + # NPTL needs these internally: madvise.c + CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c + ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:54:30.577841215 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:58:18.803435042 -0300 +@@ -278,6 +278,10 @@ + make_stub(umount2) + #endif + ++#if !defined __NR_unshare && defined __UCLIBC_LINUX_SPECIFIC__ ++make_stub(unshare) ++#endif ++ + #ifndef __NR_utimensat + make_stub(futimens) + make_stub(utimensat) +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c 1969-12-31 21:00:00.000000000 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c 2011-12-02 23:58:42.693601880 -0300 +@@ -0,0 +1,15 @@ ++/* vi: set sw=4 ts=4: */ ++/* ++ * unshare() for uClibc ++ * ++ * Copyright (C) 2011 Henning Heinold <heinold@inf.fu-berlin.de> ++ * ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. ++ */ ++ ++#include <sys/syscall.h> ++#include <sched.h> ++ ++#if defined __NR_unshare ++_syscall1(int, unshare, int, flags) ++#endif diff --git a/package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch b/package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch new file mode 100644 index 000000000..e28b6d25d --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-OpenWRT-140-avr32_atomic_fix.patch @@ -0,0 +1,16 @@ +Patch from OpenWRT for avr32. + +https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.32/140-avr32_atomic_fix.patch + +Signed-off-by: Simon Dawson <spdawson@gmail.com> + +--- a/libc/sysdeps/linux/avr32/bits/atomic.h ++++ b/libc/sysdeps/linux/avr32/bits/atomic.h +@@ -28,6 +28,7 @@ typedef uintmax_t uatomic_max_t; + + #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \ + ({ \ ++ __uint32_t __result; \ + __typeof__(*(mem)) __prev; \ + __asm__ __volatile__( \ + "/* __arch_compare_and_exchange_val_32_acq */\n" \ diff --git a/package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch b/package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch new file mode 100644 index 000000000..2ad00328d --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-bits-time.h-sync-with-glibc-2.16.patch @@ -0,0 +1,36 @@ +From 3d1b82c7d9dce11c733fe23a85df7f975c7e2486 Mon Sep 17 00:00:00 2001 +From: Peter Korsgaard <jacmet@sunsite.dk> +Date: Tue, 3 Jul 2012 15:54:57 +0200 +Subject: [PATCH] bits/time.h: sync with glibc 2.16 + +CLOCK_MONOTONIC_RAW is available since 2.6.28 +(2d42244ae71d: clocksource: introduce CLOCK_MONOTONIC_RAW), and +CLOCK_*_COARSE since 2.6.32 (da15cfdae033: time: Introduce +CLOCK_REALTIME_COARSE). + +Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> +Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> +--- + libc/sysdeps/linux/common/bits/time.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/libc/sysdeps/linux/common/bits/time.h b/libc/sysdeps/linux/common/bits/time.h +index 7ed54bf..c871223 100644 +--- a/libc/sysdeps/linux/common/bits/time.h ++++ b/libc/sysdeps/linux/common/bits/time.h +@@ -54,6 +54,12 @@ + # define CLOCK_PROCESS_CPUTIME_ID 2 + /* Thread-specific CPU-time clock. */ + # define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock, not adjusted for frequency scaling. */ ++# define CLOCK_MONOTONIC_RAW 4 ++/* Identifier for system-wide realtime clock, updated only on ticks. */ ++# define CLOCK_REALTIME_COARSE 5 ++/* Monotonic system-wide clock, updated only on ticks. */ ++# define CLOCK_MONOTONIC_COARSE 6 + + /* Flag to indicate time is absolute. */ + # define TIMER_ABSTIME 1 +-- +1.7.10.4 + diff --git a/package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch b/package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch new file mode 100644 index 000000000..c699b6b11 --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-define-MSG_CMSG_CLOEXEC.patch @@ -0,0 +1,28 @@ +Add definition of MSG_WAITFORONE and MSG_CMSG_CLOEXEC + +From yocto: +http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/uclibc/uclibc-0.9.33/define-MSG_CMSG_CLOEXEC.patch + +Upstream-Status: Pending + +Index: git/libc/sysdeps/linux/common/bits/socket.h +=================================================================== +--- git.orig/libc/sysdeps/linux/common/bits/socket.h 2012-01-26 23:23:21.537456132 -0800 ++++ git/libc/sysdeps/linux/common/bits/socket.h 2012-01-26 23:25:10.125461388 -0800 +@@ -235,8 +235,15 @@ + #define MSG_ERRQUEUE MSG_ERRQUEUE + MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */ + #define MSG_NOSIGNAL MSG_NOSIGNAL +- MSG_MORE = 0x8000 /* Sender will send more. */ ++ MSG_MORE = 0x8000, /* Sender will send more. */ + #define MSG_MORE MSG_MORE ++ MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/ ++#define MSG_WAITFORONE MSG_WAITFORONE ++ ++ MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file ++ descriptor received through ++ SCM_RIGHTS. */ ++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC + }; + + diff --git a/package/uclibc/0.9.33.2/uclibc-dup3.patch b/package/uclibc/0.9.33.2/uclibc-dup3.patch new file mode 100644 index 000000000..87fe2a679 --- /dev/null +++ b/package/uclibc/0.9.33.2/uclibc-dup3.patch @@ -0,0 +1,56 @@ +From: Jonas Bonn <jonas@southpole.se> +Subject: [RFC PATCH 16/38] Add dup3 syscall +Date: Tue, 6 Sep 2011 10:30:40 +0200 + +Signed-off-by: Jonas Bonn <jonas@southpole.se> +--- + include/unistd.h | 4 ++++ + libc/sysdeps/linux/common/dup3.c | 15 +++++++++++++++ + 2 files changed, 19 insertions(+), 0 deletions(-) + create mode 100644 libc/sysdeps/linux/common/dup3.c + +diff --git a/include/unistd.h b/include/unistd.h +index 9568790..7c2fa4a 100644 +--- a/include/unistd.h ++++ b/include/unistd.h +@@ -513,6 +513,10 @@ extern int dup (int __fd) __THROW __wur; + extern int dup2 (int __fd, int __fd2) __THROW; + libc_hidden_proto(dup2) + ++/* Duplicate FD to FD2, closing FD2 and making it open on the same file. */ ++extern int dup3 (int __fd, int __fd2, int __flags) __THROW; ++libc_hidden_proto(dup3) ++ + /* NULL-terminated array of "NAME=VALUE" environment variables. */ + extern char **__environ; + #ifdef __USE_GNU +diff --git a/libc/sysdeps/linux/common/dup3.c b/libc/sysdeps/linux/common/dup3.c +new file mode 100644 +index 0000000..5fdab2e +--- /dev/null ++++ b/libc/sysdeps/linux/common/dup3.c +@@ -0,0 +1,17 @@ ++/* vi: set sw=4 ts=4: */ ++/* ++ * dup3() for uClibc ++ * ++ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> ++ * ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. ++ */ ++ ++#include <sys/syscall.h> ++#include <unistd.h> ++ ++ ++#ifdef __NR_dup3 ++_syscall3(int, dup3, int, oldfd, int, newfd, int, flags) ++libc_hidden_def(dup3) ++#endif +-- +1.7.5.4 + +_______________________________________________ +uClibc mailing list +uClibc@uclibc.org +http://lists.busybox.net/mailman/listinfo/uclibc diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in new file mode 100644 index 000000000..22c70a2b4 --- /dev/null +++ b/package/uclibc/Config.in @@ -0,0 +1,166 @@ +comment "uClibc Options" + +choice + prompt "uClibc C library Version" + default BR2_UCLIBC_VERSION_0_9_33 + help + Select the version of uClibc you wish to use. + + config BR2_UCLIBC_VERSION_0_9_32 + bool "uClibc 0.9.32.x" + depends on !(BR2_arc || BR2_avr32 || BR2_sh || BR2_xtensa) + + config BR2_UCLIBC_VERSION_0_9_33 + bool "uClibc 0.9.33.x" + depends on !(BR2_arc || BR2_xtensa) + + config BR2_UCLIBC_VERSION_0_9_33_ARC + bool "uClibc 0.9.33.x-arc" + depends on BR2_arc + + config BR2_UCLIBC_VERSION_SNAPSHOT + bool "daily snapshot" + +endchoice + +config BR2_USE_UCLIBC_SNAPSHOT + string "Date (yyyymmdd) of snapshot or 'snapshot' for latest" + default "snapshot" + depends on BR2_UCLIBC_VERSION_SNAPSHOT + help + Use latest snapshot or one from a specific date? + +config BR2_UCLIBC_VERSION_STRING + string + default 0.9.32.1 if BR2_UCLIBC_VERSION_0_9_32 + default 0.9.33.2 if BR2_UCLIBC_VERSION_0_9_33 + default 0.9.33-arc if BR2_UCLIBC_VERSION_0_9_33_ARC + default $BR2_USE_UCLIBC_SNAPSHOT if BR2_UCLIBC_VERSION_SNAPSHOT + +config BR2_UCLIBC_CONFIG + string "uClibc configuration file to use?" + default "package/uclibc/uClibc-0.9.32.config" if BR2_UCLIBC_VERSION_0_9_32 + default "package/uclibc/uClibc-0.9.33.config" if BR2_UCLIBC_VERSION_0_9_33 + default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_0_9_33_ARC + default "package/uclibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT + help + Some people may wish to use their own modified uClibc configuration + file and will specify their config file location with this option. + See also docs/README in this package. + If unsure, use the default. + +config BR2_UCLIBC_INSTALL_TEST_SUITE + bool "Compile and install uClibc tests" + select BR2_PACKAGE_MAKE + help + Enabling this option will compile and install the uClibc test suite. + This is useful if you want to check if the uClibc library is working + for your architecture and/or help developing uClibc. + + The test suite will be installed into /root/uClibc directory. To run + the test suite enter the /root/uClibc/test directory and type + "make UCLIBC_ONLY=1 CC=/bin/true check". + + See the /root/uClibc/test/README for additional information. + + This is not needed at all for normal builds, so you can safely say no + if you do not plan to dig into your C library. + +# Mapping from the Buildroot architecture configuration options to the +# uClibc architecture names. +config BR2_UCLIBC_TARGET_ARCH + string + default arc if BR2_arcle || BR2_arceb + default arm if BR2_arm || BR2_armeb + default avr32 if BR2_avr32 + default bfin if BR2_bfin + default m68k if BR2_m68k + default mips if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el + default powerpc if BR2_powerpc + default sh if BR2_sh + default sparc if BR2_sparc + default xtensa if BR2_xtensa + default i386 if BR2_i386 + default x86_64 if BR2_x86_64 + +# This is only useful for uClibc <= 0.9.32. It can be removed once +# Buildroot will support only uClibc >= 0.9.33 on ARM. +config BR2_UCLIBC_ARM_TYPE + string + depends on BR2_UCLIBC_TARGET_ARCH = "arm" + default GENERIC_ARM if BR2_fa526 + default ARM7TDMI if BR2_arm7tdmi + default ARM720T if BR2_arm720t + default ARM920T if BR2_arm920t + default ARM922T if BR2_arm922t + default ARM926T if BR2_arm926t + default ARM10T if BR2_arm10t + default ARM1136JF_S if BR2_arm1136jf_s + default ARM1176JZ_S if BR2_arm1176jz_s + default ARM1176JZF_S if BR2_arm1176jzf_s + default ARM_SA1100 if BR2_strongarm + default ARM_XSCALE if BR2_xscale + default ARM_IWMMXT if BR2_iwmmxt + default ARM_CORTEXA8 if BR2_cortex_a8 + default ARM_CORTEXA9 if BR2_cortex_a9 + +config BR2_UCLIBC_ARM_ABI + string + depends on BR2_UCLIBC_TARGET_ARCH = "arm" + default OABI if BR2_ARM_OABI + default EABI if BR2_ARM_EABI + +config BR2_UCLIBC_ARM_BX + bool + depends on BR2_UCLIBC_TARGET_ARCH = "arm" + default y if !BR2_fa265 && !BR2_strongarm + +config BR2_UCLIBC_MIPS_ABI + string + depends on BR2_UCLIBC_TARGET_ARCH = "mips" + default O32 if BR2_MIPS_OABI32 + default N32 if BR2_MIPS_NABI32 + default N64 if BR2_MIPS_NABI64 + +config BR2_UCLIBC_MIPS_ISA + string + depends on BR2_UCLIBC_TARGET_ARCH = "mips" + default 1 if BR2_mips_1 + default 2 if BR2_mips_2 + default 3 if BR2_mips_3 + default 4 if BR2_mips_4 + default mips32 if BR2_mips_32 + default mips32r2 if BR2_mips_32r2 + default mips64 if BR2_mips_64 + +config BR2_UCLIBC_SH_TYPE + string + depends on BR2_UCLIBC_TARGET_ARCH = "sh" + default SHA2 if BR2_sh2 + default SH3 if BR2_sh3 || BR2_sh3eb + default SH4 if BR2_sh4 || BR2_sh4eb + +config BR2_UCLIBC_SPARC_TYPE + string + depends on BR2_UCLIBC_TARGET_ARCH = "sparc" + default V7 if BR2_sparc_v7 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon + default V8 if BR2_sparc_v8 || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8 + +config BR2_UCLIBC_POWERPC_TYPE + string + depends on BR2_UCLIBC_TARGET_ARCH = "powerpc" + default CLASSIC if !BR2_powerpc_8540 && !BR2_powerpc_8548 && !BR2_powerpc_e500mc + default E500 if BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc + +config BR2_UCLIBC_X86_TYPE + string + depends on BR2_UCLIBC_TARGET_ARCH = "i386" + default 386 if BR2_x86_i386 + default 486 if BR2_x86_i486 + default 586 if BR2_x86_i586 + default 586MMX if BR2_x86_pentium_mmx + default 686 if BR2_x86_i686 || BR2_x86_pentiumpro + default PENTIUMII if BR2_x86_pentium2 + default PENTIUMIII if BR2_x86_pentium3 + default PENTIUM4 if BR2_x86_pentium4 || BR2_x86_pentium_m || \ + BR2_x86_nocona || BR2_x86_core2 diff --git a/package/uclibc/uClibc-0.9.32.config b/package/uclibc/uClibc-0.9.32.config new file mode 100644 index 000000000..68efac907 --- /dev/null +++ b/package/uclibc/uClibc-0.9.32.config @@ -0,0 +1,268 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32-git +# Fri Jul 9 22:31:59 2010 +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set +# TARGET_c6x is not set + +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_CORTEX_M3 is not set +# CONFIG_ARM_CORTEX_M1 is not set +# CONFIG_ARM_SA110 is not set +# CONFIG_ARM_SA1100 is not set +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set + +USE_BX=y + +TARGET_SUBARCH="" +# +# Target Architecture Features and Options +# +TARGET_ARCH="none" +FORCE_OPTIONS_FOR_ARCH=y +# +# Using ELF file format +# +# ARCH_LITTLE_ENDIAN is not set +# ARCH_BIG_ENDIAN is not set +# ARCH_WANTS_LITTLE_ENDIAN is not set +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +# DO_XSI_MATH is not set +# UCLIBC_HAS_FENV is not set +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="/usr/src/linux/include" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# ARCH_HAS_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +# LDSO_CACHE_SUPPORT is not set +LDSO_PRELOAD_ENV_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +# UCLIBC_STATIC_LDCONFIG is not set +LDSO_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +LINUXTHREADS_OLD=y +# LINUXTHREADS_NEW is not set +# UCLIBC_HAS_THREADS_NATIVE is not set +UCLIBC_HAS_THREADS=y +# PTHREADS_DEBUG_SUPPORT is not set +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +# COMPAT_ATEXIT is not set +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_MODULE_24=y +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +UCLIBC_HAS_PROFILING=y +UCLIBC_HAS_CRYPT_IMPL=y +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +# UCLIBC_HAS_IPV6 is not set +# UCLIBC_HAS_RPC is not set +# UCLIBC_HAS_FULL_RPC is not set +# UCLIBC_HAS_REENTRANT_RPC is not set +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +# UCLIBC_HAS_BSD_RES_CLOSE is not set +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_LIBRESOLV_STUB=y +UCLIBC_HAS_LIBNSL_STUB=y + +# +# String and Stdio Support +# +# UCLIBC_HAS_STRING_GENERIC_OPT is not set +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +# UCLIBC_HAS_WCHAR is not set +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +# USE_OLD_VFPRINTF is not set +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +# UCLIBC_HAS_STDIO_GETC_MACRO is not set +# UCLIBC_HAS_STDIO_PUTC_MACRO is not set +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +# UCLIBC_HAS_GNU_GETSUBOPT is not set + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_REGEX_OLD is not set +UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set +# UCLIBC_HAS_WORDEXP is not set +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +UCLIBC_HAS_FTS=y +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y +UCLIBC_HAS_UTMPX=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +# UCLIBC_BUILD_PIE is not set +# UCLIBC_HAS_ARC4RANDOM is not set +# HAVE_NO_SSP is not set +UCLIBC_HAS_SSP=y +# UCLIBC_HAS_SSP_COMPAT is not set +# SSP_QUICK_CANARY is not set +PROPOLICE_BLOCK_ABRT=y +# PROPOLICE_BLOCK_SEGV is not set +# UCLIBC_BUILD_SSP is not set +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DODEBUG_PT is not set +DOSTRIP=y +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/package/uclibc/uClibc-0.9.33.config b/package/uclibc/uClibc-0.9.33.config new file mode 100644 index 000000000..eb39df6ed --- /dev/null +++ b/package/uclibc/uClibc-0.9.33.config @@ -0,0 +1,278 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32-git +# Fri Jul 9 22:31:59 2010 +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set +# TARGET_c6x is not set + +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_CORTEX_M3 is not set +# CONFIG_ARM_CORTEX_M1 is not set +# CONFIG_ARM_SA110 is not set +# CONFIG_ARM_SA1100 is not set +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set + +# COMPILE_IN_THUMB_MODE is not set +USE_BX=y + +TARGET_SUBARCH="" +# +# Target Architecture Features and Options +# +TARGET_ARCH="none" +FORCE_OPTIONS_FOR_ARCH=y +# +# Using ELF file format +# +# ARCH_LITTLE_ENDIAN is not set +# ARCH_BIG_ENDIAN is not set +# ARCH_WANTS_LITTLE_ENDIAN is not set +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +# DO_XSI_MATH is not set +# UCLIBC_HAS_FENV is not set +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="/usr/src/linux/include" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# ARCH_HAS_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +# LDSO_CACHE_SUPPORT is not set +LDSO_PRELOAD_ENV_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +# LDSO_STANDALONE_SUPPORT is not set +# LDSO_PRELINK_SUPPORT is not set +# UCLIBC_STATIC_LDCONFIG is not set +LDSO_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +# LDSO_NO_CLEANUP is not set +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +LINUXTHREADS_OLD=y +# LINUXTHREADS_NEW is not set +# UCLIBC_HAS_THREADS_NATIVE is not set +UCLIBC_HAS_THREADS=y +# PTHREADS_DEBUG_SUPPORT is not set +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +# COMPAT_ATEXIT is not set +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_MODULE_26=y +# UCLIBC_LINUX_MODULE_24 is not set +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +UCLIBC_HAS_PROFILING=y +UCLIBC_HAS_CRYPT_IMPL=y +# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set +# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +# UCLIBC_HAS_IPV6 is not set +# UCLIBC_HAS_RPC is not set +# UCLIBC_HAS_FULL_RPC is not set +# UCLIBC_HAS_REENTRANT_RPC is not set +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +# UCLIBC_HAS_BSD_RES_CLOSE is not set +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLVER_SUPPORT=y +UCLIBC_HAS_LIBRESOLV_STUB=y +UCLIBC_HAS_LIBNSL_STUB=y + +# +# String and Stdio Support +# +# UCLIBC_HAS_STRING_GENERIC_OPT is not set +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +# UCLIBC_HAS_WCHAR is not set +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +# USE_OLD_VFPRINTF is not set +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +# UCLIBC_HAS_STDIO_GETC_MACRO is not set +# UCLIBC_HAS_STDIO_PUTC_MACRO is not set +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +# UCLIBC_HAS_GNU_GETSUBOPT is not set + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_REGEX_OLD is not set +UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set +# UCLIBC_HAS_WORDEXP is not set +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +# UCLIBC_HAS_FTS is not set +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y +UCLIBC_HAS_UTMPX=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +# UCLIBC_BUILD_PIE is not set +# UCLIBC_HAS_ARC4RANDOM is not set +# HAVE_NO_SSP is not set +UCLIBC_HAS_SSP=y +# UCLIBC_HAS_SSP_COMPAT is not set +# SSP_QUICK_CANARY is not set +PROPOLICE_BLOCK_ABRT=y +# PROPOLICE_BLOCK_SEGV is not set +# UCLIBC_BUILD_SSP is not set +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DODEBUG_PT is not set +DOSTRIP=y +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/package/uclibc/uClibc-snapshot.config b/package/uclibc/uClibc-snapshot.config new file mode 100644 index 000000000..cb6258d83 --- /dev/null +++ b/package/uclibc/uClibc-snapshot.config @@ -0,0 +1,281 @@ +# +# Automatically generated make config: don't edit +# Version: 0.9.32-git +# Fri Jul 9 22:31:59 2010 +# +# TARGET_alpha is not set +# TARGET_arc is not set +# TARGET_arm is not set +# TARGET_avr32 is not set +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_metag is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set +# TARGET_xtensa is not set +# TARGET_c6x is not set + +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_CORTEX_M3 is not set +# CONFIG_ARM_CORTEX_M1 is not set +# CONFIG_ARM_SA110 is not set +# CONFIG_ARM_SA1100 is not set +# CONFIG_ARM_XSCALE is not set +# CONFIG_ARM_IWMMXT is not set + +# COMPILE_IN_THUMB_MODE is not set +USE_BX=y + +TARGET_SUBARCH="" +# +# Target Architecture Features and Options +# +TARGET_ARCH="none" +FORCE_OPTIONS_FOR_ARCH=y +# +# Using ELF file format +# +# ARCH_LITTLE_ENDIAN is not set +# ARCH_BIG_ENDIAN is not set +# ARCH_WANTS_LITTLE_ENDIAN is not set +# ARCH_WANTS_BIG_ENDIAN is not set +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +UCLIBC_HAS_FPU=y +DO_C99_MATH=y +# DO_XSI_MATH is not set +# UCLIBC_HAS_FENV is not set +UCLIBC_HAS_LONG_DOUBLE_MATH=y +KERNEL_HEADERS="/usr/src/linux/include" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# ARCH_HAS_NO_SHARED is not set +# ARCH_HAS_NO_LDSO is not set +HAVE_SHARED=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +LDSO_LDD_SUPPORT=y +# LDSO_CACHE_SUPPORT is not set +LDSO_PRELOAD_ENV_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +# LDSO_STANDALONE_SUPPORT is not set +# LDSO_PRELINK_SUPPORT is not set +# UCLIBC_STATIC_LDCONFIG is not set +LDSO_RUNPATH=y +LDSO_SAFE_RUNPATH=y +LDSO_SEARCH_INTERP_PATH=y +LDSO_LD_LIBRARY_PATH=y +# LDSO_NO_CLEANUP is not set +UCLIBC_CTOR_DTOR=y +# LDSO_GNU_HASH_SUPPORT is not set +# HAS_NO_THREADS is not set +LINUXTHREADS_OLD=y +# LINUXTHREADS_NEW is not set +# UCLIBC_HAS_THREADS_NATIVE is not set +UCLIBC_HAS_THREADS=y +# PTHREADS_DEBUG_SUPPORT is not set +UCLIBC_HAS_SYSLOG=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +# COMPAT_ATEXIT is not set +UCLIBC_SUSV3_LEGACY=y +# UCLIBC_SUSV3_LEGACY_MACROS is not set +UCLIBC_SUSV4_LEGACY=y +# UCLIBC_STRICT_HEADERS is not set +# UCLIBC_HAS_STUBS is not set +UCLIBC_HAS_SHADOW=y +UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y +UCLIBC_HAS___PROGNAME=y +UCLIBC_HAS_PTY=y +ASSUME_DEVPTS=y +UNIX98PTY_ONLY=y +UCLIBC_HAS_GETPT=y +UCLIBC_HAS_LIBUTIL=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" +UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y + +# +# Advanced Library Settings +# +UCLIBC_PWD_BUFFER_SIZE=256 +UCLIBC_GRP_BUFFER_SIZE=256 + +# +# Support various families of functions +# +UCLIBC_LINUX_MODULE_26=y +# UCLIBC_LINUX_MODULE_24 is not set +UCLIBC_LINUX_SPECIFIC=y +UCLIBC_HAS_GNU_ERROR=y +UCLIBC_BSD_SPECIFIC=y +UCLIBC_HAS_BSD_ERR=y +# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set +# UCLIBC_NTP_LEGACY is not set +# UCLIBC_SV4_DEPRECATED is not set +UCLIBC_HAS_REALTIME=y +UCLIBC_HAS_ADVANCED_REALTIME=y +UCLIBC_HAS_EPOLL=y +UCLIBC_HAS_XATTR=y +UCLIBC_HAS_PROFILING=y +UCLIBC_HAS_CRYPT_IMPL=y +# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set +# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set +UCLIBC_HAS_CRYPT=y +UCLIBC_HAS_NETWORK_SUPPORT=y +UCLIBC_HAS_SOCKET=y +UCLIBC_HAS_IPV4=y +# UCLIBC_HAS_IPV6 is not set +# UCLIBC_HAS_RPC is not set +# UCLIBC_HAS_FULL_RPC is not set +# UCLIBC_HAS_REENTRANT_RPC is not set +UCLIBC_USE_NETLINK=y +UCLIBC_SUPPORT_AI_ADDRCONFIG=y +# UCLIBC_HAS_BSD_RES_CLOSE is not set +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLVER_SUPPORT=y +UCLIBC_HAS_LIBRESOLV_STUB=y +UCLIBC_HAS_LIBNSL_STUB=y + +# +# String and Stdio Support +# +# UCLIBC_HAS_STRING_GENERIC_OPT is not set +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +# UCLIBC_HAS_WCHAR is not set +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +# USE_OLD_VFPRINTF is not set +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set +# UCLIBC_HAS_STDIO_GETC_MACRO is not set +# UCLIBC_HAS_STDIO_PUTC_MACRO is not set +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y +# UCLIBC_HAS_GNU_GETSUBOPT is not set + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_REGEX_OLD is not set +UCLIBC_HAS_FNMATCH=y +# UCLIBC_HAS_FNMATCH_OLD is not set +# UCLIBC_HAS_WORDEXP is not set +UCLIBC_HAS_NFTW=y +UCLIBC_HAS_FTW=y +# UCLIBC_HAS_FTS is not set +UCLIBC_HAS_GLOB=y +UCLIBC_HAS_GNU_GLOB=y +UCLIBC_HAS_UTMPX=y + +# +# Library Installation Options +# +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" +MULTILIB_DIR="lib" +HARDWIRED_ABSPATH=y + +# +# Security options +# +# UCLIBC_BUILD_PIE is not set +# UCLIBC_HAS_ARC4RANDOM is not set +# HAVE_NO_SSP is not set +UCLIBC_HAS_SSP=y +# UCLIBC_HAS_SSP_COMPAT is not set +# SSP_QUICK_CANARY is not set +PROPOLICE_BLOCK_ABRT=y +# PROPOLICE_BLOCK_SEGV is not set +# UCLIBC_BUILD_SSP is not set +UCLIBC_BUILD_RELRO=y +UCLIBC_BUILD_NOW=y +UCLIBC_BUILD_NOEXECSTACK=y + +# +# uClibc development/debugging options +# +CROSS_COMPILER_PREFIX="" +UCLIBC_EXTRA_CFLAGS="" +# DODEBUG is not set +# DODEBUG_PT is not set +DOSTRIP=y +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MALLOC_DEBUGGING is not set +# UCLIBC_HAS_BACKTRACE is not set +WARNINGS="-Wall" +# EXTRA_WARNINGS is not set +# DOMULTI is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk new file mode 100644 index 000000000..1c5340c85 --- /dev/null +++ b/package/uclibc/uclibc.mk @@ -0,0 +1,484 @@ +################################################################################ +# +# uclibc +# +################################################################################ + +UCLIBC_VERSION = $(call qstrip,$(BR2_UCLIBC_VERSION_STRING)) +UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.xz + +ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y) +UCLIBC_SITE = http://www.uclibc.org/downloads/snapshots +else ifeq ($(findstring arc,$(UCLIBC_VERSION)),arc) +UCLIBC_SITE = $(BR2_ARC_SITE) +UCLIBC_SOURCE = uClibc-$(UCLIBC_VERSION).tar.bz2 +else +UCLIBC_SITE = http://www.uclibc.org/downloads +endif + +UCLIBC_INSTALL_STAGING = YES + +# Before uClibc is configured, we must have the first stage +# cross-compiler and the kernel headers +UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers + +# Before uClibc is built, we must have the second stage cross-compiler +uclibc-build: host-gcc-intermediate + +# specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config +# setting. +ifndef UCLIBC_CONFIG_FILE +UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG)) +endif + +UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH)) + +ifeq ($(GENERATE_LOCALE),) +# We need at least one locale +UCLIBC_LOCALES = en_US +else +# Strip out the encoding part of locale names, if any +UCLIBC_LOCALES = $(foreach locale,$(GENERATE_LOCALE),\ + $(firstword $(subst .,$(space),$(locale)))) +endif + +# +# Utility functions to manipulation the uClibc configuration file +# + +define UCLIBC_OPT_SET + $(SED) '/$(1)/d' $(3)/.config + echo '$(1)=$(2)' >> $(3)/.config +endef + +define UCLIBC_OPT_UNSET + $(SED) '/$(1)/d' $(2)/.config + echo '# $(1) is not set' >> $(2)/.config +endef + +# +# ARM definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),arm) +UCLIBC_ARM_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARM_TYPE)) + +define UCLIBC_ARM_TYPE_CONFIG + $(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \ + $(@D)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_ARM_TYPE),y,$(@D)) +endef + +UCLIBC_ARM_ABI = CONFIG_ARM_$(call qstrip,$(BR2_UCLIBC_ARM_ABI)) + +define UCLIBC_ARM_ABI_CONFIG + $(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_ARM_ABI),y,$(@D)) +endef + +ifeq ($(BR2_UCLIBC_ARM_BX),y) +define UCLIBC_ARM_BX_CONFIG + $(call UCLIBC_OPT_SET,USE_BX,y,$(@D)) +endef +else +define UCLIBC_ARM_BX_CONFIG + $(call UCLIBC_OPT_UNSET,USE_BX,y,$(@D)) +endef +endif + +endif # arm + +# +# MIPS definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),mips) +UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI +define UCLIBC_MIPS_ABI_CONFIG + $(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ABI),y,$(@D)) +endef + +UCLIBC_MIPS_ISA = CONFIG_MIPS_ISA_$(call qstrip,$(BR2_UCLIBC_MIPS_ISA)) +define UCLIBC_MIPS_ISA_CONFIG + $(SED) '/CONFIG_MIPS_ISA_.*/d' $(@D)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_MIPS_ISA),y,$(@D)) +endef +endif # mips + +# +# SH definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),sh) +UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE)) +define UCLIBC_SH_TYPE_CONFIG + $(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_SH_TYPE),y,$(@Ð)) +endef +endif # sh + +# +# SPARC definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),sparc) +UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE)) +define UCLIBC_SPARC_TYPE_CONFIG + $(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \ + $(@Ð)/.config + $(call UCLIBC_OPT_SET,$(UCLIBC_SPARC_TYPE),y,$(@D)) +endef +endif # sparc + +# +# PowerPC definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),powerpc) +UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE)) +define UCLIBC_POWERPC_TYPE_CONFIG + $(call UCLIBC_OPT_UNSET,CONFIG_GENERIC,$(@D)) + $(call UCLIBC_OPT_UNSET,CONFIG_E500,$(@D)) + $(call UCLIBC_OPT_SET,$(UCLIBC_POWERPC_TYPE),y,$(@Ð)) +endef +endif # powerpc + +# +# AVR32 definitions +# + +ifeq ($(UCLIBC_TARGET_ARCH),avr32) +define UCLIBC_AVR32_CONFIG + $(call UCLIBC_OPT_SET,LINKRELAX,y,$(@D)) +endef +endif # avr32 + +# +# x86 definitions +# +ifeq ($(UCLIBC_TARGET_ARCH),i386) +UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE)) +define UCLIBC_X86_TYPE_CONFIG + $(call UCLIBC_OPT_SET,$(UCLIBC_X86_TYPE),y,$(@D)) +endef +endif + +# +# ARC definitions +# +ifeq ($(UCLIBC_TARGET_ARCH),arc) +REALLY_NOSTDLIB = -really-nostdlib +endif + +# +# Endianess +# + +ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG) +define UCLIBC_ENDIAN_CONFIG + $(call UCLIBC_OPT_SET,ARCH_BIG_ENDIAN,y,$(@D)) + $(call UCLIBC_OPT_SET,ARCH_WANTS_BIG_ENDIAN,y,$(@D)) + $(call UCLIBC_OPT_UNSET,ARCH_LITTLE_ENDIAN,$(@D)) + $(call UCLIBC_OPT_UNSET,ARCH_WANTS_LITTLE_ENDIAN,$(@D)) +endef +else +define UCLIBC_ENDIAN_CONFIG + $(call UCLIBC_OPT_SET,ARCH_LITTLE_ENDIAN,y,$(@D)) + $(call UCLIBC_OPT_SET,ARCH_WANTS_LITTLE_ENDIAN,y,$(@D)) + $(call UCLIBC_OPT_UNSET,ARCH_BIG_ENDIAN,$(@D)) + $(call UCLIBC_OPT_UNSET,ARCH_WANTS_BIG_ENDIAN,$(@D)) +endef +endif + +# +# Largefile +# + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LARGEFILE),y) +define UCLIBC_LARGEFILE_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_LFS,y,$(@D)) +endef +else +define UCLIBC_LARGEFILE_CONFIG + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LFS,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FOPEN_LARGEFILE_MODE,$(@D)) +endef +endif + +# +# IPv6 +# + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_IPV6),y) +UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_IPV6,y,$(@D)) +else +UCLIBC_IPV6_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_IPV6,$(@D)) +endif + +# +# RPC +# + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_INET_RPC),y) +define UCLIBC_RPC_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_RPC,y,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_FULL_RPC,y,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_REENTRANT_RPC,y,$(@D)) +endef +else +define UCLIBC_RPC_CONFIG + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_RPC,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FULL_RPC,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_REENTRANT_RPC,$(@D)) +endef +endif + +# +# soft-float +# + +ifeq ($(BR2_SOFT_FLOAT),y) +define UCLIBC_FLOAT_CONFIG + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_FPU,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D)) + $(call UCLIBC_OPT_SET,DO_C99_MATH,y,$(@D)) +endef +else +define UCLIBC_FLOAT_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_FPU,y,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_FLOATS,y,$(@D)) +endef +endif + +# +# SSP +# +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y) +UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_SSP,y,$(@D)) +else +UCLIBC_SSP_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_SSP,$(@D)) +endif + +# +# Threads +# +ifeq ($(BR2_PTHREADS_NONE),y) +define UCLIBC_THREAD_CONFIG + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D)) +endef +else ifeq ($(BR2_PTHREADS),y) +define UCLIBC_THREAD_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D)) + $(call UCLIBC_OPT_SET,LINUXTHREADS_NEW,y,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D)) +endef +else ifeq ($(BR2_PTHREADS_OLD),y) +define UCLIBC_THREAD_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D)) + $(call UCLIBC_OPT_SET,LINUXTHREADS_OLD,y,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_THREADS_NATIVE,$(@D)) +endef +else ifeq ($(BR2_PTHREADS_NATIVE),y) +define UCLIBC_THREAD_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS,y,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS_NEW,$(@D)) + $(call UCLIBC_OPT_UNSET,LINUXTHREADS_OLD,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_THREADS_NATIVE,y,$(@D)) +endef +endif + +# +# Thread debug +# + +ifeq ($(BR2_PTHREAD_DEBUG),y) +UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,PTHREADS_DEBUG_SUPPORT,y,$(@D)) +else +UCLIBC_THREAD_DEBUG_CONFIG = $(call UCLIBC_OPT_UNSET,PTHREADS_DEBUG_SUPPORT,$(@D)) +endif + +# +# Locale +# + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y) +define UCLIBC_LOCALE_CONFIG + $(call UCLIBC_OPT_SET,UCLIBC_HAS_LOCALE,y,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_BUILD_ALL_LOCALE,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALE,y,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D)) + $(call UCLIBC_OPT_UNSET,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D)) + $(call UCLIBC_OPT_SET,UCLIBC_HAS_XLOCALE,y,$(@D)) + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_GLIBC_DIGIT_GROUPING,$(@D)) +endef +else +define UCLIBC_LOCALE_CONFIG + $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_LOCALE,$(@D)) +endef +endif + +# +# wchar +# + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y) +UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_SET,UCLIBC_HAS_WCHAR,y,$(@D)) +else +UCLIBC_WCHAR_CONFIG = $(call UCLIBC_OPT_UNSET,UCLIBC_HAS_WCHAR,$(@D)) +endif + +# +# debug +# + +ifeq ($(BR2_ENABLE_DEBUG),y) +UCLIBC_DEBUG_CONFIG = $(call UCLIBC_OPT_SET,DODEBUG,y,$(@D)) +endif + +# +# strip +# + +ifeq ($(BR2_STRIP_none),y) +UCLIBC_STRIP_CONFIG = $(call UCLIBC_OPT_SET,DOSTRIP,y,$(@D)) +endif + +# +# Commands +# + +UCLIBC_MAKE_FLAGS = \ + ARCH="$(UCLIBC_TARGET_ARCH)" \ + CROSS_COMPILE="$(TARGET_CROSS)" \ + UCLIBC_EXTRA_CFLAGS="$(TARGET_ABI)" \ + HOSTCC="$(HOSTCC)" + +define UCLIBC_CONFIGURE_CMDS + cp -f $(UCLIBC_CONFIG_FILE) $(@D)/.config + $(call UCLIBC_OPT_SET,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D)) + $(call UCLIBC_OPT_SET,TARGET_$(UCLIBC_TARGET_ARCH),y,$(@D)) + $(call UCLIBC_OPT_SET,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D)) + $(call UCLIBC_OPT_SET,KERNEL_HEADERS,"$(STAGING_DIR)/usr/include",$(@D)) + $(call UCLIBC_OPT_SET,RUNTIME_PREFIX,"/",$(@D)) + $(call UCLIBC_OPT_SET,DEVEL_PREFIX,"/usr",$(@D)) + $(call UCLIBC_OPT_SET,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)) + $(UCLIBC_ARM_TYPE_CONFIG) + $(UCLIBC_ARM_ABI_CONFIG) + $(UCLIBC_ARM_BX_CONFIG) + $(UCLIBC_MIPS_ABI_CONFIG) + $(UCLIBC_MIPS_ISA_CONFIG) + $(UCLIBC_SH_TYPE_CONFIG) + $(UCLIBC_SPARC_TYPE_CONFIG) + $(UCLIBC_POWERPC_TYPE_CONFIG) + $(UCLIBC_AVR32_CONFIG) + $(UCLIBC_X86_TYPE_CONFIG) + $(UCLIBC_ENDIAN_CONFIG) + $(UCLIBC_LARGEFILE_CONFIG) + $(UCLIBC_IPV6_CONFIG) + $(UCLIBC_RPC_CONFIG) + $(UCLIBC_FLOAT_CONFIG) + $(UCLIBC_SSP_CONFIG) + $(UCLIBC_THREAD_CONFIG) + $(UCLIBC_THREAD_DEBUG_CONFIG) + $(UCLIBC_LOCALE_CONFIG) + $(UCLIBC_WCHAR_CONFIG) + $(UCLIBC_STRIP_CONFIG) + $(UCLIBC_DEBUG_CONFIG) + yes "" | $(MAKE1) -C $(@D) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX=$(STAGING_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=$(STAGING_DIR) \ + oldconfig + $(MAKE1) -C $(UCLIBC_DIR) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX=$(STAGING_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=$(STAGING_DIR) \ + headers lib/crt1.o lib/crti.o lib/crtn.o \ + install_headers + $(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \ + -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so + $(TARGET_CROSS)gcc -nostdlib $(REALLY_NOSTDLIB) \ + -nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libm.so + cp -pLR $(UCLIBC_DIR)/lib/crt[1in].o $(STAGING_DIR)/usr/lib/ +endef + +ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y) +define UCLIBC_BUILD_TEST_SUITE + $(MAKE1) -C $(@D)/test \ + $(UCLIBC_MAKE_FLAGS) \ + ARCH_CFLAGS=-I$(STAGING_DIR)/usr/include \ + UCLIBC_ONLY=1 \ + TEST_INSTALLED_UCLIBC=1 \ + compile +endef +endif + +define UCLIBC_BUILD_CMDS + $(MAKE1) -C $(@D) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX= \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ + all + $(MAKE1) -C $(@D)/utils \ + PREFIX=$(HOST_DIR) \ + HOSTCC="$(HOSTCC)" hostutils + $(UCLIBC_BUILD_TEST_SUITE) +endef + +ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y) +define UCLIBC_INSTALL_TEST_SUITE + mkdir -p $(TARGET_DIR)/root/uClibc + cp -rdpf $(@D)/test $(TARGET_DIR)/root/uClibc + $(INSTALL) -D -m 0644 $(@D)/Rules.mak $(TARGET_DIR)/root/uClibc/Rules.mak + $(INSTALL) -D -m 0644 $(@D)/.config $(TARGET_DIR)/root/uClibc/.config +endef +endif + +define UCLIBC_INSTALL_TARGET_CMDS + $(MAKE1) -C $(@D) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX=$(TARGET_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=/ \ + install_runtime + $(MAKE1) -C $(@D) \ + CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \ + ARCH="$(UCLIBC_TARGET_ARCH)" \ + PREFIX=$(TARGET_DIR) \ + utils install_utils + $(UCLIBC_INSTALL_TEST_SUITE) +endef + +define UCLIBC_INSTALL_STAGING_CMDS + $(MAKE1) -C $(@D) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX=$(STAGING_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=/ \ + install_runtime install_dev + install -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/usr/bin/ldd + ln -sf ldd $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd + install -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/usr/bin/ldconfig + ln -sf ldconfig $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldconfig +endef + +uclibc-menuconfig: dirs uclibc-configure + $(MAKE1) -C $(UCLIBC_DIR) \ + $(UCLIBC_MAKE_FLAGS) \ + PREFIX=$(STAGING_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=$(STAGING_DIR)/ \ + menuconfig + rm -f $(UCLIBC_DIR)/.stamp_{built,target_installed,staging_installed} + +$(eval $(generic-package)) |