[Skiboot] Minimum binutils version to build skiboot

Stewart Smith stewart at flamingspork.com
Fri Jul 31 01:43:15 AEST 2020


> On Jul 30, 2020, at 8:11 AM, Gustavo Romero <gromero at linux.vnet.ibm.com> wrote:
> 
> 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?

It’s not my call, but I’d say it’s not worth it. 16.04 doesn’t have much life left.



More information about the Skiboot mailing list