diff mbox

kbuild: Fix .text.unlikely placement

Message ID 1437354079-18609-1-git-send-email-andi@firstfloor.org (mailing list archive)
State New, archived
Headers show

Commit Message

Andi Kleen July 20, 2015, 1:01 a.m. UTC
From: Andi Kleen <ak@linux.intel.com>

When building a kernel with .text.unlikely text the unlikely text for
each translation unit was put next to the main .text code in the
final vmlinux.

The problem is that the linker doesn't allow more specific submatches
of a section name in a different linker script statement after the
main match.

So we need to move them all into one line. With that change
.text.unlikely is at the end of everything again.

I also moved .text.hot into the same statement though, even though
that's not strictly needed.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 include/asm-generic/vmlinux.lds.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Michal Marek Aug. 20, 2015, 11:55 a.m. UTC | #1
On 2015-07-20 03:01, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
> 
> When building a kernel with .text.unlikely text the unlikely text for
> each translation unit was put next to the main .text code in the
> final vmlinux.
> 
> The problem is that the linker doesn't allow more specific submatches
> of a section name in a different linker script statement after the
> main match.
> 
> So we need to move them all into one line. With that change
> .text.unlikely is at the end of everything again.
> 
> I also moved .text.hot into the same statement though, even though
> that's not strictly needed.
> 
> Signed-off-by: Andi Kleen <ak@linux.intel.com>

Applied to kbuild.git#kbuild.

Michal

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 8bd374d..1781e54 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -412,12 +412,10 @@ 
  * during second ld run in second ld pass when generating System.map */
 #define TEXT_TEXT							\
 		ALIGN_FUNCTION();					\
-		*(.text.hot)						\
-		*(.text .text.fixup)					\
+		*(.text.hot .text .text.fixup .text.unlikely)		\
 		*(.ref.text)						\
 	MEM_KEEP(init.text)						\
 	MEM_KEEP(exit.text)						\
-		*(.text.unlikely)
 
 
 /* sched.text is aling to function alignment to secure we have same