[Skiboot] Minimum binutils version to build skiboot
Gustavo Romero
gromero at linux.vnet.ibm.com
Thu Jul 23 10:05:20 AEST 2020
Hi,
I'm getting the following error when building skiboot with
binutils 2.26.1 on Ubuntu 16.04.6 LTS:
[...]
[AR] libstb/built-in.a
asm/head.S: Assembler messages:
asm/head.S:235: Error: missing ')'
asm/head.S:235: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0xffffffffffff0000 and 0x000000000000ffff)
asm/head.S:235: Error: syntax error; found `U', expected `,'
asm/head.S:235: Error: junk at end of line: `ULL)@highest'
asm/head.S:235: Error: missing ')'
asm/head.S:235: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:235: Error: syntax error; found `U', expected `,'
asm/head.S:235: Error: junk at end of line: `ULL)@higher'
asm/head.S:235: Error: missing ')'
asm/head.S:235: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:235: Error: syntax error; found `U', expected `,'
asm/head.S:235: Error: junk at end of line: `ULL)@h'
asm/head.S:235: Error: missing ')'
asm/head.S:235: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:235: Error: syntax error; found `U', expected `,'
[AR] libc/built-in.a
asm/head.S:235: Error: junk at end of line: `ULL)@l'
asm/head.S:934: Error: missing ')'
asm/head.S:934: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0xffffffffffff0000 and 0x000000000000ffff)
asm/head.S:934: Error: syntax error; found `U', expected `,'
asm/head.S:934: Error: junk at end of line: `ULL)@highest'
asm/head.S:934: Error: missing ')'
asm/head.S:934: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:934: Error: syntax error; found `U', expected `,'
asm/head.S:934: Error: junk at end of line: `ULL)@higher'
asm/head.S:934: Error: missing ')'
asm/head.S:934: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:934: Error: syntax error; found `U', expected `,'
asm/head.S:934: Error: junk at end of line: `ULL)@h'
asm/head.S:934: Error: missing ')'
asm/head.S:934: Error: operand out of range (0x0b1ab1af00ba1234 is not between 0x0000000000000000 and 0x000000000000ffff)
asm/head.S:934: Error: syntax error; found `U', expected `,'
asm/head.S:934: Error: junk at end of line: `ULL)@l'
[AS] asm/dummy_map.o
[CC] skiboot.lds
/home/gromero/git/skiboot/Makefile.rules:52: recipe for target 'asm/head.o' failed
make: *** [asm/head.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** wait: No child processes. Stop.
This is because binutils <= 2.27 does not support ULL & friends suffixes
and asm/head.S is using ULL for STACK_INT_MAGIC, so if we remove the ULL
suffix skiboot builds ok with binutils 2.26.1:
diff --git a/include/stack.h b/include/stack.h
index 3e987ea..9aa688b 100644
--- a/include/stack.h
+++ b/include/stack.h
@@ -45,7 +45,7 @@
#define STACK_WARNING_GAP 2048
#define STACK_CHECK_GUARD_BASE 0xdeadf00dbaad300
-#define STACK_INT_MAGIC 0xb1ab1af00ba1234ULL
+#define STACK_INT_MAGIC 0xb1ab1af00ba1234
Since STACK_INT_MAGIc, by its turn, is actually used with @{l,h,higher,highest},
afaics it's not possible to simply change ULL and cast the value with
(unsigned long long). Nonetheless, I _think_ that for that case the ULL suffix
is not really necessary, just like it happens for STACK_CHECK_GUARD_BASE.
That said, I don't know what's the minimum binutils skiboot must currently
support, so actually it might be that I'm using a non supported binutils
version to build skiboot :)
Thoughts?
Cheers,
Gustavo
More information about the Skiboot
mailing list