Browse Source

Merge changes from topic "fix-lto-build" into integration

* changes:
  fix(build): don't generate build-id
  fix(build): add forgotten BL_LDFLAGS to lto command line
  feat(build): check that .text section starts at page boundary
pull/2004/head
André Przywara 11 months ago
committed by TrustedFirmware Code Review
parent
commit
8ddb02d5af
  1. 2
      Makefile
  2. 6
      bl1/bl1.ld.S
  3. 6
      bl2/bl2.ld.S
  4. 6
      bl2/bl2_el3.ld.S
  5. 6
      bl2u/bl2u.ld.S
  6. 6
      bl31/bl31.ld.S
  7. 6
      bl32/sp_min/sp_min.ld.S
  8. 6
      bl32/tsp/tsp.ld.S
  9. 2
      make_helpers/build_macros.mk

2
Makefile

@ -361,6 +361,7 @@ else ifneq ($(findstring gcc,$(notdir $(LD))),)
TF_LDFLAGS += -Wl,-z,common-page-size=4096 #Configure page size constants
TF_LDFLAGS += -Wl,-z,max-page-size=4096
TF_LDFLAGS += -Wl,--build-id=none
ifeq ($(ENABLE_LTO),1)
ifeq (${ARCH},aarch64)
@ -388,6 +389,7 @@ else
TF_LDFLAGS += -z common-page-size=4096 # Configure page size constants
TF_LDFLAGS += -z max-page-size=4096
TF_LDFLAGS += --build-id=none
# ld.lld doesn't recognize the errata flags,
# therefore don't add those in that case.

6
bl1/bl1.ld.S

@ -36,6 +36,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
*bl1_entrypoint.o(.text*)
@ -80,6 +83,9 @@ SECTIONS {
} >ROM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
*bl1_entrypoint.o(.text*)

6
bl2/bl2.ld.S

@ -25,6 +25,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
#if ENABLE_RME
@ -65,6 +68,9 @@ SECTIONS {
} >RAM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
*bl2_entrypoint.o(.text*)

6
bl2/bl2_el3.ld.S

@ -55,6 +55,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
__TEXT_RESIDENT_START__ = .;
@ -89,6 +92,9 @@ SECTIONS {
"Resident part of BL2 has exceeded its limit.")
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
__TEXT_RESIDENT_START__ = .;

6
bl2u/bl2u.ld.S

@ -27,6 +27,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
*bl2u_entrypoint.o(.text*)
@ -60,6 +63,9 @@ SECTIONS {
} >RAM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
*bl2u_entrypoint.o(.text*)

6
bl31/bl31.ld.S

@ -37,6 +37,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text is not aligned on a page boundary.");
__TEXT_START__ = .;
*bl31_entrypoint.o(.text*)
@ -71,6 +74,9 @@ SECTIONS {
} >RAM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro is not aligned on a page boundary.");
__RO_START__ = .;
*bl31_entrypoint.o(.text*)

6
bl32/sp_min/sp_min.ld.S

@ -29,6 +29,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
*entrypoint.o(.text*)
@ -67,6 +70,9 @@ SECTIONS {
} >RAM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
*entrypoint.o(.text*)

6
bl32/tsp/tsp.ld.S

@ -25,6 +25,9 @@ SECTIONS {
#if SEPARATE_CODE_AND_RODATA
.text . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".text address is not aligned on a page boundary.");
__TEXT_START__ = .;
*tsp_entrypoint.o(.text*)
@ -51,6 +54,9 @@ SECTIONS {
} >RAM
#else /* SEPARATE_CODE_AND_RODATA */
.ro . : {
ASSERT(. == ALIGN(PAGE_SIZE),
".ro address is not aligned on a page boundary.");
__RO_START__ = .;
*tsp_entrypoint.o(.text*)

2
make_helpers/build_macros.mk

@ -573,7 +573,7 @@ ifneq ($(findstring armlink,$(notdir $(LD))),)
$(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS) \
$(BUILD_DIR)/build_message.o $(OBJS)
else ifneq ($(findstring gcc,$(notdir $(LD))),)
$$(Q)$$(LD) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) -Wl,-Map=$(MAPFILE) \
$$(Q)$$(LD) -o $$@ $$(TF_LDFLAGS) $$(LDFLAGS) $(BL_LDFLAGS) -Wl,-Map=$(MAPFILE) \
$(addprefix -Wl$(comma)--script$(comma),$(LINKER_SCRIPTS)) -Wl,--script,$(DEFAULT_LINKER_SCRIPT) \
$(BUILD_DIR)/build_message.o \
$(OBJS) $(LDPATHS) $(LIBWRAPPER) $(LDLIBS) $(BL_LIBS)

Loading…
Cancel
Save