summaryrefslogtreecommitdiff
path: root/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@st.com>2018-07-04 17:55:32 +0200
committerWaldemar Brodkorb <wbrodkorb@conet.de>2018-08-10 16:02:45 +0200
commiteae96c1e2b02af0554bbae189af2c8091cb581bf (patch)
tree392822d624567e125fabac3074ab8b7317d3846c /libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
parent5b9a9801a4867af70c9ed55379b3eaa3dba59ef3 (diff)
nptl: Disable fork and atfork on MMU-less systems.
They do not work on MMU-less systems. For atfork, implement a hidden function that always returns EPERM. * libpthread/nptl/sysdeps/unix/sysv/linux/fork.c: Disable if __ARCH_USE_MMU__ is not defined. * libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init): Handle __ARCH_USE_MMU__. * libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c: Likewise. * libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise. Signed-off-by: Mickaël Guêné <mickael.guene@st.com> Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
index 0df9951a8..0cdbcfece 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
@@ -40,10 +40,14 @@ __libc_pthread_init (
void (*reclaim) (void))
{
/* Remember the pointer to the generation counter in libpthread. */
+#ifdef __ARCH_USE_MMU__
__fork_generation_pointer = ptr;
+#endif
/* Called by a child after fork. */
+#ifdef __ARCH_USE_MMU__
__register_atfork (NULL, NULL, reclaim, NULL);
+#endif
#ifndef TLS_MULTIPLE_THREADS_IN_TCB
return &__libc_multiple_threads;