Fix 13111: GC.realloc returns invalid memory for large reallocation

added missing handling if the reallocation is too large for the current pool
add unittest
Fix marking threadasm.S as not requiring an executable stack.

- Use of @progbits breaks on ARM, use %progbits instead.
- Works on FreeBSD, too.
- Works only for ELF files.

See https://wiki.gentoo.org/wiki/Project:Hardened/GNU_stack_quickstart for more info.
Merge pull request #884 from rainers/fix_13111

Fix 13111: GC.realloc returns invalid memory for large reallocation
fix Issue 13025 - Tools repository does not build on Ubuntu

- reference __bss_start and _end using weak symbols
  to workaround a diagnostic linker bug
Fix issue 12958 - core.checkedint.mulu is broken.

This implements the (uint, uint) case using ulong arithmetic
and the (ulong, ulong) case using trial division. See Bugzilla
for an ulong implementation by David Bregman that does not
require a division. As the functions are expected to be
implemented as compiler intrinsics to make use of
architecture-specific primitives anyway, the simpler version
has been chosen to reduce the potential for bugs, even though
it is slower.
Merge pull request #885 from redstar/execstack

Fix marking threadasm.S as not requiring an executable stack.
Merge pull request #889 from MartinNowak/fix13025

fix Issue 13025 - Tools repository does not build on Ubuntu
Merge pull request #890 from klickverbot/fix-checkedint-umul

Fix issue 12958 - core.checkedint.mulu is broken.
Add missing P_tmpdir declaration for freebsd