aboutsummaryrefslogtreecommitdiffstats
path: root/core/uclibc
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2008-11-14 12:15:36 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2008-11-14 12:15:36 +0000
commit5c33ddd595358812dc26437a936e4a1a02e9fc8e (patch)
tree7d0b213d52c3ca35db119eb7156860c0a99ed164 /core/uclibc
parent41a8b05965f12d59e7380bb94f71335463c78a8e (diff)
downloadaports-5c33ddd595358812dc26437a936e4a1a02e9fc8e.tar.bz2
aports-5c33ddd595358812dc26437a936e4a1a02e9fc8e.tar.xz
core/uclibc: update to 0.9.30
work around gcc-3.4.6 bug with -pthread
Diffstat (limited to 'core/uclibc')
-rw-r--r--core/uclibc/69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch12
-rw-r--r--core/uclibc/72_all_uClibc-0.9.29-linuxthreads.patch145
-rw-r--r--core/uclibc/74_all_uClibc-0.9.29-rm-whitespace.patch83
-rw-r--r--core/uclibc/81_all_uClibc-gnu89-inline.patch10
-rw-r--r--core/uclibc/APKBUILD34
-rw-r--r--core/uclibc/libpthreads-no-omit-framepointer.patch22
-rw-r--r--core/uclibc/uclibcconfig2
7 files changed, 16 insertions, 292 deletions
diff --git a/core/uclibc/69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch b/core/uclibc/69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch
deleted file mode 100644
index ea7174a00e..0000000000
--- a/core/uclibc/69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur uClibc-0.9.29/libc/inet/resolv.c uClibc-0.9.29-patched/libc/inet/resolv.c
---- uClibc-0.9.29/libc/inet/resolv.c 2007-04-23 12:01:05.000000000 -0500
-+++ uClibc-0.9.29-patched/libc/inet/resolv.c 2007-05-09 18:05:33.563404419 -0500
-@@ -1730,7 +1730,7 @@
- int gethostent_r(struct hostent *result_buf, char *buf, size_t buflen,
- struct hostent **result, int *h_errnop)
- {
-- int ret;
-+ int ret = HOST_NOT_FOUND;
-
- __UCLIBC_MUTEX_LOCK(mylock);
- if (__gethostent_fp == NULL) {
diff --git a/core/uclibc/72_all_uClibc-0.9.29-linuxthreads.patch b/core/uclibc/72_all_uClibc-0.9.29-linuxthreads.patch
deleted file mode 100644
index 8ce2439b46..0000000000
--- a/core/uclibc/72_all_uClibc-0.9.29-linuxthreads.patch
+++ /dev/null
@@ -1,145 +0,0 @@
---- a/libpthread/linuxthreads.old/attr.c 2006-01-24 12:41:01.000000000 -0500
-+++ b/libpthread/linuxthreads.old/attr.c 2008-02-10 11:35:32.000000000 -0500
-@@ -25,6 +25,14 @@
- #include "pthread.h"
- #include "internals.h"
-
-+#include <sys/resource.h>
-+#include <inttypes.h>
-+#include <stdio.h>
-+#include <stdio_ext.h>
-+#include <stdlib.h>
-+#include <sys/resource.h>
-+
-+
- /* NOTE: With uClibc I don't think we need this versioning stuff.
- * Therefore, define the function pthread_attr_init() here using
- * a strong symbol. */
-@@ -209,4 +217,94 @@ int __pthread_attr_getstacksize(const pt
- *stacksize = attr->__stacksize;
- return 0;
- }
-+
-+
-+extern int *__libc_stack_end;
-+
- weak_alias (__pthread_attr_getstacksize, pthread_attr_getstacksize)
-+void* pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)
-+{
-+ static void *stackBase = 0;
-+ static size_t stackSize = 0;
-+ int ret = 0;
-+ /* Stack size limit. */
-+ struct rlimit rl;
-+
-+ /* The safest way to get the top of the stack is to read
-+ /proc/self/maps and locate the line into which
-+ __libc_stack_end falls. */
-+ FILE *fp = fopen("/proc/self/maps", "rc");
-+ if (fp == NULL)
-+ ret = errno;
-+ /* We need the limit of the stack in any case. */
-+ else if (getrlimit (RLIMIT_STACK, &rl) != 0)
-+ ret = errno;
-+ else {
-+ /* We need no locking. */
-+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
-+
-+ /* Until we found an entry (which should always be the case)
-+ mark the result as a failure. */
-+ ret = ENOENT;
-+
-+ char *line = NULL;
-+ size_t linelen = 0;
-+ uintptr_t last_to = 0;
-+
-+ while (! feof_unlocked (fp)) {
-+ if (getdelim (&line, &linelen, '\n', fp) <= 0)
-+ break;
-+
-+ uintptr_t from;
-+ uintptr_t to;
-+ if (sscanf (line, "%x-%x", &from, &to) != 2)
-+ continue;
-+ if (from <= (uintptr_t) __libc_stack_end
-+ && (uintptr_t) __libc_stack_end < to) {
-+ /* Found the entry. Now we have the info we need. */
-+ attr->__stacksize = rl.rlim_cur;
-+#ifdef _STACK_GROWS_UP
-+ /* Don't check to enforce a limit on the __stacksize */
-+ attr->__stackaddr = (void *) from;
-+#else
-+ attr->__stackaddr = (void *) to;
-+
-+ /* The limit might be too high. */
-+ if ((size_t) attr->__stacksize > (size_t) attr->__stackaddr - last_to)
-+ attr->__stacksize = (size_t) attr->__stackaddr - last_to;
-+#endif
-+
-+ /* We succeed and no need to look further. */
-+ ret = 0;
-+ break;
-+ }
-+ last_to = to;
-+ }
-+
-+ fclose (fp);
-+ free (line);
-+ }
-+#ifndef _STACK_GROWS_UP
-+ stackBase = (char *) attr->__stackaddr - attr->__stacksize;
-+#else
-+ stackBase = attr->__stackaddr;
-+#endif
-+ stackSize = attr->__stacksize;
-+ return (void*)(stackBase + stackSize);
-+}
-+
-+int __pthread_attr_getstack (const pthread_attr_t *attr, void **stackaddr,
-+ size_t *stacksize)
-+{
-+ /* XXX This function has a stupid definition. The standard specifies
-+ no error value but what is if no stack address was set? We simply
-+ return the value we have in the member. */
-+#ifndef _STACK_GROWS_UP
-+ *stackaddr = (char *) attr->__stackaddr - attr->__stacksize;
-+#else
-+ *stackaddr = attr->__stackaddr;
-+#endif
-+ *stacksize = attr->__stacksize;
-+ return 0;
-+}
-+weak_alias (__pthread_attr_getstack, pthread_attr_getstack)
-
---- a/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2006-12-07 22:19:36.000000000 -0500
-+++ b/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2008-02-10 11:42:35.000000000 -0500
-@@ -288,15 +288,11 @@ extern int pthread_attr_getstacksize (__
- __attr, size_t *__restrict __stacksize)
- __THROW;
-
--#if 0
--/* Not yet implemented in uClibc! */
--
- #ifdef __USE_GNU
- /* Initialize thread attribute *ATTR with attributes corresponding to the
- already running thread TH. It shall be called on unitialized ATTR
- and destroyed with pthread_attr_destroy when no longer needed. */
--extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __THROW;
--#endif
-+extern void* pthread_getattr_np(pthread_t thread, pthread_attr_t *attr);
- #endif
-
- /* Functions for scheduling control. */
-@@ -599,6 +595,11 @@ extern int pthread_cancel (pthread_t __c
- cancelled. */
- extern void pthread_testcancel (void);
-
-+/* Return the previously set address for the stack. */
-+extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+ void **__restrict __stackaddr,
-+ size_t *__restrict __stacksize) __THROW;
-+
-
- /* Install a cleanup handler: ROUTINE will be called with arguments ARG
- when the thread is cancelled or calls pthread_exit. ROUTINE will also
-
diff --git a/core/uclibc/74_all_uClibc-0.9.29-rm-whitespace.patch b/core/uclibc/74_all_uClibc-0.9.29-rm-whitespace.patch
deleted file mode 100644
index 84d71817da..0000000000
--- a/core/uclibc/74_all_uClibc-0.9.29-rm-whitespace.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-diff -urN uClibc-0.9.29-0rig/include/assert.h uClibc-0.9.29/include/assert.h
---- uClibc-0.9.29-0rig/include/assert.h 2005-11-03 23:42:46.000000000 +0100
-+++ uClibc-0.9.29/include/assert.h 2007-08-13 19:10:57.000000000 +0200
-@@ -31,7 +31,7 @@
- #define _ASSERT_H 1
- #include <features.h>
-
--#if defined __cplusplus && __GNUC_PREREQ (2,95)
-+#if defined __cplusplus && __GNUC_PREREQ(2,95)
- # define __ASSERT_VOID_CAST static_cast<void>
- #else
- # define __ASSERT_VOID_CAST (void)
-@@ -60,12 +60,15 @@
- (__assert (__STRING(expr), __FILE__, __LINE__, \
- __ASSERT_FUNCTION), 0)))
-
-+/* Define some temporaries to workaround tinyx makedepend bug */
-+#define __GNUC_PREREQ_2_6 __GNUC_PREREQ(2, 6)
-+#define __GNUC_PREREQ_2_4 __GNUC_PREREQ(2, 4)
- /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
- which contains the name of the function currently being defined.
- This is broken in G++ before version 2.6.
- C9x has a similar variable called __func__, but prefer the GCC one since
- it demangles C++ function names. */
--# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4)
-+# if defined __cplusplus ? __GNUC_PREREQ_2_6 : __GNUC_PREREQ_2_4
- # define __ASSERT_FUNCTION __PRETTY_FUNCTION__
- # else
- # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
-diff -urN uClibc-0.9.29-0rig/include/complex.h uClibc-0.9.29/include/complex.h
---- uClibc-0.9.29-0rig/include/complex.h 2002-05-09 10:15:21.000000000 +0200
-+++ uClibc-0.9.29/include/complex.h 2007-08-13 17:55:29.000000000 +0200
-@@ -33,7 +33,7 @@
- /* We might need to add support for more compilers here. But since ISO
- C99 is out hopefully all maintained compilers will soon provide the data
- types `float complex' and `double complex'. */
--#if __GNUC_PREREQ (2, 7) && !__GNUC_PREREQ (2, 97)
-+#if __GNUC_PREREQ(2, 7) && !__GNUC_PREREQ(2, 97)
- # define _Complex __complex__
- #endif
-
-diff -urN uClibc-0.9.29-0rig/include/features.h uClibc-0.9.29/include/features.h
---- uClibc-0.9.29-0rig/include/features.h 2006-11-29 22:10:04.000000000 +0100
-+++ uClibc-0.9.29/include/features.h 2007-08-13 17:55:51.000000000 +0200
-@@ -143,7 +143,7 @@
-
- /* Convenience macros to test the versions of glibc and gcc.
- Use them like this:
-- #if __GNUC_PREREQ (2,8)
-+ #if __GNUC_PREREQ(2,8)
- ... code requiring gcc 2.8 or later ...
- #endif
- Note - they won't work for gcc1 or glibc1, since the _MINOR macros
-@@ -297,7 +297,7 @@
- /* uClibc does not support _FORTIFY_SOURCE */
- #undef _FORTIFY_SOURCE
- #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
-- && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
-+ && __GNUC_PREREQ(4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
- # if _FORTIFY_SOURCE > 1
- # define __USE_FORTIFY_LEVEL 2
- # else
-@@ -366,7 +366,7 @@
- #endif /* !ASSEMBLER */
-
- /* Decide whether we can define 'extern inline' functions in headers. */
--#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
-+#if __GNUC_PREREQ(2, 7) && defined __OPTIMIZE__ \
- && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
- && (defined __extern_inline || defined __GNUC_GNU_INLINE__)
- # define __USE_EXTERN_INLINES 1
-diff -urN uClibc-0.9.29-0rig/include/tgmath.h uClibc-0.9.29/include/tgmath.h
---- uClibc-0.9.29-0rig/include/tgmath.h 2002-05-09 10:15:21.000000000 +0200
-+++ uClibc-0.9.29/include/tgmath.h 2007-08-13 17:56:17.000000000 +0200
-@@ -34,7 +34,7 @@
- do not try this for now and instead concentrate only on GNU CC. Once
- we have more information support for other compilers might follow. */
-
--#if __GNUC_PREREQ (2, 7)
-+#if __GNUC_PREREQ(2, 7)
-
- # ifdef __NO_LONG_DOUBLE_MATH
- # define __tgml(fct) fct
diff --git a/core/uclibc/81_all_uClibc-gnu89-inline.patch b/core/uclibc/81_all_uClibc-gnu89-inline.patch
deleted file mode 100644
index 94acbab779..0000000000
--- a/core/uclibc/81_all_uClibc-gnu89-inline.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- uClibc-0.9.29/Rules.mak~ 2008-09-14 19:20:36.000000000 +0200
-+++ uClibc-0.9.29/Rules.mak 2008-09-16 05:27:05.000000000 +0200
-@@ -495,6 +495,7 @@
- endif
-
- CFLAGS += $(call check_gcc,-std=gnu99,)
-+CFLAGS += $(call check_gcc,-fgnu89-inline,)
-
- LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -Wl,-shared \
- -Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc
diff --git a/core/uclibc/APKBUILD b/core/uclibc/APKBUILD
index 0ccfbc78ef..3e64a2a782 100644
--- a/core/uclibc/APKBUILD
+++ b/core/uclibc/APKBUILD
@@ -1,28 +1,27 @@
pkgname=uclibc
-pkgver=0.9.30_rc3
+pkgver=0.9.30
pkgdesc="C library for developing embedded Linux systems"
url=http://uclibc.org
license="LGPL-2"
-_mynamever=uClibc-0.9.30-rc3
+_mynamever=uClibc-0.9.30
subpackages="$pkgname-dev"
source="http://uclibc.org/downloads/$_mynamever.tar.bz2
+ pthreads-fno-omit-frame-pointer.patch
uclibcconfig
- 69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch
- 72_all_uClibc-0.9.29-linuxthreads.patch
- 74_all_uClibc-0.9.29-rm-whitespace.patch
- 81_all_uClibc-gnu89-inline.patch"
+ "
_prepare() {
- local i
+ local i gcc_major
cd $srcdir/$_mynamever/
- for i in ../*.patch; do
- if ! patch -p1 < $i; then
- echo "Patch failed: $i" >&2
- return 1
- fi
- done
+
+ # gcc-3.4.6 is buggy and need -fno-omit-framepointer for lipthreads.old
+ gcc_major=$(gcc --version | head -n1 | awk '{print $3}'|cut -d . -f1)
+ if [ "$gcc_major" = "3" ]; then
+ msg "Applying patch for buggy gcc-3"
+ patch -p1 < ../pthreads-fno-omit-frame-pointer.patch
+ fi
}
_compile() {
@@ -41,9 +40,6 @@ build() {
_prepare && _compile && _install
}
-md5sums="4f530567cd9601ee24a934d7dfdec581 uClibc-0.9.30-rc3.tar.bz2
-db865a8cc28e9650490fee1b8fe61a5c uclibcconfig
-f31b7fee0153ddc288a843d86f928997 69_all_uClibc-0.9.29-fix-gethostent_r-failure-retval.patch
-c2a68efc3b1438657eb8ac68feafe6af 72_all_uClibc-0.9.29-linuxthreads.patch
-cdf6ba2ca4450c8f32724a86a56c948f 74_all_uClibc-0.9.29-rm-whitespace.patch
-0b2312ad80c7440c4f3715715ebe3444 81_all_uClibc-gnu89-inline.patch"
+md5sums="e5766e2566e0297adebebbcc0aba1f2d uClibc-0.9.30.tar.bz2
+e427a6c39296d26f01ee275b2e503770 pthreads-fno-omit-frame-pointer.patch
+7e22bc978e25fcbeb1cbdc0f67d38e55 uclibcconfig"
diff --git a/core/uclibc/libpthreads-no-omit-framepointer.patch b/core/uclibc/libpthreads-no-omit-framepointer.patch
deleted file mode 100644
index 3fe258ca6a..0000000000
--- a/core/uclibc/libpthreads-no-omit-framepointer.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- uClibc-0.9.30/libpthread/linuxthreads.old/Makefile.in.orig Thu Nov 13 09:23:12 2008
-+++ uClibc-0.9.30/libpthread/linuxthreads.old/Makefile.in Thu Nov 13 09:25:02 2008
-@@ -59,6 +59,19 @@
- libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
- libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
-
-+ifeq ($(TARGET_ARCH),i386)
-+# Most files must not be compiled without frame pointer since we need
-+# the frame base address which is stored in %ebp unless the frame pointer
-+# is optimized out.
-+CFLAGS-cancel.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
-+CFLAGS-condvar.c += -fno-omit-frame-pointer
-+CFLAGS-join.c += -fno-omit-frame-pointer
-+CFLAGS-manager.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
-+CFLAGS-pthread.c += -fno-omit-frame-pointer -mpreferred-stack-boundary=4
-+CFLAGS-ptlongjmp.c += -fno-omit-frame-pointer
-+CFLAGS-semaphore.c += -fno-omit-frame-pointer
-+endif
-+
- libpthread-static-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SPEC_SRC))
- libpthread-shared-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.oS,$(libpthread_SPEC_SRC))
-
diff --git a/core/uclibc/uclibcconfig b/core/uclibc/uclibcconfig
index 588c5cd705..ef2a47d48c 100644
--- a/core/uclibc/uclibcconfig
+++ b/core/uclibc/uclibcconfig
@@ -234,7 +234,7 @@ CROSS_COMPILER_PREFIX=""
UCLIBC_EXTRA_CFLAGS=""
# DODEBUG is not set
# DODEBUG_PT is not set
-DOSTRIP=y
+# DOSTRIP is not set
# DOASSERTS is not set
# SUPPORT_LD_DEBUG is not set
# SUPPORT_LD_DEBUG_EARLY is not set