On Fri, 2019-11-08 at 13:27 +0000, Jozef Lawrynowicz wrote: > > Yes, I should have used -flto in my examples. But it doesn't help remove these > CRT library functions which are normally either directly added to the > list of functions to run before main (via .init, .ctors or .init_array) or > used > in functions which are themselves added to this list. > > The unnecessary functions we want to remove are: > deregister_tm_clones > register_tm_clones > __do_global_dtors_aux > frame_dummy > LTO can't remove any of them. >
Ah, right, good point. That's not MSP430 specific actually. For those things I usually have custom init code, which also does other things occasionally. Stripping off global dtors is then an option in the build system which takes care of it (in my case, I do it by modifying the generated linker script). But again, as with the exceptions, it might be better to implement these kind of things outside of the compiler, e.g. by building the app with -nostartfiles -nodefaultlibs and providing your own substitutes. Another option is to patch those things in using the OS part of the target triplet. Cheers, Oleg