mirror of
https://github.com/ipxe/ipxe.git
synced 2025-02-25 18:55:24 -06:00
[build] Use separate code segment if supported by linker
Some versions of ld will complain that the automatically created (and unused by our build process) ELF program headers include a "LOAD segment with RWX permissions". Silence this warning by adding "-z separate-code" to the linker options, where supported. For BIOS builds, where the prefix will generally require writable access to its own (tiny) code segment, simply inhibit the warning completely via "--no-warn-rwx-segments". Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -502,6 +502,13 @@ LDFLAGS += --gc-sections
|
|||||||
#
|
#
|
||||||
LDFLAGS += -static
|
LDFLAGS += -static
|
||||||
|
|
||||||
|
# Use separate code segment if supported by linker
|
||||||
|
#
|
||||||
|
ZSC_TEST = $(LD) -z separate-code --version 2>&1 > /dev/null
|
||||||
|
ZSC_FLAGS := $(shell [ -z "`$(ZSC_TEST)`" ] && \
|
||||||
|
$(ECHO) '-z separate-code -z max-page-size=4096')
|
||||||
|
LDFLAGS += $(ZSC_FLAGS)
|
||||||
|
|
||||||
# compiler.h is needed for our linking and debugging system
|
# compiler.h is needed for our linking and debugging system
|
||||||
#
|
#
|
||||||
CFLAGS += -include include/compiler.h
|
CFLAGS += -include include/compiler.h
|
||||||
|
|||||||
@@ -13,6 +13,13 @@ LDSCRIPT_PREFIX = arch/x86/scripts/prefixonly.lds
|
|||||||
#
|
#
|
||||||
LDFLAGS += -N --no-check-sections
|
LDFLAGS += -N --no-check-sections
|
||||||
|
|
||||||
|
# Do not warn about RWX segments (required by most prefixes)
|
||||||
|
#
|
||||||
|
WRWX_TEST = $(LD) --warn-rwx-segments --version 2>&1 > /dev/null
|
||||||
|
WRWX_FLAGS := $(shell [ -z "`$(WRWX_TEST)`" ] && \
|
||||||
|
$(ECHO) '--no-warn-rwx-segments')
|
||||||
|
LDFLAGS += $(WRWX_FLAGS)
|
||||||
|
|
||||||
# Media types.
|
# Media types.
|
||||||
#
|
#
|
||||||
MEDIA += rom
|
MEDIA += rom
|
||||||
|
|||||||
Reference in New Issue
Block a user