From a879839450737e3cbdb64415af42347c97ccfa28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Ter=C3=A4s?= Date: Tue, 30 Jul 2013 08:50:09 +0000 Subject: main/musl: upgrade to 0.9.12 --- ...e-so-make-install-works-before-include-bi.patch | 53 -------------- ...s-for-additional-legacy-ether.h-functions.patch | 58 ---------------- .../0003-add-legacy-scsi-scsi_ioctl.h-header.patch | 30 -------- .../0004-add-legacy-sys-ttydefaults.h-header.patch | 58 ---------------- ...-in-sys-select.h-with-appropriate-feature.patch | 31 --------- ...6-fix-off-by-one-array-bound-in-strsignal.patch | 25 ------- ...-library-phdr-pointers-passed-to-callback.patch | 81 ---------------------- ...M-EABI-specific-exception-handling-infras.patch | 66 ------------------ main/musl/0009-add-PIE-support-for-ARM.patch | 49 ------------- ...spawn-and-functions-that-use-it-use-CLONE.patch | 50 ------------- main/musl/APKBUILD | 56 +++------------ 11 files changed, 9 insertions(+), 548 deletions(-) delete mode 100644 main/musl/0001-fix-Makefile-so-make-install-works-before-include-bi.patch delete mode 100644 main/musl/0002-add-stubs-for-additional-legacy-ether.h-functions.patch delete mode 100644 main/musl/0003-add-legacy-scsi-scsi_ioctl.h-header.patch delete mode 100644 main/musl/0004-add-legacy-sys-ttydefaults.h-header.patch delete mode 100644 main/musl/0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch delete mode 100644 main/musl/0006-fix-off-by-one-array-bound-in-strsignal.patch delete mode 100644 main/musl/0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch delete mode 100644 main/musl/0008-add-some-ARM-EABI-specific-exception-handling-infras.patch delete mode 100644 main/musl/0009-add-PIE-support-for-ARM.patch delete mode 100644 main/musl/0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch (limited to 'main') diff --git a/main/musl/0001-fix-Makefile-so-make-install-works-before-include-bi.patch b/main/musl/0001-fix-Makefile-so-make-install-works-before-include-bi.patch deleted file mode 100644 index c34d8c31d5..0000000000 --- a/main/musl/0001-fix-Makefile-so-make-install-works-before-include-bi.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 997d58d8052fb9f8374afd2fb456785f53217f50 Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Mon, 1 Jul 2013 13:43:43 -0400 -Subject: [PATCH 01/10] fix Makefile so "make install" works before - include/bits symlink exists - -previously, determination of the list of header files for installation -depended on the include/bits symlink (to the arch-specific files) -already having been created. in other words, running "make install" -immediately after configure without first running "make" caused the -bits headers not to be installed. - -the solution I have applied is to pull the list of headers directly -from arch/$(ARCH)/bits rather than include/bits, and likewise to -install directly from arch/$(ARCH)/bits rather than via the symlink. - -at this point, the only purpose served by keeping the symlink around -is that it enables use of the in-tree headers and libs directly via -I -and -L, which can be useful when testing against a new version of the -library before installing it. on the other hand, removing the bits -symlink would be beneficial if we ever want to support building -multiple archs in the same source tree. ---- - Makefile | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 997c5bb..6a86211 100644 ---- a/Makefile -+++ b/Makefile -@@ -37,7 +37,8 @@ CFLAGS_ALL_SHARED = $(CFLAGS_ALL) -fPIC -DSHARED - AR = $(CROSS_COMPILE)ar - RANLIB = $(CROSS_COMPILE)ranlib - --ALL_INCLUDES = $(sort $(wildcard include/*.h include/*/*.h) $(GENH)) -+ARCH_INCLUDES = $(wildcard arch/$(ARCH)/bits/*.h) -+ALL_INCLUDES = $(sort $(wildcard include/*.h include/*/*.h) $(GENH) $(ARCH_INCLUDES:arch/$(ARCH)/%=include/%)) - - EMPTY_LIB_NAMES = m rt pthread crypt util xnet resolv dl - EMPTY_LIBS = $(EMPTY_LIB_NAMES:%=lib/lib%.a) -@@ -124,6 +125,9 @@ $(DESTDIR)$(libdir)/%.so: lib/%.so - $(DESTDIR)$(libdir)/%: lib/% - install -D -m 644 $< $@ - -+$(DESTDIR)$(includedir)/bits/%: arch/$(ARCH)/bits/% -+ install -D -m 644 $< $@ -+ - $(DESTDIR)$(includedir)/%: include/% - install -D -m 644 $< $@ - --- -1.8.3.2 - diff --git a/main/musl/0002-add-stubs-for-additional-legacy-ether.h-functions.patch b/main/musl/0002-add-stubs-for-additional-legacy-ether.h-functions.patch deleted file mode 100644 index 42a78e15c5..0000000000 --- a/main/musl/0002-add-stubs-for-additional-legacy-ether.h-functions.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 6e31b284fe98686f8a763de775a087da3be05024 Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Mon, 1 Jul 2013 13:50:02 -0400 -Subject: [PATCH 02/10] add stubs for additional legacy ether.h functions - -these would not be expensive to actually implement, but reading -/etc/ethers does not sound like a particularly useful feature, so for -now I'm leaving them as stubs. ---- - include/netinet/ether.h | 6 +++--- - src/network/ether.c | 15 +++++++++++++++ - 2 files changed, 18 insertions(+), 3 deletions(-) - -diff --git a/include/netinet/ether.h b/include/netinet/ether.h -index c5179d5..d64c9ef 100644 ---- a/include/netinet/ether.h -+++ b/include/netinet/ether.h -@@ -4,11 +4,11 @@ - #include - - char *ether_ntoa (const struct ether_addr *); -- - struct ether_addr *ether_aton (const char *); -- - char *ether_ntoa_r (const struct ether_addr *, char *); -- - struct ether_addr *ether_aton_r (const char *, struct ether_addr *); -+int ether_line(const char *, struct ether_addr *, char *); -+int ether_ntohost(char *, const struct ether_addr *); -+int ether_hostton(const char *, struct ether_addr *); - - #endif -diff --git a/src/network/ether.c b/src/network/ether.c -index ac55411..4304a97 100644 ---- a/src/network/ether.c -+++ b/src/network/ether.c -@@ -41,3 +41,18 @@ char *ether_ntoa (const struct ether_addr *p_a) { - static char x[18]; - return ether_ntoa_r (p_a, x); - } -+ -+int ether_line(const char *l, struct ether_addr *e, char *hostname) -+{ -+ return -1; -+} -+ -+int ether_ntohost(char *hostname, const struct ether_addr *e) -+{ -+ return -1; -+} -+ -+int ether_hostton(const char *hostname, struct ether_addr *e) -+{ -+ return -1; -+} --- -1.8.3.2 - diff --git a/main/musl/0003-add-legacy-scsi-scsi_ioctl.h-header.patch b/main/musl/0003-add-legacy-scsi-scsi_ioctl.h-header.patch deleted file mode 100644 index 0904f610c8..0000000000 --- a/main/musl/0003-add-legacy-scsi-scsi_ioctl.h-header.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5ece469f37e5cdddb86871b56f4f74674690fbe4 Mon Sep 17 00:00:00 2001 -From: rofl0r -Date: Wed, 3 Jul 2013 17:52:44 +0200 -Subject: [PATCH 03/10] add legacy scsi/scsi_ioctl.h header - ---- - include/scsi/scsi_ioctl.h | 11 +++++++++++ - 1 file changed, 11 insertions(+) - create mode 100644 include/scsi/scsi_ioctl.h - -diff --git a/include/scsi/scsi_ioctl.h b/include/scsi/scsi_ioctl.h -new file mode 100644 -index 0000000..22df7fe ---- /dev/null -+++ b/include/scsi/scsi_ioctl.h -@@ -0,0 +1,11 @@ -+#ifndef _SCSI_IOCTL_H -+#define _SCSI_IOCTL_H -+#define SCSI_IOCTL_SEND_COMMAND 1 -+#define SCSI_IOCTL_TEST_UNIT_READY 2 -+#define SCSI_IOCTL_BENCHMARK_COMMAND 3 -+#define SCSI_IOCTL_SYNC 4 -+#define SCSI_IOCTL_START_UNIT 5 -+#define SCSI_IOCTL_STOP_UNIT 6 -+#define SCSI_IOCTL_DOORLOCK 0x5380 -+#define SCSI_IOCTL_DOORUNLOCK 0x5381 -+#endif --- -1.8.3.2 - diff --git a/main/musl/0004-add-legacy-sys-ttydefaults.h-header.patch b/main/musl/0004-add-legacy-sys-ttydefaults.h-header.patch deleted file mode 100644 index e05106d72a..0000000000 --- a/main/musl/0004-add-legacy-sys-ttydefaults.h-header.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 129a34db6328cb13fec4d5f2d2703cb7922e8634 Mon Sep 17 00:00:00 2001 -From: rofl0r -Date: Wed, 3 Jul 2013 17:55:37 +0200 -Subject: [PATCH 04/10] add legacy sys/ttydefaults.h header - ---- - include/sys/ttydefaults.h | 39 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 39 insertions(+) - create mode 100644 include/sys/ttydefaults.h - -diff --git a/include/sys/ttydefaults.h b/include/sys/ttydefaults.h -new file mode 100644 -index 0000000..d251b71 ---- /dev/null -+++ b/include/sys/ttydefaults.h -@@ -0,0 +1,39 @@ -+#ifndef _SYS_TTYDEFAULTS_H -+#define _SYS_TTYDEFAULTS_H -+ -+#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY) -+#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS) -+#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL) -+#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL) -+#define TTYDEF_SPEED (B9600) -+#define CTRL(x) (x&037) -+#define CEOF CTRL('d') -+ -+#ifdef _POSIX_VDISABLE -+#define CEOL _POSIX_VDISABLE -+#define CSTATUS _POSIX_VDISABLE -+#else -+#define CEOL '\0' -+#define CSTATUS '\0' -+#endif -+ -+#define CERASE 0177 -+#define CINTR CTRL('c') -+#define CKILL CTRL('u') -+#define CMIN 1 -+#define CQUIT 034 -+#define CSUSP CTRL('z') -+#define CTIME 0 -+#define CDSUSP CTRL('y') -+#define CSTART CTRL('q') -+#define CSTOP CTRL('s') -+#define CLNEXT CTRL('v') -+#define CDISCARD CTRL('o') -+#define CWERASE CTRL('w') -+#define CREPRINT CTRL('r') -+#define CEOT CEOF -+#define CBRK CEOL -+#define CRPRNT CREPRINT -+#define CFLUSH CDISCARD -+ -+#endif --- -1.8.3.2 - diff --git a/main/musl/0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch b/main/musl/0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch deleted file mode 100644 index caf5ea390c..0000000000 --- a/main/musl/0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9b9dc74b67b9ecd30db9f3266a5ce309b0ffbfef Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Sat, 6 Jul 2013 01:12:28 -0400 -Subject: [PATCH 05/10] add NFDBITS in sys/select.h with appropriate feature - tests - -the main use for this macro seems to be knowing the correct allocation -granularity for dynamic-sized fd_set objects. such usage is -non-conforming and results in undefined behavior, but it is widespread -in applications. ---- - include/sys/select.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/include/sys/select.h b/include/sys/select.h -index c5a2877..e25257d 100644 ---- a/include/sys/select.h -+++ b/include/sys/select.h -@@ -32,6 +32,9 @@ typedef struct - int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict); - int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict); - -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define NFDBITS (8*(int)sizeof(long)) -+#endif - - #ifdef __cplusplus - } --- -1.8.3.2 - diff --git a/main/musl/0006-fix-off-by-one-array-bound-in-strsignal.patch b/main/musl/0006-fix-off-by-one-array-bound-in-strsignal.patch deleted file mode 100644 index e5acb992d6..0000000000 --- a/main/musl/0006-fix-off-by-one-array-bound-in-strsignal.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 9134a8ca79fa9c79eada278b10f4d6b1eaf271d3 Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Tue, 9 Jul 2013 02:11:52 -0400 -Subject: [PATCH 06/10] fix off-by-one array bound in strsignal - ---- - src/string/strsignal.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/string/strsignal.c b/src/string/strsignal.c -index 3b0ae6d..d70982a 100644 ---- a/src/string/strsignal.c -+++ b/src/string/strsignal.c -@@ -48,7 +48,7 @@ static const char map[] = { - [SIGSYS] = 31 - }; - --#define sigmap(x) ((unsigned)(x) > sizeof map ? 0 : map[(unsigned)(x)]) -+#define sigmap(x) ((unsigned)(x) >= sizeof map ? 0 : map[(unsigned)(x)]) - - #endif - --- -1.8.3.2 - diff --git a/main/musl/0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch b/main/musl/0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch deleted file mode 100644 index 39049963ca..0000000000 --- a/main/musl/0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 0ccea50c697512b4bcbe76780260dfba09450327 Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Wed, 10 Jul 2013 14:38:20 -0400 -Subject: [PATCH 07/10] fix invalid library phdr pointers passed to callback - from dl_iterate_phdr - -map_library was saving pointers to an automatic-storage buffer rather -than pointers into the mapping. this should be a fairly simple fix, -but the patch here is slightly complicated by two issues: - -1. supporting gratuitously obfuscated ELF files where the program -headers are not right at the beginning of the file. - -2. cleaning up the map_library function so that data isn't clobbered -by the time we need it. ---- - src/ldso/dynlink.c | 25 ++++++++++++++++--------- - 1 file changed, 16 insertions(+), 9 deletions(-) - -diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c -index 7031d03..ff5b738 100644 ---- a/src/ldso/dynlink.c -+++ b/src/ldso/dynlink.c -@@ -309,7 +309,7 @@ static void *map_library(int fd, struct dso *dso) - size_t this_min, this_max; - off_t off_start; - Ehdr *eh; -- Phdr *ph; -+ Phdr *ph, *ph0; - unsigned prot; - unsigned char *map, *base; - size_t dyn; -@@ -324,11 +324,10 @@ static void *map_library(int fd, struct dso *dso) - if (eh->e_phoff + phsize > l) { - l = pread(fd, buf+1, phsize, eh->e_phoff); - if (l != phsize) return 0; -- eh->e_phoff = sizeof *eh; -+ ph = ph0 = (void *)(buf + 1); -+ } else { -+ ph = ph0 = (void *)((char *)buf + eh->e_phoff); - } -- ph = (void *)((char *)buf + eh->e_phoff); -- dso->phdr = ph; -- dso->phnum = eh->e_phnum; - for (i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) { - if (ph->p_type == PT_DYNAMIC) - dyn = ph->p_vaddr; -@@ -363,9 +362,18 @@ static void *map_library(int fd, struct dso *dso) - map = mmap((void *)addr_min, map_len, prot, MAP_PRIVATE, fd, off_start); - if (map==MAP_FAILED) return 0; - base = map - addr_min; -- ph = (void *)((char *)buf + eh->e_phoff); -- for (i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) { -+ dso->phdr = 0; -+ dso->phnum = 0; -+ for (ph=ph0, i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) { - if (ph->p_type != PT_LOAD) continue; -+ /* Check if the programs headers are in this load segment, and -+ * if so, record the address for use by dl_iterate_phdr. */ -+ if (!dso->phdr && eh->e_phoff >= ph->p_offset -+ && eh->e_phoff+phsize <= ph->p_offset+ph->p_filesz) { -+ dso->phdr = (void *)(base + ph->p_vaddr -+ + (eh->e_phoff-ph->p_offset)); -+ dso->phnum = eh->e_phnum; -+ } - /* Reuse the existing mapping for the lowest-address LOAD */ - if ((ph->p_vaddr & -PAGE_SIZE) == addr_min) continue; - this_min = ph->p_vaddr & -PAGE_SIZE; -@@ -390,8 +398,7 @@ static void *map_library(int fd, struct dso *dso) - goto error; - break; - } -- if (!runtime) reclaim_gaps(base, (void *)((char *)buf + eh->e_phoff), -- eh->e_phentsize, eh->e_phnum); -+ if (!runtime) reclaim_gaps(base, ph0, eh->e_phentsize, eh->e_phnum); - dso->map = map; - dso->map_len = map_len; - dso->base = base; --- -1.8.3.2 - diff --git a/main/musl/0008-add-some-ARM-EABI-specific-exception-handling-infras.patch b/main/musl/0008-add-some-ARM-EABI-specific-exception-handling-infras.patch deleted file mode 100644 index 85557f2f6d..0000000000 --- a/main/musl/0008-add-some-ARM-EABI-specific-exception-handling-infras.patch +++ /dev/null @@ -1,66 +0,0 @@ -From f39afb9ffb34b747bfc1ec9d77b239c0c32a754d Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Wed, 10 Jul 2013 16:11:01 -0400 -Subject: [PATCH 08/10] add some ARM EABI-specific exception handling - infrastructure -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -patch by Timo Teräs ---- - arch/arm/src/find_exidx.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 42 insertions(+) - create mode 100644 arch/arm/src/find_exidx.c - -diff --git a/arch/arm/src/find_exidx.c b/arch/arm/src/find_exidx.c -new file mode 100644 -index 0000000..77c4472 ---- /dev/null -+++ b/arch/arm/src/find_exidx.c -@@ -0,0 +1,42 @@ -+#define _GNU_SOURCE -+#include -+#include -+ -+struct find_exidx_data { -+ uintptr_t pc, exidx_start; -+ int exidx_len; -+}; -+ -+static int find_exidx(struct dl_phdr_info *info, size_t size, void *ptr) -+{ -+ struct find_exidx_data *data = ptr; -+ const ElfW(Phdr) *phdr = info->dlpi_phdr; -+ uintptr_t addr, exidx_start = 0; -+ int i, match = 0, exidx_len = 0; -+ -+ for (i = info->dlpi_phnum; i > 0; i--, phdr++) { -+ addr = info->dlpi_addr + phdr->p_vaddr; -+ switch (phdr->p_type) { -+ case PT_LOAD: -+ match |= data->pc >= addr && data->pc < addr + phdr->p_memsz; -+ break; -+ case PT_ARM_EXIDX: -+ exidx_start = addr; -+ exidx_len = phdr->p_memsz; -+ break; -+ } -+ } -+ data->exidx_start = exidx_start; -+ data->exidx_len = exidx_len; -+ return match; -+} -+ -+uintptr_t __gnu_Unwind_Find_exidx(uintptr_t pc, int *pcount) -+{ -+ struct find_exidx_data data; -+ data.pc = pc; -+ if (dl_iterate_phdr(find_exidx, &data) <= 0) -+ return 0; -+ *pcount = data.exidx_len / 8; -+ return data.exidx_start; -+} --- -1.8.3.2 - diff --git a/main/musl/0009-add-PIE-support-for-ARM.patch b/main/musl/0009-add-PIE-support-for-ARM.patch deleted file mode 100644 index 17035464ec..0000000000 --- a/main/musl/0009-add-PIE-support-for-ARM.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 84934ac8bcebb41ffca1703d97512682069c68ec Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Wed, 10 Jul 2013 16:58:27 -0400 -Subject: [PATCH 09/10] add PIE support for ARM - ---- - crt/arm/Scrt1.s | 30 ++++++++++++++++++++++++++++++ - 1 file changed, 30 insertions(+) - create mode 100644 crt/arm/Scrt1.s - -diff --git a/crt/arm/Scrt1.s b/crt/arm/Scrt1.s -new file mode 100644 -index 0000000..a54859a ---- /dev/null -+++ b/crt/arm/Scrt1.s -@@ -0,0 +1,30 @@ -+.weak _init -+.weak _fini -+.global _start -+_start: -+ mov fp,#0 -+ mov lr,#0 -+ -+ ldr a2,[sp],#4 -+ mov a3,sp -+ str fp,[sp,#-4]! -+ str a1,[sp,#-4]! -+ -+ adr ip,2f -+ ldr a4,2f+4 -+ add a4,a4,ip -+ str a4,[sp,#-4]! -+ ldr a4,2f+8 -+ add a4,a4,ip -+ -+ ldr a1,2f -+ add ip,ip,a1 -+ ldr a1,2f+12 -+ ldr a1,[ip,a1] -+ -+ bl __libc_start_main(PLT) -+1: b 1b -+2: .word _GLOBAL_OFFSET_TABLE_-2b -+ .word _fini-2b -+ .word _init-2b -+ .word main(GOT) --- -1.8.3.2 - diff --git a/main/musl/0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch b/main/musl/0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch deleted file mode 100644 index d6260a5f9d..0000000000 --- a/main/musl/0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 53761b469221fbe062629c50249e3d534573eda9 Mon Sep 17 00:00:00 2001 -From: Rich Felker -Date: Wed, 17 Jul 2013 13:54:41 -0400 -Subject: [PATCH 10/10] make posix_spawn (and functions that use it) use - CLONE_VFORK flag - -this is both a minor scheduling optimization and a workaround for a -difficult-to-fix bug in qemu app-level emulation. - -from the scheduling standpoint, it makes no sense to schedule the -parent thread again until the child has exec'd or exited, since the -parent will immediately block again waiting for it. - -on the qemu side, as regular application code running on an underlying -libc, qemu cannot make arbitrary clone syscalls itself without -confusing the underlying implementation. instead, it breaks them down -into either fork-like or pthread_create-like cases. it was treating -the code in posix_spawn as pthread_create-like, due to CLONE_VM, which -caused horribly wrong behavior: CLONE_FILES broke the synchronization -mechanism, CLONE_SIGHAND broke the parent's signals, and CLONE_THREAD -caused the child's exec to end the parent -- if it hadn't already -crashed. however, qemu special-cases CLONE_VFORK and emulates that -with fork, even when CLONE_VM is also specified. this also gives -incorrect semantics for code that really needs the memory sharing, but -posix_spawn does not make use of the vm sharing except to avoid -momentary double commit charge. - -programs using posix_spawn (including via popen) should now work -correctly under qemu app-level emulation. ---- - src/process/posix_spawn.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/process/posix_spawn.c b/src/process/posix_spawn.c -index e6a031c..68cf795 100644 ---- a/src/process/posix_spawn.c -+++ b/src/process/posix_spawn.c -@@ -138,7 +138,8 @@ int __posix_spawnx(pid_t *restrict res, const char *restrict path, - args.envp = envp; - pthread_sigmask(SIG_BLOCK, SIGALL_SET, &args.oldmask); - -- pid = __clone(child, stack+sizeof stack, CLONE_VM|SIGCHLD, &args); -+ pid = __clone(child, stack+sizeof stack, -+ CLONE_VM|CLONE_VFORK|SIGCHLD, &args); - close(args.p[1]); - - if (pid > 0) { --- -1.8.3.2 - diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD index 539ea87445..947801d082 100644 --- a/main/musl/APKBUILD +++ b/main/musl/APKBUILD @@ -1,8 +1,8 @@ # Contributor: William Pitcock # Maintainer: William Pitcock pkgname=musl -pkgver=0.9.11 -pkgrel=4 +pkgver=0.9.12 +pkgrel=0 pkgdesc="the musl c library (libc) implementation" url="http://www.musl-libc.org/" arch="x86 x86_64 arm armel" @@ -14,17 +14,6 @@ install="" subpackages="$pkgname-dev $pkgname-utils" [ "${CTARGET#*musl}" = "$CTARGET" ] && subpackages="$subpackages musl-gcc:crosstool" source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz - 0001-fix-Makefile-so-make-install-works-before-include-bi.patch - 0002-add-stubs-for-additional-legacy-ether.h-functions.patch - 0003-add-legacy-scsi-scsi_ioctl.h-header.patch - 0004-add-legacy-sys-ttydefaults.h-header.patch - 0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch - 0006-fix-off-by-one-array-bound-in-strsignal.patch - 0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch - 0008-add-some-ARM-EABI-specific-exception-handling-infras.patch - 0009-add-PIE-support-for-ARM.patch - 0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch - getopt_long.c getent " @@ -47,8 +36,11 @@ prepare() { build() { local _ldflags cd "$_builddir" + # note: not autotools LDFLAGS="$LDFLAGS -Wl,-soname,libc.musl-${CARCH}.so.1" \ - ./configure --prefix=/usr \ + ./configure \ + --host=$CHOST \ + --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ @@ -85,42 +77,12 @@ crosstool() { find "$pkgdir" -type d -delete 2>/dev/null } -md5sums="70b17ca5c847e74e1c77fe8284bb1fa4 musl-0.9.11.tar.gz -cce3406fc07756f25181b71152e55865 0001-fix-Makefile-so-make-install-works-before-include-bi.patch -5ce3afcc1cfc332bebe53355fdd00d3c 0002-add-stubs-for-additional-legacy-ether.h-functions.patch -f0254759e89b0b000f33c8116eb1aac0 0003-add-legacy-scsi-scsi_ioctl.h-header.patch -7c01567c09bcf3f0d530a1e5fc57b932 0004-add-legacy-sys-ttydefaults.h-header.patch -3e5dd5906b99a7c79cd7eea0277b4310 0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch -45f147f5e49692320aec8b13b3ac66a6 0006-fix-off-by-one-array-bound-in-strsignal.patch -902ed8d04e08b912a0ab1166756c3455 0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch -1763905f21ab6b94dfb2d6611c47a84d 0008-add-some-ARM-EABI-specific-exception-handling-infras.patch -980ad576c337b0bd75da128816a2e0a5 0009-add-PIE-support-for-ARM.patch -627a5b94e86e5d0ef4ed575d5e8da229 0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch +md5sums="100c8e932d0785c35b92539f025aa76f musl-0.9.12.tar.gz 61c6c1e84ed1df82abbe6d75e90cf21c getopt_long.c ef81489a6258501cf45db58dfc6d5211 getent" -sha256sums="8b81fd9b71becb7b674ea93fd65d82a039fab79ab738957a5e9ee47ba08a13fd musl-0.9.11.tar.gz -61ed4546341484f682d70f57a9d3549d9c646f33c779adb171e31e13b7b62070 0001-fix-Makefile-so-make-install-works-before-include-bi.patch -a49a959e48225e5aa51576ac36c8e07eb064aeb00203d5c47cb201aee1238f40 0002-add-stubs-for-additional-legacy-ether.h-functions.patch -e74a7569444467ca705241e36f68b389826e6159fbd492c2fef843bb8128babf 0003-add-legacy-scsi-scsi_ioctl.h-header.patch -ce53c311a2bbaedce42e5f5749f9ea63f801bf5fa65bb4d406202d9e75f4c3c0 0004-add-legacy-sys-ttydefaults.h-header.patch -1ed281c07ac15f505d017e2034208b4b626af6604f24e53667c25690865fcd54 0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch -354d24787a00b1cd216c0505076cbbd612ed3f36804c596d969f0d628b425b9b 0006-fix-off-by-one-array-bound-in-strsignal.patch -2d640dbedb1674cf378b4caf53e32c1fb7b8b8bc302037f7328b87049479d763 0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch -42cf78d84f6f03bfb5431a38f38b08ad752d466a63ec4197907d3ff2b6849ca7 0008-add-some-ARM-EABI-specific-exception-handling-infras.patch -d0c70b9806329d384752bf4d344176e5dea8a3facb0cfba9d5284d6281f52378 0009-add-PIE-support-for-ARM.patch -7efc54e1943db188bee5398e0d709778fca6578d44a73f215cd96f18a29a6d7b 0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch +sha256sums="72353f9e1f2fdaf5e88223dcd1cfa5555f5a364eb5e4a9967de1fd44cc4c6d3e musl-0.9.12.tar.gz d9b644ec20bc33e81a7c52b9fcf7973d835923a69faf50f03db45534b811bd96 getopt_long.c d6996273f5aaaed429058257e4646b243d9e3a4d8609522f802762453f5be4cb getent" -sha512sums="7ca852eda3be7b34bfdaf1eb9e7d435987d5177f865737b211e62f4037825cc322436e1ff49c3f875b3a20679f6f21ba5ffff271d03d3d03c7a97854f4f51832 musl-0.9.11.tar.gz -69d387f9617757cc0ac66f5c9716c8167408bb848b39011e716a388b451bf3d85fd7ea810970d2deaf42e9b77844f15decb358a78cc6ec6b403fdf0a31a4ca29 0001-fix-Makefile-so-make-install-works-before-include-bi.patch -00a457844f49c43276efecf27f47d3e028cde7648d347b80c63c9f0ebe21baabe875ae6741490885f0d95b37103b31df59f23863d3cc0219c289db05e0ccdcb2 0002-add-stubs-for-additional-legacy-ether.h-functions.patch -eeb67bec8c2f3c1ef83c8bd8f72825745515db1f86d3ccedd74fee2515b003bc34262504a0564f56014fdf9dff7b7b863d6fecd589e7df46f213c37ad24e7709 0003-add-legacy-scsi-scsi_ioctl.h-header.patch -9644c0b932efbdf66b44df6565e1d3594ddcbbff77bd29459d7ee19d55e0857bcd8f3e51fc8be3d20190e22476ad2e09f53e9298466d3853d12b7297f4065463 0004-add-legacy-sys-ttydefaults.h-header.patch -f2b148e91f7df417c4577d00760ae511200a0402075613941cbbfae778c21578f0a887fa20899334a7c69e5c6c3a54d8410af25c81275e7d42879c2cfd7c30c5 0005-add-NFDBITS-in-sys-select.h-with-appropriate-feature.patch -e61e3483ac905b528afd421d1970e2e2f53f32cfadd4d6af6a6b00e73d861880c749234b8d1624e6048c59eb4f568ea47965bb3fb6f161ca55ab2d819403b9d6 0006-fix-off-by-one-array-bound-in-strsignal.patch -3198cd0b8ca0e587f108f7250f45f2f10d0b6202cc7fc4b58cf89e3780a38bfe856b6be312957e27de81b02adf7a20dcf7baa36c2f5f831729f88875224ccc7c 0007-fix-invalid-library-phdr-pointers-passed-to-callback.patch -915d0e7cdd56f369759ea314e54c29d57c012df1ff0d9459f1b0ac941320e5bf5de3e7215224075aead4b6d3a60b7e0dba7f28de75a6c477ae6bf6caf1b65d28 0008-add-some-ARM-EABI-specific-exception-handling-infras.patch -8eb9a822a6529e5dabafc17b6013fdbb7e3b744574df230e3565637c354fe06eeb3a4576f56ef2e2d798aeaac6d2a0968823351f0ee76e6f06114f740f5ae432 0009-add-PIE-support-for-ARM.patch -6897ed7bf575d085fda0c1270090bb44d26712c4f513ed98b4c988a3f31fc808e7fe4b760a46c329b5b3b20a20049410c0c3f0f51d780568427b3f1fc4b7df5b 0010-make-posix_spawn-and-functions-that-use-it-use-CLONE.patch +sha512sums="6f27b523a241e3a066c5b5f7309226fa97ce32354c149a189f299b3593ead3e7552c03520478f16dcbb27a52c5fe3320a7e5672b88612d7e4594b0514399eb71 musl-0.9.12.tar.gz 140f3f20d30bd95ebce8c41b8cc7f616c6cbedf4ea06c729c21014e74f6043796825cc40ebc5180620ea38173afdba23f09ebf6d8b11fa05440b14d23764fca9 getopt_long.c 4d92f934d760cf5157d80f19fd766be6b673c65317229b32ac824d9d192f6abcc414e2382b2416dfd5c2f757b46ced98c18e4762bf91f5a48647e0ee61813b06 getent" -- cgit v1.2.3