Patchwork Please revert edada399 and 9203fc9c

login
register
mail settings
Submitter Tim Abbott
Date April 28, 2009, 3:47 p.m.
Message ID <alpine.DEB.1.10.0904281126550.15450@vinegar-pot.mit.edu>
Download mbox | patch
Permalink /patch/26573/
State Accepted, archived
Headers show

Comments

Tim Abbott - April 28, 2009, 3:47 p.m.
> Please revert commits edada399 ("powerpc: Use TEXT_TEXT macro in
> linker script.") and 9203fc9c ("powerpc: Use __REF macro instead of
> old .text.init.refok."), which depends on edada399.

Paul,

Sorry for breaking the build.  I will be sure to CC you and 
linuxppc-dev@ozlabs.org on future powerpc patches in this section name 
cleanup project.

I think just reverting commits edada399 and 9203fc9c will cause a section 
mismatch warning since commit 27b18332 removed the support code for the 
.text.init.refok section.  The following patch I believe should fix this 
by effectively reverting just commit edada399.  Can someone who has a 
64-bit powerpc machine confirm?

	-Tim Abbott

--

powerpc: Revert switch to TEXT_TEXT in linker script

Commit edada399 broke the build on 64-bit powerpc because it moved the
__ftr_alt_* sections of a file away from the .text section, causing
link failures due to relative conditional branch targets being too far
away from the branch instructions.  This happens on pretty much all
64-bit powerpc configs.

This change reverts commit edada399 while preserving the update from
the *.refok sections to .ref.text that has happened since.

Signed-off-by: Tim Abbott <tabbott@mit.edu>
---
 arch/powerpc/kernel/vmlinux.lds.S |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Patch

diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 433ae11..a047a6c 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -54,8 +54,8 @@  SECTIONS
 		ALIGN_FUNCTION();
 		HEAD_TEXT
 		_text = .;
-		TEXT_TEXT
-		*(.fixup __ftr_alt_*)
+		/* careful! __ftr_alt_* sections need to be close to .text */
+		*(.text .fixup __ftr_alt_* .ref.text)
 		SCHED_TEXT
 		LOCK_TEXT
 		KPROBES_TEXT