[Skiboot] Minimum binutils version to build skiboot
Gustavo Romero
gromero at linux.vnet.ibm.com
Fri Jul 31 01:11:02 AEST 2020
Hi Stewart!
On 7/29/20 11:46 PM, Stewart Smith wrote:
> On Wed, Jul 22, 2020, at 5:05 PM, Gustavo Romero wrote:
>> I'm getting the following error when building skiboot with
>> binutils 2.26.1 on Ubuntu 16.04.6 LTS:
>
> Generally we've had CI for the current Ubuntu LTS plus the previous Ubuntu LTS.
>
> e126deb2de831d559c49a8c3b0f4edd1b1291bb0 in June added in 20.04 and dropped 16.04, so you can probably bisect back to work what broke it, or look at how it was being built back then and figure out what you're doing differently.
Got it, so 16.04 was dropped by the CI.
Interestingly the commit that broke the build on old
binutils is from a couple of weeks before the support
for 16.04 was dropped by the CI (so not sure how the
CI didn't catch it):
commit dca0d5345631fb8d116eaf015416a6a51ead6028
Author: Nicholas Piggin <npiggin at gmail.com>
Date: Mon Apr 27 21:08:07 2020 +1000
core: interrupt markers for stack traces
Use magic marker in the exception stack frame that is used by the
unwinder to decode the interrupt type and NIA. The below example trace
comes from a modified skiboot that uses virtual memory, but any
interrupt type will appear similarly.
CPU 0000 Backtrace:
S: 0000000031c13580 R: 0000000030028210 .vm_dsi+0x360
S: 0000000031c13630 R: 000000003003b0dc .exception_entry+0x4fc
S: 0000000031c13830 R: 0000000030001f4c exception_entry_foo+0x4
--- Interrupt 0x300 at 000000003002431c ---
S: 0000000031c13b40 R: 000000003002430c .make_free.isra.0+0x110
S: 0000000031c13bd0 R: 0000000030025198 .mem_alloc+0x4a0
S: 0000000031c13c80 R: 0000000030028bac .__memalign+0x48
S: 0000000031c13d10 R: 0000000030028da4 .__zalloc+0x18
S: 0000000031c13d90 R: 000000003002fb34 .opal_init_msg+0x34
S: 0000000031c13e20 R: 00000000300234b4 .main_cpu_entry+0x61c
S: 0000000031c13f00 R: 00000000300031b8 boot_entry+0x1b0
--- OPAL boot ---
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
[oliver: the new stackentry fields made our test heaps too small]
Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
fixup! core: interrupt markers for stack traces
As I mentioned previously, that change uses suffix ULL in
+#define STACK_INT_MAGIC 0xb1ab1af00ba1234ULL
which is not understood by old binutils in Ubuntu 16.04.
I don't think the suffix is necessary there, like it happens
for STACK_CHECK_GUARD_BASE, so dropping it would fix the build
with binutils not supporting the use of ULL & friends suffixes.
Anyway, since CI dropped 16.04 LTS, should we care to fix that?
Thanks,
Gustavo
More information about the Skiboot
mailing list