Skip to content

Commit 7ec00e9

Browse files
LoveKarlssonkartben
authored andcommitted
toolchain: linker: IAR fix for new linker optimization options
The IAR linker ilink does not have any optimization options, and with the newly added linker optimization flags that default to the compiler optimization flags, ilink will fail with an "illegal command line option" error. This temporary workaround will use a harmless option instead to avoid errors, until we can update the linker. Signed-off-by: Lars-Ove Karlsson <[email protected]>
1 parent 163526b commit 7ec00e9

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

cmake/linker/iar/linker_flags.cmake

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,26 @@
44

55
# Override the default CMake's IAR ILINK linker signature
66

7+
# The default behaviour of these new optimization flags for the linker
8+
# is to use the compiler optimization flags if no flags are set.
9+
# This does not work for IAR tools as there are no optimization flags
10+
# for the linker, and leaving the property empty causes it to be
11+
# filled with the compiler flags.
12+
# This workaround adds extra info to the map file only so should not
13+
# affect the generated code
14+
# To have this working properly, either the automatic use of compiler
15+
# flags must be removed, or we add some kind of dummy do nothing
16+
# command line option to the linker.
17+
# Either way, as this is causing an error right now, we use this
18+
# temporary workaround.
19+
20+
set_property(TARGET linker PROPERTY no_optimization --entry_list_in_address_order)
21+
set_property(TARGET linker PROPERTY optimization_debug --entry_list_in_address_order)
22+
set_property(TARGET linker PROPERTY optimization_speed --entry_list_in_address_order)
23+
set_property(TARGET linker PROPERTY optimization_size --entry_list_in_address_order)
24+
set_property(TARGET linker PROPERTY optimization_size_aggressive --entry_list_in_address_order)
25+
26+
727
string(APPEND CMAKE_C_LINK_FLAGS --no-wrap-diagnostics)
828

929
if(CONFIG_IAR_DATA_INIT)

0 commit comments

Comments
 (0)