From dd995e7df37a946a72580633ca07a5cef126c7c9 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 4 Jun 2010 11:29:22 +0000 Subject: main/libc0.9.32: new snapshot --- main/libc0.9.32/0001-ldd-segfault-fix.patch | 49 -------- ...d-fix-internal-locking-weaks-to-get-pulle.patch | 125 --------------------- ...ous-memory-corruption-and-off-by-one-fixe.patch | 69 ------------ main/libc0.9.32/APKBUILD | 17 ++- 4 files changed, 7 insertions(+), 253 deletions(-) delete mode 100644 main/libc0.9.32/0001-ldd-segfault-fix.patch delete mode 100644 main/libc0.9.32/0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch delete mode 100644 main/libc0.9.32/0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch diff --git a/main/libc0.9.32/0001-ldd-segfault-fix.patch b/main/libc0.9.32/0001-ldd-segfault-fix.patch deleted file mode 100644 index 4384fa548..000000000 --- a/main/libc0.9.32/0001-ldd-segfault-fix.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f29b6882327573ec4e694c1c852307c957d544b9 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Tue, 5 May 2009 14:10:42 +0000 -Subject: [PATCH] ldd segfault fix - -Fixes ldd segfault on this testcase: - -extern void _dl_getenv(void); -void foo(void) -{ - printf("foo: %x\n", &_dl_getenv); -} - -linked as -shared ---- - utils/ldd.c | 8 +++++--- - 1 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/utils/ldd.c b/utils/ldd.c -index 1f1dc25..2cd173c 100644 ---- a/utils/ldd.c -+++ b/utils/ldd.c -@@ -576,18 +576,20 @@ static struct library *find_elf_interpreter(ElfW(Ehdr) *ehdr) - } - newlib->name = NULL; - newlib->path = NULL; -- return NULL; -+ break; - } - } -- if (newlib == NULL) -+ if (newlib == NULL) { - newlib = malloc(sizeof(struct library)); -+ if (newlib) -+ newlib->next = NULL; -+ } - if (!newlib) - return NULL; - newlib->name = malloc(strlen(s) + 1); - strcpy(newlib->name, s); - newlib->path = strdup(newlib->name); - newlib->resolved = 1; -- newlib->next = NULL; - - #if 0 - /*printf("find_elf_interpreter is adding '%s' to '%s'\n", newlib->name, newlib->path); */ --- -1.6.2.3 - diff --git a/main/libc0.9.32/0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch b/main/libc0.9.32/0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch deleted file mode 100644 index 2898a0d02..000000000 --- a/main/libc0.9.32/0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 67403d1d692c3b8022b0adca127a2c14ef8e3237 Mon Sep 17 00:00:00 2001 -From: Timo Teras -Date: Fri, 7 May 2010 11:28:27 +0300 -Subject: [PATCH 1/2] static build: fix internal locking weaks to get pulled in always - -Linker is smart and does not pull in weaks.os, ever. This happens -because that compilation unit does not get strong references and -ld eliminates dead code. We really need the weaks for static build -in a compilation unit that is always there, otherwise it won't work. - -Signed-off-by: Timo Teras ---- - libc/misc/internals/__uClibc_main.c | 35 ++++++++++++++++++++++++++++++ - libc/misc/pthread/Makefile.in | 1 - - libc/misc/pthread/weaks.c | 40 ----------------------------------- - 3 files changed, 35 insertions(+), 41 deletions(-) - delete mode 100644 libc/misc/pthread/weaks.c - -diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c -index f7e45c6..f9e1244 100644 ---- a/libc/misc/internals/__uClibc_main.c -+++ b/libc/misc/internals/__uClibc_main.c -@@ -68,6 +68,41 @@ uintptr_t __guard attribute_relro; - */ - - void internal_function _dl_aux_init (ElfW(auxv_t) *av); -+ -+/* -+ * uClibc internal locking requires that we have weak aliases -+ * for dummy functions in case libpthread.a is not linked in. -+ * This needs to be in compilation unit that is pulled always -+ * in or linker will disregard these weaks. -+ */ -+ -+static int __pthread_return_0 (pthread_mutex_t *unused) { return 0; } -+weak_alias (__pthread_return_0, __pthread_mutex_lock) -+weak_alias (__pthread_return_0, __pthread_mutex_trylock) -+weak_alias (__pthread_return_0, __pthread_mutex_unlock) -+ -+int weak_function -+__pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr) -+{ -+ return 0; -+} -+ -+void weak_function -+_pthread_cleanup_push_defer(struct _pthread_cleanup_buffer *__buffer, -+ void (*__routine) (void *), void *__arg) -+{ -+ __buffer->__routine = __routine; -+ __buffer->__arg = __arg; -+} -+ -+void weak_function -+_pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer *__buffer, -+ int __execute) -+{ -+ if (__execute) -+ __buffer->__routine(__buffer->__arg); -+} -+ - #endif /* !SHARED */ - - /* -diff --git a/libc/misc/pthread/Makefile.in b/libc/misc/pthread/Makefile.in -index 69cdf10..2f436ac 100644 ---- a/libc/misc/pthread/Makefile.in -+++ b/libc/misc/pthread/Makefile.in -@@ -11,7 +11,6 @@ MISC_PTHREAD_DIR := $(top_srcdir)libc/misc/pthread - MISC_PTHREAD_OUT := $(top_builddir)libc/misc/pthread - - libc-shared-$(UCLIBC_HAS_TLS) += $(MISC_PTHREAD_OUT)/tsd.os --libc-static-$(UCLIBC_HAS_THREADS) += $(MISC_PTHREAD_OUT)/weaks.o - - objclean-y += CLEAN_libc/misc/pthread - -diff --git a/libc/misc/pthread/weaks.c b/libc/misc/pthread/weaks.c -deleted file mode 100644 -index fb1d85f..0000000 ---- a/libc/misc/pthread/weaks.c -+++ /dev/null -@@ -1,40 +0,0 @@ --/* The weak pthread functions for Linux. -- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Library General Public License as -- published by the Free Software Foundation; either version 2 of the -- License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Library General Public License for more details. -- -- You should have received a copy of the GNU Library General Public -- License along with the GNU C Library; see the file COPYING.LIB. If not, -- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- Boston, MA 02111-1307, USA. */ -- --#include -- --/* Weaks for internal library use only. -- * -- * We need to define weaks here to cover all the pthread functions that -- * libc itself will use so that we aren't forced to link libc against -- * libpthread. This file is only used in libc.a and since we have -- * weaks here, they will be automatically overridden by libpthread.a -- * if it gets linked in. -- */ -- --static int __pthread_return_0 (void) { return 0; } --static void __pthread_return_void (void) { return; } -- --weak_alias (__pthread_return_0, __pthread_mutex_init) --weak_alias (__pthread_return_0, __pthread_mutex_lock) --weak_alias (__pthread_return_0, __pthread_mutex_trylock) --weak_alias (__pthread_return_0, __pthread_mutex_unlock) --weak_alias (__pthread_return_void, _pthread_cleanup_push_defer) --weak_alias (__pthread_return_void, _pthread_cleanup_pop_restore) -- --- -1.6.3.3 - diff --git a/main/libc0.9.32/0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch b/main/libc0.9.32/0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch deleted file mode 100644 index 562d648a6..000000000 --- a/main/libc0.9.32/0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch +++ /dev/null @@ -1,69 +0,0 @@ -From bfe9a589a402d4b6265e32b1b5ca0942efdcff3b Mon Sep 17 00:00:00 2001 -From: Timo Teras -Date: Fri, 7 May 2010 11:30:04 +0300 -Subject: [PATCH 2/2] resolv: various memory corruption and off by one fixes - -Fixes resolution of names with AAAA entries and gethostbyaddr issues. - -Signed-off-by: Timo Teras ---- - libc/inet/resolv.c | 12 ++++++++---- - 1 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c -index 84289a6..320aec4 100644 ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -689,7 +689,7 @@ int attribute_hidden __decode_dotted(const unsigned char *packet, - - if (used + b + 1 >= dest_len) - return -1; -- if (offset + b + 1 >= packet_len) -+ if (offset + b >= packet_len) - return -1; - memcpy(dest + used, packet + offset, b); - offset += b; -@@ -2417,7 +2417,7 @@ int gethostbyaddr_r(const void *addr, socklen_t addrlen, - /* Layout in buf: - * char *alias[ALIAS_DIM]; - * struct in[6]_addr* addr_list[2]; -- * struct in[6]_addr* in; -+ * struct in[6]_addr in; - * char scratch_buffer[256+]; - */ - #define in6 ((struct in6_addr *)in) -@@ -2431,9 +2431,13 @@ int gethostbyaddr_r(const void *addr, socklen_t addrlen, - #ifndef __UCLIBC_HAS_IPV6__ - buf += sizeof(*in); - buflen -= sizeof(*in); -+ if (addrlen > sizeof(*in)) -+ return ERANGE; - #else - buf += sizeof(*in6); - buflen -= sizeof(*in6); -+ if (addrlen > sizeof(*in6)) -+ return ERANGE; - #endif - if ((ssize_t)buflen < 256) - return ERANGE; -@@ -2441,7 +2445,7 @@ int gethostbyaddr_r(const void *addr, socklen_t addrlen, - alias[1] = NULL; - addr_list[0] = in; - addr_list[1] = NULL; -- memcpy(&in, addr, addrlen); -+ memcpy(in, addr, addrlen); - - if (0) /* nothing */; - #ifdef __UCLIBC_HAS_IPV4__ -@@ -2456,7 +2460,7 @@ int gethostbyaddr_r(const void *addr, socklen_t addrlen, - char *dst = buf; - unsigned char *tp = (unsigned char *)addr + addrlen - 1; - do { -- dst += sprintf(dst, "%x.%x.", tp[i] & 0xf, tp[i] >> 4); -+ dst += sprintf(dst, "%x.%x.", tp[0] & 0xf, tp[0] >> 4); - tp--; - } while (tp >= (unsigned char *)addr); - strcpy(dst, "ip6.arpa"); --- -1.6.3.3 - diff --git a/main/libc0.9.32/APKBUILD b/main/libc0.9.32/APKBUILD index 0b7751f3e..21783636d 100644 --- a/main/libc0.9.32/APKBUILD +++ b/main/libc0.9.32/APKBUILD @@ -1,9 +1,9 @@ # Maintainer: Natanael Copa _abiver=0.9.32 pkgname=libc$_abiver -_gitver=100507 +_gitver=1006041126 pkgver=${_abiver}_alpha0_git$_gitver -pkgrel=3 +pkgrel=0 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -17,9 +17,6 @@ _snapurl="http://git.uclibc.org/uClibc/snapshot/master.tar.bz2" _snapfile="$pkgname-$pkgver.tar.bz2" source="http://build.alpinelinux.org:8010/distfiles/$_snapfile compat-stack-guard.patch - 0001-ldd-segfault-fix.patch - 0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch - 0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch uclibc-libm-pic.patch uclibc-resolv-tls.patch uclibcconfig.x86 @@ -31,12 +28,15 @@ _builddir="$srcdir"/master snapshot() { local _date=$(date +%y%m%d%H%M) + _gitver=$_date pkgver=${_abiver}_alpha0_git$_gitver + _snapfile="$pkgname-$pkgver.tar.bz2" rm -f "$SRCDEST"/$_snapfile + msg "snapfile=$_snapfile" wget -O "$SRCDEST"/$_snapfile $_snapurl pkgrel=0 - sed -i -e "s/^_gitver=.*/_gitver=$(date +%y%m%d)/" \ + sed -i -e "s/^_gitver=.*/_gitver=$_gitver/" \ -e "s/^pkgrel=.*/pkgrel=$pkgrel/" \ APKBUILD checksum @@ -95,11 +95,8 @@ utils() { mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin/ } -md5sums="46e98672dc2a4309d9a7c65b4e626845 libc0.9.32-0.9.32_alpha0_git100507.tar.bz2 +md5sums="048f92606460621d9402c43417392992 libc0.9.32-0.9.32_alpha0_git1006041126.tar.bz2 4d408f72142ce55a0754948cc9cfe447 compat-stack-guard.patch -4079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch -826666b365f2d63a71d67eb76c94f7bc 0001-static-build-fix-internal-locking-weaks-to-get-pulle.patch -0800a489a738c7b1d8c3643cb9806926 0002-resolv-various-memory-corruption-and-off-by-one-fixe.patch 2f9739a980be24a842c57516155c7885 uclibc-libm-pic.patch d08831b452acdeaa3037525ee617edab uclibc-resolv-tls.patch e2eb3bb00a0fe4d6f3d5b5c56b027bab uclibcconfig.x86 -- cgit v1.2.3