Fix a typo.
Fix mallctl argument size mismatches (size_t vs. uint64_t).

Reported by İsmail Dönmez.
Fix/remove flawed alignment-related overflow tests.

Fix/remove three related flawed tests that attempted to cause OOM due to
large request size and alignment constraint.  Although these tests
"passed" on 64-bit systems due to the virtual memory hole, they could
pass on some 32-bit systems.
Avoid a compiler warning.

Avoid copying "jeprof" to a 1-byte buffer within prof_boot0() when heap
profiling is disabled.  Although this is dead code under such
conditions, the compiler doesn't figure that part out.

Reported by Eduardo Silva.
Remove flawed alignment-related overflow test.

Remove the allocm() test equivalent to the mallocx() test removed in the
previous commit.  The flawed test attempted to cause OOM due to large
request size and alignment constraint.  Although this test "passed" on
64-bit systems due to the virtual memory hole, it could pass on some
32-bit systems.
Prevent inlining of backtraced test functions.

Inlining of alloc_0() and alloc_1() would prevent generation of unique
backtraces, upon which the test code relies.
Using MADV_FREE on Solaris/Illumos
Merge pull request #50 from georgekola/Voxer-Solaris

Using MADV_FREE on Solaris/Illumos
Fix typo
Merge pull request #51 from ErwanLegrand/dev

Fix typo
Add workaround for missing 'restrict' keyword.

Add a cpp #define that removes 'restrict' keyword usage unless the
compiler definitely supports C99.  As written, 'restrict' is only
enabled if the compiler supports the -std=gnu99 option (e.g. gcc and
llvm).

Reported by Tobias Hieta.
Break prof_accum into multiple compilation units.

Break prof_accum into multiple compilation units, in order to thwart
compiler optimizations such as inlining and tail call optimization that
would alter backtraces.
Add configure test to verify SSE2 code compiles.

Make sure that emmintrin.h can be #include'd without causing a
compilation error, rather than blindly defining HAVE_SSE2 based on
architecture.  Attempts to force SSE2 compilation on a 32-bit Ubuntu
13.10 system running as a VMware guest resulted in a no-win choice
without any obvious explanation besides toolchain misconfiguration/bug:
- Suffer compilation failure due to __MMX__, __SSE__, and __SSE2__ not
  being defined, even if -mmmx, -msse, and -msse2 are manually
  specified (note that they appear to be enabled by default).
- Manually define __MMX__, __SSE__, and __SSE2__, and suffer compiler
  warnings that they are already automatically defined.  This results in
  successful compilation and execution, but the noise is intolerable.
Fix junk filling for mremap(2)-based huge reallocation.

If mremap(2) is used for huge reallocation, physical pages are mapped to
new virtual addresses rather than data being copied to new pages.  This
bypasses the normal junk filling that would happen during allocation, so
add junk filling that is specific to this case.
Restore tail call optimization subversion.

Restore the essence of 898960247a8b2e6534738b7a3a244855f379faf9, which
sabotages tail call optimization.  This is necessary even when the
mutually recursive functions are in separate compilation units.
Update ChangeLog for 3.5.1.
Merge branch 'dev'