Browse Source

nptl: Do not use madvise

start_thread() uses it, but it is not supported on MMU-less systems.

	* libpthread/nptl/pthread_create.c (start_thread): Call madvise
	only if __ARCH_USE_MMU__ is defined.

Signed-off-by: Mickaël Guêné <mickael.guene@st.com>
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
Christophe Lyon 5 years ago
parent
commit
4d6b4178c8
1 changed files with 4 additions and 0 deletions
  1. 4 0
      libpthread/nptl/pthread_create.c

+ 4 - 0
libpthread/nptl/pthread_create.c

@@ -373,8 +373,12 @@ start_thread (void *arg)
   size_t freesize = ((char *) pd->stackblock - sp) & ~pagesize_m1;
 #endif
   assert (freesize < pd->stackblock_size);
+
+  /* madvise is not supported on MMU-less systems. */
+#ifdef  __ARCH_USE_MMU__
   if (freesize > PTHREAD_STACK_MIN)
     madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
+#endif
 
   /* If the thread is detached free the TCB.  */
   if (IS_DETACHED (pd))