839e2de5d8
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.