zephyr/arch/common
Eugeniy Paltsev a28ec6201f isr_tables: don't whole-archive library
As of today we have a bit weird situation with generated
sw_isr_table / irq_vector_table tables.

On the final linkage stage we pass two files which content
section with sw_isr_table / irq_vector_table. They are
 * libarch__common.a (with an outdated tables from the first
   linkage stage)
 * isr_tables.c.obj (with an actual tables)

The sections where tables are located are marked with
".gnu.linkonce" prefix. That means:
<<<As a GNU extension, if the name begins with .gnu.linkonce,
we only link a single copy of the section.>>>

However the "libarch__common.a" is passed to linker with
"--whole-archive" option which means <<<include every object
file in the archive in the link, rather than searching the archive
for the required object files>>>

That combination confuses MWDT linker and breaks linkage with
MWDT toolchain.

As a simple fix we can move the sw_isr_table / irq_vector_table
sections to their own library and link this library with
"--no-whole-archive" option.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
2020-09-05 10:22:56 -05:00
..
CMakeLists.txt isr_tables: don't whole-archive library 2020-09-05 10:22:56 -05:00
gen_isr_tables.py irq: Change dynamic API to take a constant parameter 2020-09-02 13:48:13 +02:00
isr_tables.c irq: Change dynamic API to take a constant parameter 2020-09-02 13:48:13 +02:00
nocache.ld arch: common: nocache: fix linker section definition 2019-06-19 09:08:40 -07:00
ramfunc.ld arch: Port the ramfunc section to the Cmake function 2019-05-20 22:28:28 -04:00
rom_start_offset.ld config: Rename TEXT_SECTION_OFFSET to ROM_START_OFFSET 2020-07-09 14:02:38 -04:00
sw_isr_common.c arch: Apply dynamic IRQ API change 2020-09-02 13:48:13 +02:00
timing_info_bench.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00