startup files generated by stm32cubeIDE do this. Mostly useless since
none of our code uses that; the linking step gets rid of those sections
anyway.
objdump before:
200000a8 l .data 00000000 __fini_array_end
200000a4 l .data 00000000 __fini_array_start
200000a4 l .data 00000000 __init_array_end
200000a0 l .data 00000000 __preinit_array_end
200000a0 l .data 00000000 __init_array_start
200000a0 l .data 00000000 __preinit_array_start
after:
0800419c l .fini_array 00000000 __fini_array_end
08004198 l .fini_array 00000000 __fini_array_start
08004198 l .init_array 00000000 __init_array_end
08004194 l .preinit_array 00000000 __preinit_array_end
08004194 l .init_array 00000000 __init_array_start
08004194 l .preinit_array 00000000 __preinit_array_start
99% of the ldscripts is identical, which makes it a pain to maintain.
Now we use cmake 'configure_file()' with a handful of variables to
produce each ldscript from a common template.