https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120301
--- Comment #2 from H. Peter Anvin <hpa at zytor dot com> --- It certainly is not specific to the Linux kernel, although perhaps how I phrased it is (in particular tying it to sections is rather specific to embedded environments, of which the Linux kernel is but one.) It is applicable to any application which has multiple phases of execution. Almost any embedded or kernel code will have some aspect of the code jettison issue; user space code generally does not (at least not on MMU-equipped platforms) but do have things like initialization and shutdown code that can behave very differently from other code. As for patching: doing out-of-line calls for what we are doing is an unacceptable level of overhead. It may feel like "outside the GCC definition" to you, but the fact of the matter is that it is something that is nearly universal for these types of environments. I would hope that giving you feedback for what kernel/embedded programmers could make use of would be appreciated; if it is not, then let me know and I will stop filing RFEs.