From f3ccfb9ab84ee64c32fdfb3d4d6c11a7e683d031 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 30 Jun 2010 13:35:19 +0000 Subject: main/libc0.9.32: workaround gcc optimizer bug which causes static stuff go bad. ref #373 --- main/libc0.9.32/APKBUILD | 4 +- main/libc0.9.32/uclibc-gcc-workaround.patch | 58 +++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 main/libc0.9.32/uclibc-gcc-workaround.patch diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index c9fc7c393..328368895 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD @@ -3,7 +3,7 @@ _abiver=0.9.32 pkgname=libc$_abiver _gitver=1006300816 pkgver=${_abiver}_alpha0_git$_gitver -pkgrel=0 +pkgrel=1 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -20,6 +20,7 @@ source="http://build.alpinelinux.org:8010/distfiles/$_snapfile uclibc-libm-pic.patch uclibc-lutimes.patch uclibc-resolv-tls.patch + uclibc-gcc-workaround.patch uclibcconfig.x86 uclibcconfig.i486 " @@ -101,5 +102,6 @@ md5sums="b7af86c013378888fbd345c47ad21c3a libc0.9.32-0.9.32_alpha0_git100630081 2f9739a980be24a842c57516155c7885 uclibc-libm-pic.patch 4d0b8170e6580b47bf5775e65a6f081e uclibc-lutimes.patch d08831b452acdeaa3037525ee617edab uclibc-resolv-tls.patch +a88b7f394c86dc7aa606c9e338e35515 uclibc-gcc-workaround.patch e2eb3bb00a0fe4d6f3d5b5c56b027bab uclibcconfig.x86 e2eb3bb00a0fe4d6f3d5b5c56b027bab uclibcconfig.i486" diff --git a/main/libc0.9.32/uclibc-gcc-workaround.patch b/main/libc0.9.32/uclibc-gcc-workaround.patch new file mode 100644 index 000000000..f698ecb79 --- /dev/null +++ b/main/libc0.9.32/uclibc-gcc-workaround.patch @@ -0,0 +1,58 @@ +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +To: uclibc@uclibc.org +Subject: [PATCH] more workarounds for GCC PR32219 +Date: Wed, 30 Jun 2010 14:46:37 +0300 +Message-Id: <1277898397-10643-1-git-send-email-timo.teras@iki.fi> +X-Mailer: git-send-email 1.7.0.4 +MIME-Version: 1.0 +X-BeenThere: uclibc@uclibc.org +X-Mailman-Version: 2.1.12 +Precedence: list +List-Id: "Discussion and development of uClibc \(the embedded C library\)" + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Content-Type: text/plain; charset="utf-8" +Sender: uclibc-bounces@uclibc.org +Errors-To: uclibc-bounces@uclibc.org + +Commit 2e53dd645d5348f207cec7f8595969dc566c5a55 workarounds GCC +bug when accessing _locale_init and _stdio_init. We need the same +fix for __errno_location and __h_errno_location otherwise we crash +calling null with static and non-threaded builds. + +Signed-off-by: Timo Teräs +--- + libc/misc/internals/__uClibc_main.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c +index 44d1620..e8c470b 100644 +--- a/libc/misc/internals/__uClibc_main.c ++++ b/libc/misc/internals/__uClibc_main.c +@@ -447,11 +447,11 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc, + * have resulted in errno being set nonzero, so set it to 0 before + * we call main. + */ +- if (likely(__errno_location!=NULL)) ++ if (likely(not_null_ptr(__errno_location))) + *(__errno_location()) = 0; + + /* Set h_errno to 0 as well */ +- if (likely(__h_errno_location!=NULL)) ++ if (likely(not_null_ptr(__h_errno_location))) + *(__h_errno_location()) = 0; + + #if defined HAVE_CLEANUP_JMP_BUF && defined __UCLIBC_HAS_THREADS_NATIVE__ +-- +1.7.0.4 + +_______________________________________________ +uClibc mailing list +uClibc@uclibc.org +http://lists.busybox.net/mailman/listinfo/uclibc -- cgit v1.2.3