diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2016-08-05 00:03:14 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-08-07 21:43:53 -0700 |
commit | 1fac91707184ef5466148e5dbc3418704475e488 (patch) | |
tree | b9c05e60404cc8ebe2bf198e826b7e0aa5e5692b /core/cortex-m0 | |
parent | a9b4ae1f5a9fd3ada8709d0d39e6f694bf8f6423 (diff) | |
download | chrome-ec-1fac91707184ef5466148e5dbc3418704475e488.tar.gz |
core: Don't discard irqprio table entries due to LTO
Add __keep attribute to irqprio entries to ensure they are not dropped
when CONFIG_LTO is enabled.
BUG=chrome-os-partner:55920
BRANCH=None
TEST=Manual on kevin. Check build/RO/ec.RO.map, verify that
.rodata.irqprio section is not empty.
Change-Id: I51ae23556d6f46b2cd7ba098f0e7a785292b2853
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/366571
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'core/cortex-m0')
-rw-r--r-- | core/cortex-m0/irq_handler.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/core/cortex-m0/irq_handler.h b/core/cortex-m0/irq_handler.h index 7acf640c02..22a72ebf98 100644 --- a/core/cortex-m0/irq_handler.h +++ b/core/cortex-m0/irq_handler.h @@ -28,14 +28,14 @@ routine(); \ task_end_irq_handler(ret); \ } \ - const struct irq_priority IRQ_PRIORITY(irq) \ + const struct irq_priority __keep IRQ_PRIORITY(irq) \ __attribute__((section(".rodata.irqprio"))) \ = {irq, priority} #else /* CONFIG_TASK_PROFILING */ /* No Profiling : connect directly the IRQ vector */ #define DECLARE_IRQ_(irq, routine, priority) \ void IRQ_HANDLER(irq)(void) __attribute__((alias(STRINGIFY(routine))));\ - const struct irq_priority IRQ_PRIORITY(irq) \ + const struct irq_priority __keep IRQ_PRIORITY(irq) \ __attribute__((section(".rodata.irqprio"))) \ = {irq, priority} #endif /* CONFIG_TASK_PROFILING */ |