Use a stub replacement and disable dss when sbrk is not supported

This commit is contained in:
Mike Hommey 2012-04-12 10:13:03 +02:00 committed by Jason Evans
parent 5ff709c264
commit 83c324acd8
3 changed files with 22 additions and 0 deletions

View File

@ -678,6 +678,14 @@ fi
], ],
[enable_dss="0"] [enable_dss="0"]
) )
dnl Check whether the BSD/SUSv1 sbrk() exists. If not, disable DSS support.
AC_CHECK_FUNC([sbrk], [have_sbrk="1"], [have_sbrk="0"])
if test "x$have_sbrk" = "x1" ; then
AC_DEFINE([JEMALLOC_HAVE_SBRK], [ ])
else
enable_dss="0"
fi
if test "x$enable_dss" = "x1" ; then if test "x$enable_dss" = "x1" ; then
AC_DEFINE([JEMALLOC_DSS], [ ]) AC_DEFINE([JEMALLOC_DSS], [ ])
fi fi

View File

@ -108,6 +108,9 @@
# define JEMALLOC_ATTR(s) JEMALLOC_CATTR(s,) # define JEMALLOC_ATTR(s) JEMALLOC_CATTR(s,)
#endif #endif
/* Defined if sbrk() is supported. */
#undef JEMALLOC_HAVE_SBRK
/* Non-empty if the tls_model attribute is supported. */ /* Non-empty if the tls_model attribute is supported. */
#undef JEMALLOC_TLS_MODEL #undef JEMALLOC_TLS_MODEL

View File

@ -3,6 +3,17 @@
/******************************************************************************/ /******************************************************************************/
/* Data. */ /* Data. */
#ifndef JEMALLOC_HAVE_SBRK
void *
sbrk(intptr_t increment)
{
not_implemented();
return (NULL);
}
#endif
/* /*
* Protects sbrk() calls. This avoids malloc races among threads, though it * Protects sbrk() calls. This avoids malloc races among threads, though it
* does not protect against races with threads that call sbrk() directly. * does not protect against races with threads that call sbrk() directly.