I'm experimenting with different configuration options, and the "Execute-only Code" option might be useful for my application. However, when I enable it, many modules throw the following linker warning:
Warning: L6480W: Disabling string merging for <foobar>.o(.conststring). Relocated MOVT referring to string .conststring has a non-zero addend, which is not supported.
What does this mean? I notice that the option causes the size of the output hex to increase, so I would guess that this warning just means that the linker isn't able to do some optimization with strings that are used in multiple places in the code, but I'm not sure.
I am using ARM Compiler v5.
Hello EliasSimonNevro, yes, right. The warning means, that the linker was not able to consider some string for the string merging optimization. It does not essentially mean, that the string has a matching equivalent, but of course could have also one.
you just add '\0' into last string of uexample: char str[] = "abc\0";