Dear SeaBIOS folks,
Am Donnerstag, den 20.10.2016, 23:58 +0200 schrieb Paul Menzel:
just a note, that due to a regression in GCC 6 in Debian Sid/unstable [1] the latest master branch [2] does not build.
$ make Build Kconfig config file Compile checking out/src/misc.o Compile checking out/src/stacks.o src/stacks.c: Assembler messages: src/stacks.c:567: Error: found '(', expected: ')' src/stacks.c:567: Error: junk `(%ebp))' after expression src/stacks.c:568: Warning: indirect call without `*' Makefile:133: die Regel für Ziel „out/src/stacks.o“ scheiterte make: *** [out/src/stacks.o] Fehler 1
It builds fine with gcc-4.9 and gcc-5.
$ make CC=gcc-4.9 -j $ make CC=gcc-5 -j
There is gcc-6 6.2.0-9 out already [3], but it’s not available over the mirrors yet.
And unfortunately the build failure still happens with that version.
In the mean time, there is a separate bug report for this issue for SeaBIOS that it fails to build from source in Debian [4].
I successfully build SeaBIOS with GCC 6-20161020, so it’s a Debian packaging issue. Probably due to the change below.
* Configure with --enable-default-pie and pass -z now when pie is enabled; on amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x. Closes: #835148 [6].
I added `no-pic` to the COMMON_CFLAGS, and that fixed the build issue for me. I don’t understand, what that has to do with PIE though.
Thanks,
Paul
[1] http://metadata.ftp-master.debian.org/changelogs/main/g/gcc-6/gcc-6_6.2.0-7_... gcc (Debian 6.2.0-7) 6.2.0 20161018 [2] commit 00b0402 (docs: fix various typos and inconsistency) [3] http://metadata.ftp-master.debian.org/changelogs/main/g/gcc-6/gcc-6_6.2.0-9_...
[4] https://bugs.debian.org/841546 seabios: FTBFS: src/stacks.c:635: Error: found '(', expected: ')' [5] ftp://gcc.gnu.org/pub/gcc/snapshots/6-20161020/ [6] https://bugs.debian.org/835148