Fix a regression in JE_COMPILABLE().

Revert JE_COMPILABLE() so that it detects link errors.  Cross-compiling
should still work as long as a valid configure cache is provided.

Clean up some comments/whitespace.
This commit is contained in:
Jason Evans 2012-03-13 11:09:23 -07:00
parent eb2398106f
commit 4c2faa8a7c
3 changed files with 18 additions and 24 deletions

View File

@ -26,14 +26,17 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
])
dnl JE_COMPILABLE(label, hcode, mcode, rvar)
dnl
dnl Use AC_RUN_IFELSE() rather than AC_COMPILE_IFELSE() so that linker errors
dnl cause failure.
AC_DEFUN([JE_COMPILABLE],
[
AC_CACHE_CHECK([whether $1 is compilable],
[$4],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$2],
[$3])],
[$4=yes],
[$4=no])])
[AC_RUN_IFELSE([AC_LANG_PROGRAM([$2],
[$3])],
[$4=yes],
[$4=no])])
])
dnl ============================================================================
@ -801,16 +804,13 @@ dnl ============================================================================
dnl Check for ffsl(3), and fail if not found. This function exists on all
dnl platforms that jemalloc currently has a chance of functioning on without
dnl modification.
JE_COMPILABLE([a program using ffsl],
[
#include <string.h>
],
[
{
int rv = ffsl(0x08);
}
],
[je_cv_function_ffsl])
JE_COMPILABLE([a program using ffsl], [
#include <string.h>
], [
{
int rv = ffsl(0x08);
}
], [je_cv_function_ffsl])
if test "x${je_cv_function_ffsl}" != "xyes" ; then
AC_MSG_ERROR([Cannot build without ffsl(3)])
fi

View File

@ -240,14 +240,14 @@ static const bool config_ivsalloc =
#define LONG_MASK (LONG - 1)
/* Return the smallest long multiple that is >= a. */
#define LONG_CEILING(a) \
#define LONG_CEILING(a) \
(((a) + LONG_MASK) & ~LONG_MASK)
#define SIZEOF_PTR (1U << LG_SIZEOF_PTR)
#define PTR_MASK (SIZEOF_PTR - 1)
/* Return the smallest (void *) multiple that is >= a. */
#define PTR_CEILING(a) \
#define PTR_CEILING(a) \
(((a) + PTR_MASK) & ~PTR_MASK)
/*
@ -566,10 +566,7 @@ sa2u(size_t size, size_t alignment, size_t *run_size_p)
}
}
/*
* Choose an arena based on a per-thread value (fast-path code, calls slow-path
* code if necessary).
*/
/* Choose an arena based on a per-thread value. */
JEMALLOC_INLINE arena_t *
choose_arena(void)
{

View File

@ -101,10 +101,7 @@ arenas_extend(unsigned ind)
return (arenas[0]);
}
/*
* Choose an arena based on a per-thread value (slow-path code only, called
* only by choose_arena()).
*/
/* Slow path, called only by choose_arena(). */
arena_t *
choose_arena_hard(void)
{