[SeaBIOS] [PATCH] Makefile: Explicitly pass `no-pic` to compiler
Paul Menzel
pmenzel at molgen.mpg.de
Tue Oct 25 17:27:37 CEST 2016
Dear Kevin,
On 10/25/16 17:21, Kevin O'Connor wrote:
> On Sun, Oct 23, 2016 at 08:57:28PM +0200, Paul Menzel wrote:
>> Date: Sun, 23 Oct 2016 18:56:28 +0200
>>
>> Debian enables PIE hardening flags by default since package gcc-6
>> 6.2.0-7 [1].
>>
>> With that change, SeaBIOS fails to build with the error below [2][3].
>>
>> ```
>> $ 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
>> ```
>
> I just built and compiled gcc v6.2.0 and it compiles seabios fine.
> So, this looks like a debian bug, and I think it should be filed
> there.
Yes, that’s exactly what I wrote.
Debian decided to enable PIE hardening flags by default in the GCC package.
>> Passing `no-pic` to the compiler fixes this issue.
>
> I don't see where pic (position independent code) is related. My
> guess is that it just causes random code changes which then doesn't
> tickle the underlying issue.
>
> Does adding '-fno-pie' help?
Isn’t that already used due to `COMMONCFLAGS += $(call
cc-option,$(CC),-nopie,)` in the `Makefile`?
I’ll try it anyway.
Thanks,
Paul
More information about the SeaBIOS
mailing list