- bash upgraded to 5.2.37, which fixes broken logic in the configure script
relating to strtoimax.
- heirloom stubs fixed to be static, which removes linker issues
- Fixed xz linker issues, stemming from configure script issues
- gnugrep uses broken Makefile from live-bootstrap; vendor a fixed version
We now build tinycc-musl through an intermediate stage.
BEFORE:
tinycc-mes (links to mes-libc) -> musl -> tinycc-musl (links to musl)
NOW:
tinycc-mes (links to mes-libc) -> musl-intermediate
-> tinycc-musl-intermediate -> musl -> tinycc-musl
This fixes some issues with handling floating-point numbers:
certain float routines are not implemented are not implemented in mes-libc,
which would cause a miscompiled musl in the old approach.
Certain unnecessary musl patches are dropped. It is especially important to
remove the weak symbol patch, which in fact breaks the build.
tinycc-musl is upgraded to the latest "mob" version, with a couple bugfixes.
Because common.nix is shared across these packages, they are upgraded together.
This patch applies various x86_64-specific bugfixes to tinycc-bootstrappable
and upgrades tinycc-mes to the latest "mob" version.
The build scripts are updated to support 64-bit targets. The runtime library
"libtcc1.c" is changed to include va_list.c for tinycc-bootstrappable, which is
required to support variadic args on x86_64. On the other hand, we add alloca
support to libtcc1.c on tinycc-mes.
Some changes made here are specific to x86_64, while others are applied
only to support an upgraded tinycc version later on.
x86_64-related:
- We use ${arch} over "x86" in various places.
- gen-sources.sh changed to support x86_64; sources.nix regenerated.
- nyacc was downgraded. Newer nyacc introduces a known regression that
causes incompatibility with mes, specifically on x86_64.
This is honestly a mes bug, but it is hard to patch.
- The x86_64 longjmp/setjmp infrastructure from mes-libc is replaced with a
custom implementation. The original implementation handles stack-related
registers incorrectly, and it's hard to fix without resorting to asm.
- Assorted bugfixes for mes-libc; see mes/default.nix for explanation.
To upgrade tinycc:
- We download an implementation of ldexpl from an upstream development version.
- Set `UPDATE_HIDE` and `UPDATE_DISABLE` as updates are to be handled by
`nixpkgs` rather than the software itself.
- Set `DISTRIBUTION` to mark the binary as being built/maintained via a
Linux distribution.
The main domain for the ponylang project moved from ponylang.org
to ponylang.io in March 2019.
cite: https://github.com/ponylang/ponylang-website/pull/412
The domain is a redirect, which is why it hasn't been noticed
before, but the meta-data in nixpkgs should reflect the domain
owned by the Pony Project.