summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Teras <timo.teras@iki.fi>2009-07-02 14:00:37 +0300
committerTimo Teras <timo.teras@iki.fi>2009-07-02 14:01:47 +0300
commit7e87c5b74f4cd56549d003a57dfa4014f332f5dc (patch)
tree03bef2ef59cc4fda21e2114892ab75e3d75671ea
parent5182c9313d896d1ef3b1e42d6f6ff52c78ec9fdd (diff)
downloadaports-7e87c5b74f4cd56549d003a57dfa4014f332f5dc.tar.bz2
aports-7e87c5b74f4cd56549d003a57dfa4014f332f5dc.tar.xz
core/uclibc: fix linuxthreads.new fork hooking
-rw-r--r--core/uclibc/APKBUILD4
-rw-r--r--core/uclibc/uclibc-fork-hook.diff36
2 files changed, 39 insertions, 1 deletions
diff --git a/core/uclibc/APKBUILD b/core/uclibc/APKBUILD
index 654ab8c74..22914f15a 100644
--- a/core/uclibc/APKBUILD
+++ b/core/uclibc/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=uclibc
pkgver=0.9.30.1
-pkgrel=10
+pkgrel=11
pkgdesc="C library for developing embedded Linux systems"
url=http://uclibc.org
license="LGPL-2"
@@ -19,6 +19,7 @@ source="http://uclibc.org/downloads/$_mynamever.tar.bz2
uclibc-resolv-cname-fix.diff
uclibc-i386-floating-stacks.diff
ppoll.patch
+ uclibc-fork-hook.diff
uclibcconfig
"
@@ -60,4 +61,5 @@ bcd1c4c9c87f092fb4631559e6ec13ba 0001-linuxthreads-fixes-from-Will-Newton-will.
bbb8475963e791f596c34c81ef5583d7 uclibc-resolv-cname-fix.diff
0b3966ab7774ac42ecf34a7b596c661b uclibc-i386-floating-stacks.diff
60738298e377295d359768a09adac0bb ppoll.patch
+55bb709f5efd937df323f0d39a202cfd uclibc-fork-hook.diff
0a87f57d3e5001027f43b7c959d96319 uclibcconfig"
diff --git a/core/uclibc/uclibc-fork-hook.diff b/core/uclibc/uclibc-fork-hook.diff
new file mode 100644
index 000000000..012691883
--- /dev/null
+++ b/core/uclibc/uclibc-fork-hook.diff
@@ -0,0 +1,36 @@
+diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
+index e15b99b..70c750d 100644
+--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
++++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
+@@ -20,6 +20,7 @@
+ #include <errno.h>
+ #include <fork.h>
+ #include <bits/libc-lock.h>
++#include <internals.h>
+
+ struct fork_block __fork_block =
+ {
+@@ -28,3 +29,12 @@ struct fork_block __fork_block =
+ .parent_list = { &__fork_block.parent_list, &__fork_block.parent_list },
+ .child_list = { &__fork_block.child_list, &__fork_block.child_list }
+ };
++
++pid_t
++__libc_fork (void)
++{
++ return __libc_maybe_call2 (pthread_fork, (&__fork_block), ARCH_FORK ());
++}
++weak_alias (__libc_fork, __fork)
++libc_hidden_def (__fork)
++weak_alias (__libc_fork, fork)
+diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
+index 85477eb..1e7379e 100644
+--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
++++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
+@@ -54,5 +54,5 @@ extern int __register_atfork (void (*__prepare) (void),
+ void *dso_handle);
+
+ #ifndef ARCH_FORK
+-# define ARCH_FORK() __libc_fork()
++# define ARCH_FORK() INLINE_SYSCALL (fork, 0)
+ #endif