diff options
author | Dimitris Papastamos <dimitris.papastamos@arm.com> | 2018-07-11 11:13:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-11 11:13:36 +0100 |
commit | 9a93d8ccff0abe225bfabbed7970075640f90de4 (patch) | |
tree | 012ea8874fdad102385555faf820562347c402e8 /bl32 | |
parent | 89a793425b52c7f563eb07984fd79198471ce61c (diff) | |
parent | 4a98f0ef4c135ce7e1016a3c0fa3d75b6a54630b (diff) |
Merge pull request #1460 from robertovargas-arm/clang
Make TF compatible with Clang assembler and linker
Diffstat (limited to 'bl32')
-rw-r--r-- | bl32/sp_min/sp_min.ld.S | 17 | ||||
-rw-r--r-- | bl32/tsp/aarch64/tsp_exceptions.S | 32 | ||||
-rw-r--r-- | bl32/tsp/tsp.ld.S | 8 |
3 files changed, 33 insertions, 24 deletions
diff --git a/bl32/sp_min/sp_min.ld.S b/bl32/sp_min/sp_min.ld.S index 71de8839..ce6c954e 100644 --- a/bl32/sp_min/sp_min.ld.S +++ b/bl32/sp_min/sp_min.ld.S @@ -28,10 +28,19 @@ SECTIONS *entrypoint.o(.text*) *(.text*) *(.vectors) - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __TEXT_END__ = .; } >RAM + /* .ARM.extab and .ARM.exidx are only added because Clang need them */ + .ARM.extab . : { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } >RAM + + .ARM.exidx . : { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >RAM + .rodata . : { __RODATA_START__ = .; *(.rodata*) @@ -55,7 +64,7 @@ SECTIONS . = ALIGN(8); #include <pubsub_events.h> - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __RODATA_END__ = .; } >RAM #else @@ -92,7 +101,7 @@ SECTIONS * read-only, executable. No RW data from the next section must * creep in. Ensure the rest of the current memory block is unused. */ - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __RO_END__ = .; } >RAM #endif @@ -207,7 +216,7 @@ SECTIONS * as device memory. No other unexpected data must creep in. * Ensure the rest of the current memory page is unused. */ - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __COHERENT_RAM_END__ = .; } >RAM diff --git a/bl32/tsp/aarch64/tsp_exceptions.S b/bl32/tsp/aarch64/tsp_exceptions.S index 4b2ad75e..48e358a3 100644 --- a/bl32/tsp/aarch64/tsp_exceptions.S +++ b/bl32/tsp/aarch64/tsp_exceptions.S @@ -82,19 +82,19 @@ vector_base tsp_exceptions */ vector_entry sync_exception_sp_el0 b plat_panic_handler - check_vector_size sync_exception_sp_el0 +end_vector_entry sync_exception_sp_el0 vector_entry irq_sp_el0 b plat_panic_handler - check_vector_size irq_sp_el0 +end_vector_entry irq_sp_el0 vector_entry fiq_sp_el0 b plat_panic_handler - check_vector_size fiq_sp_el0 +end_vector_entry fiq_sp_el0 vector_entry serror_sp_el0 b plat_panic_handler - check_vector_size serror_sp_el0 +end_vector_entry serror_sp_el0 /* ----------------------------------------------------- @@ -104,19 +104,19 @@ vector_entry serror_sp_el0 */ vector_entry sync_exception_sp_elx b plat_panic_handler - check_vector_size sync_exception_sp_elx +end_vector_entry sync_exception_sp_elx vector_entry irq_sp_elx handle_tsp_interrupt irq_sp_elx - check_vector_size irq_sp_elx +end_vector_entry irq_sp_elx vector_entry fiq_sp_elx handle_tsp_interrupt fiq_sp_elx - check_vector_size fiq_sp_elx +end_vector_entry fiq_sp_elx vector_entry serror_sp_elx b plat_panic_handler - check_vector_size serror_sp_elx +end_vector_entry serror_sp_elx /* ----------------------------------------------------- @@ -126,19 +126,19 @@ vector_entry serror_sp_elx */ vector_entry sync_exception_aarch64 b plat_panic_handler - check_vector_size sync_exception_aarch64 +end_vector_entry sync_exception_aarch64 vector_entry irq_aarch64 b plat_panic_handler - check_vector_size irq_aarch64 +end_vector_entry irq_aarch64 vector_entry fiq_aarch64 b plat_panic_handler - check_vector_size fiq_aarch64 +end_vector_entry fiq_aarch64 vector_entry serror_aarch64 b plat_panic_handler - check_vector_size serror_aarch64 +end_vector_entry serror_aarch64 /* ----------------------------------------------------- @@ -148,16 +148,16 @@ vector_entry serror_aarch64 */ vector_entry sync_exception_aarch32 b plat_panic_handler - check_vector_size sync_exception_aarch32 +end_vector_entry sync_exception_aarch32 vector_entry irq_aarch32 b plat_panic_handler - check_vector_size irq_aarch32 +end_vector_entry irq_aarch32 vector_entry fiq_aarch32 b plat_panic_handler - check_vector_size fiq_aarch32 +end_vector_entry fiq_aarch32 vector_entry serror_aarch32 b plat_panic_handler - check_vector_size serror_aarch32 +end_vector_entry serror_aarch32 diff --git a/bl32/tsp/tsp.ld.S b/bl32/tsp/tsp.ld.S index 31c5a67e..97b12ce1 100644 --- a/bl32/tsp/tsp.ld.S +++ b/bl32/tsp/tsp.ld.S @@ -29,14 +29,14 @@ SECTIONS *tsp_entrypoint.o(.text*) *(.text*) *(.vectors) - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __TEXT_END__ = .; } >RAM .rodata . : { __RODATA_START__ = .; *(.rodata*) - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __RODATA_END__ = .; } >RAM #else @@ -52,7 +52,7 @@ SECTIONS * read-only, executable. No RW data from the next section must * creep in. Ensure the rest of the current memory page is unused. */ - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __RO_END__ = .; } >RAM #endif @@ -117,7 +117,7 @@ SECTIONS * as device memory. No other unexpected data must creep in. * Ensure the rest of the current memory page is unused. */ - . = NEXT(PAGE_SIZE); + . = ALIGN(PAGE_SIZE); __COHERENT_RAM_END__ = .; } >RAM #endif |