Commit 7b38b65
authored
Fix gcc 5-7 ucontext patch, gcc 8-9 sanitizer assert, gcc 8 Ada link failure (#49)
* Fix gcc 5-7 ucontext patch, gcc 8-9 sanitizer, gcc 8 Ada ld issue
ucontext-struct.patch: add missing 'siginfo_t info;' context line
The struct rt_sigframe has four fields before 'struct ucontext uc'
(int sig, siginfo_t *pinfo, void *puc, siginfo_t info). The patch
was missing 'siginfo_t info;' so patch failed on gcc 6.x and 7.x.
sanitizer-ipc-perm-glibc231.patch (new):
glibc 2.31 changed ipc_perm.mode from unsigned short to unsigned int
on x86/x86_64; sanitizer's CHECK_SIZE_AND_OFFSET fires at compile time.
Fixed upstream in gcc 8.4.0 and 9.4.0; applied via symlinks to gcc
8.1-8.3 and 9.1-9.3.
binutils configure: --enable-default-compressed-debug-sections-algorithm=zlib
The newly-built gcc (xgcc) uses the newly-built binutils 'as' to
compile Ada bootstrap objects (b_gnatl.adb etc). With binutils 2.39+
the default debug compression may be zstd, which the CE-installed host
gcc's old bundled ld (~binutils 2.32) cannot decompress, causing
'b_gnatl.o: file not recognized'. Forcing zlib keeps the format
readable by old and new linkers alike.
🤖 Generated by LLM (Claude, via OpenClaw)
* Use binutils 2.38 for gcc 5-9.3: supports SHT_RELR, predates zstd
binutils 2.39+ may produce zstd-compressed debug sections; the old
bundled ld in CE gcc-7.5.0/8.5.0 (used as host compilers for these
older gcc builds) cannot decompress them, causing Ada bootstrap
failures ('b_gnatl.o: file not recognized').
binutils 2.38 (released Feb 2022) predates zstd support and fully
supports SHT_RELR (type 0x13), which is the Ubuntu 24.04 system
library feature that made upgrading binutils necessary in the first
place. gcc 9.4+ and gcc 10+ have been confirmed working with 2.44
and are left unchanged.
Uses the existing per-version config file mechanism.
🤖 Generated by LLM (Claude, via OpenClaw)
---------
Co-authored-by: mattgodbolt-molty <mattgodbolt-molty@users.noreply.github.com>1 parent b9ed3f4 commit 7b38b65
16 files changed
Lines changed: 32 additions & 1 deletion
File tree
- build
- config
- gcc5
- gcc6
- gcc7
- gcc8
- gcc9.1
- gcc9.2
- gcc9.3
- patches
- gcc8.1
- gcc8.2
- gcc8.3
- gcc9.1
- gcc9.2
- gcc9.3
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
0 commit comments