[Buildroot] [PATCH] package/kvm-unit-tests: really fix build on Arch Linux x86_64

Peter Korsgaard peter at korsgaard.com
Fri Nov 22 22:31:29 UTC 2019


>>>>> "Arnout" == Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be> writes:

 > On x86_64, we use the host compiler instead of the target compiler to
 > build kvm-unit-tests, because it is built with -m32 and our target
 > compiler doesn't support that.

 > However, the compiler on Arch Linux is broken: it *always* builds with
 > -fstack-protector, even when -ffreestanding is passed. However, when
 > -fnostdlib is passed at link time (which is normally the case when
 > building with -ffreestanding), it is not linked with the stack-protector
 > library. This leads to a link time error:

 > /usr/bin/ld: x86/realmode.o: in function `print_serial_u32':
 > .../x86/realmode.c:104: undefined reference to `__stack_chk_fail'

 > Since the entire package is built with -ffreestanding, it doesn't
 > support stack-protector at all. Therefore, simply pass
 > -fno-stack-protector explicitly on x86_64 to work around the bug in Arch
 > Linux.

 > Commit c0ffd16e4 tried to do this, but got the condition wrong:
 > -fno-stack-protector was passed in all cases *except* for x86_64. This
 > commit fixes that, by inverting the condition and moving the
 > --cross-prefix part to the else branch.

 > Fixes: (no new autobuild failures yet)

 > Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
 > Cc: Fabrice Fontaine <fontaine.fabrice at gmail.com>
 > Cc: Matthew Weber <matthew.weber at rockwellcollins.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list