]> code.ossystems Code Review - openembedded-core.git/commitdiff
uclibc: Sync with OE
authorRichard Purdie <richard@openedhand.com>
Sun, 2 Sep 2007 20:43:11 +0000 (20:43 +0000)
committerRichard Purdie <richard@openedhand.com>
Sun, 2 Sep 2007 20:43:11 +0000 (20:43 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2659 311d38ba-8fff-0310-9ca6-ca027cbcb966

17 files changed:
meta/packages/uclibc/files/armeb-kernel-stat.h.patch [new file with mode: 0644]
meta/packages/uclibc/files/errno_values.h.patch [new file with mode: 0644]
meta/packages/uclibc/files/kernel-key-t-ipc.h.patch [new file with mode: 0644]
meta/packages/uclibc/files/nokernelheadercheck.patch [new file with mode: 0644]
meta/packages/uclibc/files/termios.h.patch [new file with mode: 0644]
meta/packages/uclibc/files/uClibc.distro [new file with mode: 0644]
meta/packages/uclibc/files/uClibc.machine [new file with mode: 0644]
meta/packages/uclibc/uclibc-0.9.29/collie/uClibc.machine
meta/packages/uclibc/uclibc-0.9.29/ixp4xxbe/uClibc.machine
meta/packages/uclibc/uclibc-0.9.29/poky/uClibc.distro [deleted file]
meta/packages/uclibc/uclibc-0.9.29/uClibc.distro [moved from meta/packages/uclibc/uclibc-0.9.29/angstrom/uClibc.distro with 100% similarity]
meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv4t [new file with mode: 0644]
meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv5te [new file with mode: 0644]
meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.iwmmxt [new file with mode: 0644]
meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.strongarm [new file with mode: 0644]
meta/packages/uclibc/uclibc.inc
meta/packages/uclibc/uclibc_0.9.29.bb

diff --git a/meta/packages/uclibc/files/armeb-kernel-stat.h.patch b/meta/packages/uclibc/files/armeb-kernel-stat.h.patch
new file mode 100644 (file)
index 0000000..0440718
--- /dev/null
@@ -0,0 +1,125 @@
+# The 2.6 asm/stat.h for ARM has some rather unusual transmogrifications
+# for big-endian running.  This patch adds ARM specific code in xstatconv.c
+# which deals with the 2.4->2.6 ABI change.
+--- uClibc-0.9.27/libc/sysdeps/linux/common/xstatconv.c        2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/common/xstatconv.c        2005-06-05 11:03:56.742587966 -0700
+@@ -18,7 +18,14 @@
+    02111-1307 USA. 
+    
+    Modified for uClibc by Erik Andersen <andersen@codepoet.org>
++   Further modified for ARMBE by John Bowler <jbowler@acm.org>
+    */
++/* This is a copy of common/xstatconv.c with a fixup for the ABI
++ * (structure layout) change in ARM Linux 2.6 - this shifts the
++ * st_dev and st_rdev information from the start of the 8 byte
++ * space to the end on big-endian ARM (only).  The code is unchanged
++ * on little endian.
++ */
+ #define _GNU_SOURCE
+ #define _LARGEFILE64_SOURCE
+@@ -32,6 +39,84 @@
+ #include <sys/stat.h>
+ #include "xstatconv.h"
++/* Only for ARMEB and LFS. */
++#if defined(__ARMEB__) && defined(__UCLIBC_HAS_LFS__)
++/* stat64 (renamed) from 2.6.11.11.  What happened here is that after
++ * Linux 2.4 the 2.4 unsigned short st_rdev and st_dev fields were
++ * lengthened to unsigned long long - causing the inclusion of at least
++ * some of the 0 padding bytes which followed them.  On little endian
++ * this is fine because 2.4 did zero the pad bytes (I think) and the
++ * position of the data did not change.  On big endian the change
++ * shifted the data to the end of the field.  Someone noticed for the
++ * struct stat, and the armeb (big endian) case preserved the
++ * unsigned short (yuck), but no so for stat64 (maybe this was deliberate,
++ * but there is no evidence in the code of this.)  Consequently a
++ * fixup is necessary for the stat64 case.  The fixup here is to
++ * use the new structure when the change is detected.  See below.
++ */
++struct __kernel_stat64_armeb {
++      /* This definition changes the layout on big-endian from that
++       * used in 2.4.31 - ABI change!  Likewise for st_rdev.
++       */
++      unsigned long long      st_dev;
++      unsigned char   __pad0[4];
++      unsigned long   __st_ino;
++      unsigned int    st_mode;
++      unsigned int    st_nlink;
++      unsigned long   st_uid;
++      unsigned long   st_gid;
++      unsigned long long      st_rdev;
++      unsigned char   __pad3[4];
++      long long       st_size;
++      unsigned long   st_blksize;
++      unsigned long   __pad4;
++      unsigned long   st_blocks;
++      unsigned long   st_atime;
++      unsigned long   st_atime_nsec;
++      unsigned long   st_mtime;
++      unsigned long   st_mtime_nsec;
++      unsigned long   st_ctime;
++      unsigned long   st_ctime_nsec;
++      unsigned long long      st_ino;
++};
++
++/* This fixup only works so long as the old struct stat64 is no
++ * smaller than the new one - the caller of xstatconv uses the
++ * *old* struct, but the kernel writes the new one.  CASSERT
++ * detects this at compile time.
++ */
++#define CASSERT(c) do switch (0) { case 0:; case (c):; } while (0)
++
++void __xstat64_conv_new(struct __kernel_stat64_armeb *kbuf, struct stat64 *buf)
++{
++    CASSERT(sizeof *kbuf <= sizeof (struct kernel_stat64));
++
++    /* Convert from new kernel version of `struct stat64'.  */
++    buf->st_dev = kbuf->st_dev;
++    buf->st_ino = kbuf->st_ino;
++#ifdef _HAVE_STAT64___ST_INO
++    buf->__st_ino = kbuf->__st_ino;
++#endif
++    buf->st_mode = kbuf->st_mode;
++    buf->st_nlink = kbuf->st_nlink;
++    buf->st_uid = kbuf->st_uid;
++    buf->st_gid = kbuf->st_gid;
++    buf->st_rdev = kbuf->st_rdev;
++    buf->st_size = kbuf->st_size;
++    buf->st_blksize = kbuf->st_blksize;
++    buf->st_blocks = kbuf->st_blocks;
++    buf->st_atime = kbuf->st_atime;
++    buf->st_mtime = kbuf->st_mtime;
++    buf->st_ctime = kbuf->st_ctime;
++}
++#define _MAY_HAVE_NEW_STAT64 1
++#else
++#define _MAY_HAVE_NEW_STAT64 0
++#endif
++
++/* The following is taken verbatim from xstatconv.c apart from
++ * the addition of the _MAY_HAVE_NEW_STAT64 code.
++ */
+ void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf)
+ {
+     /* Convert to current kernel version of `struct stat'.  */
+@@ -53,6 +138,19 @@
+ #if defined __UCLIBC_HAS_LFS__
+ void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf)
+ {
++#   if _MAY_HAVE_NEW_STAT64
++      /* This relies on any device (0,0) not being mountable - i.e.
++       * it fails on Linux 2.4 if dev(0,0) is a mountable block file
++       * system and itself contains it's own device.  That doesn't
++       * happen on Linux 2.4 so far as I can see, but even if it
++       * does the API only fails (even then) if 2.4 didn't set all
++       * of the pad bytes to 0 (and it does set them to zero.)
++       */
++      if (kbuf->st_dev == 0 && kbuf->st_rdev == 0) {
++          __xstat64_conv_new((struct __kernel_stat64_armeb*)kbuf, buf);
++          return;
++      }
++#   endif
+     /* Convert to current kernel version of `struct stat64'.  */
+     buf->st_dev = kbuf->st_dev;
+     buf->st_ino = kbuf->st_ino;
diff --git a/meta/packages/uclibc/files/errno_values.h.patch b/meta/packages/uclibc/files/errno_values.h.patch
new file mode 100644 (file)
index 0000000..a1e39c1
--- /dev/null
@@ -0,0 +1,21 @@
+Index: uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h
+===================================================================
+--- uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h        2002-08-23 20:48:19.000000000 +0200
++++ uClibc-0.9.29/libc/sysdeps/linux/common/bits/errno_values.h        2007-07-01 22:11:53.000000000 +0200
+@@ -134,4 +134,16 @@
+ #define       ENOMEDIUM       123     /* No medium found */
+ #define       EMEDIUMTYPE     124     /* Wrong medium type */
++/* the following errornumbers are only in 2.6 */
++
++#define ECANCELED       125     /* Operation Canceled */
++#define ENOKEY          126     /* Required key not available */
++#define EKEYEXPIRED     127     /* Key has expired */
++#define EKEYREVOKED     128     /* Key has been revoked */
++#define EKEYREJECTED    129     /* Key was rejected by service */
++
++/* for robust mutexes */
++#define EOWNERDEAD      130     /* Owner died */
++#define ENOTRECOVERABLE 131     /* State not recoverable */
++
+ #endif /* _BITS_ERRNO_VALUES_H */
diff --git a/meta/packages/uclibc/files/kernel-key-t-ipc.h.patch b/meta/packages/uclibc/files/kernel-key-t-ipc.h.patch
new file mode 100644 (file)
index 0000000..4cc4530
--- /dev/null
@@ -0,0 +1,27 @@
+# include/linux/posix_types.h defines __kernel_key_t as int, this file
+# contains an identical definition.  This results in a compiler error
+# if both files are included.  The ipc.h file, however, also includes
+# bits/types.h, which typedefs __key_t to (int), therefore it must
+# be safe to use __key_t in place of __kernel_key_t (given that C
+# regards equivalent numeric typedefs as identical.)
+--- uClibc-0.9.27/libc/sysdeps/linux/common/bits/ipc.h.orig    2005-05-07 13:36:04.448332211 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/common/bits/ipc.h 2005-05-07 13:37:00.493885708 -0700
+@@ -35,9 +35,6 @@
+ # define IPC_INFO     3               /* See ipcs.  */
+ #endif
+-/* Type of a SYSV IPC key.  */
+-typedef int __kernel_key_t;
+-
+ /* Special key values.  */
+ #define IPC_PRIVATE   ((__key_t) 0)   /* Private key.  */
+@@ -45,7 +42,7 @@
+ /* Data structure used to pass permission information to IPC operations.  */
+ struct ipc_perm
+ {
+-    __kernel_key_t    __key;
++    __key_t           __key;
+     __kernel_uid_t    uid;
+     __kernel_gid_t    gid;
+     __kernel_uid_t    cuid;
diff --git a/meta/packages/uclibc/files/nokernelheadercheck.patch b/meta/packages/uclibc/files/nokernelheadercheck.patch
new file mode 100644 (file)
index 0000000..9f09fb2
--- /dev/null
@@ -0,0 +1,24 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- uClibc/Makefile~nokernelheadercheck
++++ uClibc/Makefile
+@@ -121,11 +121,11 @@
+       @./extra/config/conf -o extra/Configs/Config.in
+ headers: include/bits/uClibc_config.h
+-ifeq ($(strip $(ARCH_HAS_MMU)),y)
+-      @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH)
+-else
+-      @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n
+-endif
++#ifeq ($(strip $(ARCH_HAS_MMU)),y)
++#     @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH)
++#else
++#     @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n
++#endif
+       @cd include/bits; \
+       set -e; \
+       for i in `ls ../../libc/sysdeps/linux/common/bits/*.h` ; do \
diff --git a/meta/packages/uclibc/files/termios.h.patch b/meta/packages/uclibc/files/termios.h.patch
new file mode 100644 (file)
index 0000000..f7200ba
--- /dev/null
@@ -0,0 +1,22 @@
+Index: uClibc-0.9.29/libc/sysdeps/linux/common/bits/termios.h
+===================================================================
+--- uClibc-0.9.29.orig/libc/sysdeps/linux/common/bits/termios.h        2006-02-13 09:41:37.000000000 +0100
++++ uClibc-0.9.29/libc/sysdeps/linux/common/bits/termios.h     2007-07-03 00:41:27.000000000 +0200
+@@ -156,7 +156,6 @@
+ #endif
+ #define  B57600   0010001
+ #define  B115200  0010002
+-#if 0 /* limited on uClibc, keep in sync w/ cfsetspeed.c */
+ #define  B230400  0010003
+ #define  B460800  0010004
+ #define  B500000  0010005
+@@ -171,9 +170,6 @@
+ #define  B3500000 0010016
+ #define  B4000000 0010017
+ #define __MAX_BAUD B4000000
+-#else
+-#define __MAX_BAUD B115200
+-#endif
+ #ifdef __USE_MISC
+ # define CIBAUD         002003600000          /* input baud rate (not used) */
+ # define CMSPAR   010000000000                /* mark or space (stick) parity */
diff --git a/meta/packages/uclibc/files/uClibc.distro b/meta/packages/uclibc/files/uClibc.distro
new file mode 100644 (file)
index 0000000..d87b891
--- /dev/null
@@ -0,0 +1,3 @@
+# Default per-distro config
+# DO NOT CHANGE THIS
+# Create a new file ${DISTRO}/uClibc.distro
diff --git a/meta/packages/uclibc/files/uClibc.machine b/meta/packages/uclibc/files/uClibc.machine
new file mode 100644 (file)
index 0000000..66346b9
--- /dev/null
@@ -0,0 +1,8 @@
+# Default per-machine config
+# DO NOT CHANGE THIS
+# Create a new file ${MACHINE}/uClibc.distro
+# Use this file for information which is specific to the machine,
+# as opposed to the architecture (e.g. nslu2 as opposed to armeb or arm)
+# KISS: this file gets includes last, nothing in here can be
+# overridden.  Restrict things in here to things which are absolutely
+# and certainly true for this machine.
index 33f36bf179699691ffab9fbf80e6a18d66f64e17..6e89444a641028bfaf565a9fa72a98e2f380a3ef 100644 (file)
@@ -33,7 +33,7 @@ TARGET_ARCH="arm"
 FORCE_OPTIONS_FOR_ARCH=y
 CONFIG_ARM_OABI=y
 # CONFIG_ARM_EABI is not set
-USE_BX=y
+# USE_BX is not set
 # CONFIG_GENERIC_ARM is not set
 # CONFIG_ARM610 is not set
 # CONFIG_ARM710 is not set
index eec16b1b330d1c090d0b4146b7253232fe0faec8..2d9f63e531d783443726f2fa3cbfffb08265d7a7 100644 (file)
@@ -68,146 +68,3 @@ DO_C99_MATH=y
 KERNEL_HEADERS="/usr/include"
 HAVE_DOT_CONFIG=y
 
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-# DOPIC is not set
-# HAVE_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=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-# UCLIBC_STATIC_LDCONFIG is not set
-LDSO_RUNPATH=y
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-PTHREADS_DEBUG_SUPPORT=y
-LINUXTHREADS_OLD=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=y
-# UCLIBC_SUSV3_LEGACY is not set
-# UCLIBC_SUSV3_LEGACY_MACROS is not set
-UCLIBC_HAS_SHADOW=y
-# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
-UCLIBC_HAS___PROGNAME=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=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"
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Networking Support
-#
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-# UCLIBC_HAS_REENTRANT_RPC is not set
-# UCLIBC_USE_NETLINK is not set
-# UCLIBC_HAS_BSD_RES_CLOSE is not set
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-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=y
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-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=y
-# 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 is not set
-# 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=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-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=y
-
-#
-# 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=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-# UCLIBC_HAS_GNU_GLOB is not set
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="//usr"
-
-#
-# Security options
-#
-# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
-# HAVE_NO_SSP is not set
-# UCLIBC_HAS_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
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
-# DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
diff --git a/meta/packages/uclibc/uclibc-0.9.29/poky/uClibc.distro b/meta/packages/uclibc/uclibc-0.9.29/poky/uClibc.distro
deleted file mode 100644 (file)
index b326ff0..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-# DOPIC is not set
-# HAVE_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=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-# UCLIBC_STATIC_LDCONFIG is not set
-LDSO_RUNPATH=y
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-PTHREADS_DEBUG_SUPPORT=y
-LINUXTHREADS_OLD=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=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV3_LEGACY_MACROS=y
-UCLIBC_HAS_SHADOW=y
-# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set
-UCLIBC_HAS___PROGNAME=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=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"
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Networking Support
-#
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-# UCLIBC_HAS_REENTRANT_RPC is not set
-# UCLIBC_USE_NETLINK is not set
-# UCLIBC_HAS_BSD_RES_CLOSE is not set
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-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=y
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-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=y
-# 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 is not set
-# 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=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-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=y
-
-#
-# 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=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-# UCLIBC_HAS_GNU_GLOB is not set
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="//usr"
-
-#
-# Security options
-#
-# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
-# HAVE_NO_SSP is not set
-# UCLIBC_HAS_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
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
-# DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
-
-# math stuff for perl
-DO_C99_MATH=y
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv4t b/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv4t
new file mode 100644 (file)
index 0000000..898b73a
--- /dev/null
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Mon May 14 10:23:14 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# 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 Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# 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=y
+# 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_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv5te b/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.armv5te
new file mode 100644 (file)
index 0000000..ec0385b
--- /dev/null
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:16:02 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# 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 Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# 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_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+CONFIG_ARM_XSCALE=y
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/data/build/koen/OE/build/tmp/angstrom/cross/arm-angstrom-linux-uclibcgnueabi/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.iwmmxt b/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.iwmmxt
new file mode 100644 (file)
index 0000000..e27931c
--- /dev/null
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sat May 12 23:18:41 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# 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 Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_ARM_OABI is not set
+CONFIG_ARM_EABI=y
+USE_BX=y
+# 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_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+CONFIG_ARM_IWMMXT=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
diff --git a/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.strongarm b/meta/packages/uclibc/uclibc-0.9.29/uClibc.machine.strongarm
new file mode 100644 (file)
index 0000000..6e89444
--- /dev/null
@@ -0,0 +1,70 @@
+#
+# Automatically generated make config: don't edit
+# Sun May 13 11:29:51 2007
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# 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 Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_OABI=y
+# CONFIG_ARM_EABI is not set
+# USE_BX 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_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+# CONFIG_ARM_IWMMXT is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
index bae3f2d04295323e593b9a681a1ada5ea140c9c8..7fb8e5cf28c802a3264df413935066bf8459e62d 100644 (file)
@@ -23,11 +23,16 @@ PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
 PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils \
           virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
+
+# Blackfin needs a wrapper around ld
+DEPENDS_append_bfin = " elf2flt "
+
 INHIBIT_DEFAULT_DEPS = "1"
 PARALLEL_MAKE = ""
 
 PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db"
 
+# The last line (gdb and lib1) is for uclinux-uclibc builds 
 uclibc_baselibs = "/lib/libcrypt*.so* /lib/libdl*.so \
                   /lib/libintl*.so* /lib/libm*.so \
                   /lib/libnsl*.so* /lib/libpthread*.so \
@@ -35,7 +40,9 @@ uclibc_baselibs = "/lib/libcrypt*.so* /lib/libdl*.so \
                   /lib/libuClibc*.so* /lib/ld*.so* \
                   /lib/libc*.so* /lib/libdl*.so* \
                   /lib/libm*.so* /lib/libutil*.so* \
-                  /lib/libpthread*.so* /lib/librt*.so*"
+                  /lib/libpthread*.so* /lib/librt*.so* \
+                   /usr/lib/libc.gdb /usr/lib/libc /lib/lib1.so \
+                   "
 FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
               ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
 FILES_ldd = "${bindir}/ldd"
@@ -128,7 +135,7 @@ do_configure() {
 
        sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
                        echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
        else
                echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
index 293a00ed557d560a9a334b050d9027b36ef2749f..f00a347aa8363520f209ea3d2c692badec295748 100644 (file)
@@ -7,13 +7,17 @@
 # on whether the base patches apply to the selected (SRCDATE) svn release.
 #
 UCLIBC_BASE ?= "0.9.29"
-PR = "r3"
+PR = "r7"
 
 require uclibc.inc
 
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
 
-SRC_URI += "file://uClibc.machine file://uClibc.distro"
+SRC_URI += "file://uClibc.machine file://uClibc.distro \
+           file://errno_values.h.patch;patch=1 \
+           file://termios.h.patch;patch=1 \
+          "
+
 # mmap-unsigned-shift_bugid1303.patch
 # http://uclibc.org/lists/uclibc-cvs/2007-May/011360.html;patch=1"