On Fri, Aug 05, 2016 at 10:12:00PM +1000, Nicholas Piggin wrote: > #define TEXT_TEXT \ > ALIGN_FUNCTION(); \ > - *(.text.hot .text .text.fixup .text.unlikely) \ > + *(.text.hot .text .text.fixup .text.unlikely .text.*) \ > *(.ref.text) \ > MEM_KEEP(init.text) \ > MEM_KEEP(exit.text) \ At the risk of being told you (kernel people) have already considerd this I thought I should mention that the above isn't ideal. (Nor is gcc's choice of .text.hot for hot sections, which clashes with --function-sections for a function called "hot" but that's another story.) You'd really like all the hot sections and cold sections to be together, for better cache locality. So the line ought to have been *(.text.hot) *(.text) *(.text.fixup) *(.text.unlikely) That would put all .text.hot sections together. Similarly for .text.unlikely. The trap of course is that this only works if .text.fixup from one object file can be placed relatively far away from .text in the same object file. If it can, then Nicholas' patch should be: *(.text.hot .text.hot.*) *(.text.unlikely .text.unlikely.*) *(.text .text.*) If you can't put .text.fixup too far away then you may as well just use *(.text .text.*) -- Alan Modra Australia Development Lab, IBM -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html