Skip to content

Commit 7b38b65

Browse files
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

build/config/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
BINUTILS_VERSION=2.38

build/config/gcc5/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc6/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc7/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc8/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc9.1/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc9.2/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38

build/config/gcc9.3/binutils_2_38

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../binutils_2_38
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sanitizer-ipc-perm-glibc231.patch
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../sanitizer-ipc-perm-glibc231.patch

0 commit comments

Comments
 (0)