Re: 2.5.68-bk11: .text.exit errors in .altinstructions

Andi Kleen (ak@muc.de)
Fri, 2 May 2003 20:52:29 +0200


On Fri, May 02, 2003 at 07:13:56PM +0200, Adrian Bunk wrote:
> Hi Andi,
>
> I'm getting the following .text.exit errors in 2.5.68-bk11 (kernel
> compiled with gcc 2.95 for a K6):

That's what I feared. You have a prefetch or mb() in an __exit
function. Basically it's an binutils design bug, but hard to fix
according to the binutils hackers.

The only fix I know currently is to remove the .exit.text
discard from arch/i386/vmlinux.lds.S. It'll increase the kernel
text size slightly because functions that would only be needed
for module unload in some drivers will be compiled in too.
But it's probably not too bad, at worst a few KB.

-Andi

Index: linux/arch/i386/vmlinux.lds.S
===================================================================
RCS file: /home/cvs/linux-2.5/arch/i386/vmlinux.lds.S,v
retrieving revision 1.18
diff -u -u -r1.18 vmlinux.lds.S
--- linux/arch/i386/vmlinux.lds.S 30 Apr 2003 14:32:05 -0000 1.18
+++ linux/arch/i386/vmlinux.lds.S 2 May 2003 17:52:38 -0000
@@ -106,7 +106,6 @@

/* Sections to be discarded */
/DISCARD/ : {
- *(.exit.text)
*(.exit.data)
*(.exitcall.exit)
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/