Test for availability of malloc hooks via autoconf

__*_hook() is glibc, but on at least one glibc platform (homebrew),
the __GLIBC__ define isn't set correctly and we miss being able to
use these hooks.

Do a feature test for it during configuration so that we enable it
anywhere the hooks are actually available.
Remove junk filling in tcache_bin_flush_small().

Junk filling is done in arena_dalloc_bin_locked(), so arena_alloc_junk_small()
is redundant. Also, we should use arena_dalloc_junk_small() instead of
arena_alloc_junk_small().
Merge pull request #108 from wqfish/dev

Remove junk filling in tcache_bin_flush_small().
Make VERSION generation more robust.

Relax the "are we in a git repo?" check to succeed even if the top level
jemalloc directory is not at the top level of the git repo.

Add git tag filtering so that only version triplets match when
generating VERSION.

Add fallback bogus VERSION creation, so that in the worst case, rather
than generating empty values for e.g. JEMALLOC_VERSION_MAJOR,
configuration ends up generating useless constants.
Disable autom4te cache.
Refactor chunk map.

Break the chunk map into two separate arrays, in order to improve cache
locality. This is related to issue #23.
Whitespace cleanups.
Optimize [nmd]alloc() fast paths.

Optimize [nmd]alloc() fast paths such that the (flags == 0) case is
streamlined, flags decoding only happens to the minimum degree
necessary, and no conditionals are repeated.
Move typedefs from jemalloc_protos.h.in to jemalloc_typedefs.h.in.

Move typedefs from jemalloc_protos.h.in to jemalloc_typedefs.h.in, so
that typedefs aren't redefined when compiling stress tests.
Add a simple timer implementation for use in benchmarking.
Add microbench tests.
avoid conflict with the POSIX timer_t type

It hits a compilation error with glibc 2.19 without a rename.
Merge pull request #114 from thestinger/timer

avoid conflict with the POSIX timer_t type
Thwart optimization of free(malloc(1)) in microbench.
Add relevant function attributes to [msn]allocx().
Add support for sized deallocation.

This adds a new `sdallocx` function to the external API, allowing the
size to be passed by the caller.  It avoids some extra reads in the
thread cache fast path.  In the case where stats are enabled, this
avoids the work of calculating the size from the pointer.

An assertion validates the size that's passed in, so enabling debugging
will allow users of the API to debug cases where an incorrect size is
passed in.

The performance win for a contrived microbenchmark doing an allocation
and immediately freeing it is ~10%.  It may have a different impact on a
real workload.

Closes #28
fix isqalloct (should call isdalloct)
Merge pull request #115 from thestinger/isqalloct

fix isqalloct (should call isdalloct)
WIP: Assume the OS lazy-loads pages in huge allocations when reporting their size.