[build] Do not apply WORKAROUND_CFLAGS for host compiler
authorMichael Brown <mcb30@ipxe.org>
Mon, 22 Jul 2019 13:51:28 +0000 (14:51 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 22 Jul 2019 13:51:28 +0000 (14:51 +0100)
commita4f8c6e31f6c62522cfc633bbbffa81b22f9d6f3
treeb6c39c8a0450839720fe0f2295dbdf6e48ce5b9e
parent1dd56dbd11082fb622c2ed21cfaced4f47d798a6
[build] Do not apply WORKAROUND_CFLAGS for host compiler

The WORKAROUND_CFLAGS list is constructed based on running tests on
the target compiler, and the results may not be valid for the host
compiler.

The only relevant workaround required for the host compiler is
-Wno-stringop-truncation, which is needed to avoid a spurious compiler
warning for a totally correct usage of strncpy() in util/elf2efi.c.

Duplicating the workaround tests for the host compiler is messy, as is
conditionally applying __attribute__((nonstring)).  Fix instead by
disapplying WORKAROUND_CFLAGS for the host compiler, and using
memcpy() with an explicitly calculated length instead of strncpy() in
util/elf2efi.c.

Reported-by: Ignat Korchagin <ignat@cloudflare.com>
Reported-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.housekeeping
src/util/elf2efi.c