Subject: kernel modules

From: David Kesselring <[email-masked]>
Date: Mon, 20 Oct 2003 10:32:08 -0400 (EDT)

Can someone please confirm that loading and unloading of kernel modules is
functioning in the  2.4 release?

When I try to load a wlan module that I compiled (with mipsel-*) I get
relocation errors. I used the same options as I did to compile the kernel
(for MIPS Malta board). If you have any ideas, please let me know.

David Kesselring
Atmel MMC
[email-masked]
919-462-6587

---

From: David Daney <[email-masked]>
Date: Mon, 20 Oct 2003 08:48:04 -0700

>(for MIPS Malta board). If you have any ideas, please let me know.
Works for me.

Using gcc 3.3.1 to compile modules, I had to upgrade to modutils-2.4.25 
and apply this patch to them:

On Thu, 16 Oct 2003 14:09:24 -0700, 
David Daney <[email-masked]> wrote:

>>Anyhow, I encountered a small problem trying to load a module compiled 
>>with gcc-3.3.1.  The module has dwarf debugging info and could not be 
>>loaded by insmod.  This patch causes MIPS_DWARF sections to be treated 
>>in the same manner as MIPS_DEBUG sections.
>>
>>Also there was a fall through in the case statement that caused error 
>>messages to be printed twice for "Unhandled section header type".
>  
>

Thanks.   I already have an equivalent patch in my development tree
(from Alvaro Martinez Echevarria).  It is waiting for me to get some
time to release modutils 2.4.26.

Index: 25.5/obj/obj_mips.c
--- 25.5/obj/obj_mips.c Fri, 01 Mar 2002 11:39:06 +1100 kaos (modutils-2.4/c/10_obj_mips.c 1.4 644)
+++ 26.2(w)/obj/obj_mips.c Sat, 05 Apr 2003 08:36:33 +1000 kaos (modutils-2.4/c/10_obj_mips.c 1.5 644)
@@ -74,7 +74,8 @@ arch_load_proc_section(struct obj_sectio
     {
     case SHT_MIPS_DEBUG:
     case SHT_MIPS_REGINFO:
-      /* Actually these two sections are as useless as something can be ...  */
+    case SHT_MIPS_DWARF:
+      /* Ignore debugging sections  */
       sec->contents = NULL;
       break;
 
@@ -83,10 +84,10 @@ arch_load_proc_section(struct obj_sectio
     case SHT_MIPS_GPTAB:
     case SHT_MIPS_UCODE:
     case SHT_MIPS_OPTIONS:
-    case SHT_MIPS_DWARF:
     case SHT_MIPS_EVENTS:
       /* These shouldn't ever be in a module file.  */
       error("Unhandled section header type: %08x", sec->header.sh_type);
+      return -1;
 
     default:
       /* We don't even know the type.  This time it might as well be a

David Daney

---

From: David Daney <[email-masked]>
Date: Mon, 20 Oct 2003 11:13:14 -0700

>(for MIPS Malta board). If you have any ideas, please let me know.
Modules also require compiling with -mlong-calls in addition to the 
"normal" kernel options.

David Daney.

---

From: Ralf Baechle <[email-masked]>
Date: Mon, 20 Oct 2003 20:39:22 +0200

> (for MIPS Malta board). If you have any ideas, please let me know.

You're _not_ using the same options as the kernel's Makefile does for
building modules.

  Ralf

---

From: Zhang Haitao <[email-masked]>
Date: Tue, 21 Oct 2003 05:00:33 +0800

> You're _not_ using the same options as the kernel's Makefile does for
Hi, modules compiled using these parameters are working on my 2.4.21 SMP 
kernel:

	CFLAGS="-I .../include/asm/gcc -D__KERNEL__ -I.../include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer 
-fno-strict-aliasing -fno-common -G 0 -mno-abicalls -fno-pic -mcpu=XX 
-mips2 -Wa,--trap -pipe -DMODULE -mlong-calls"

XX = your chip style

Zhang Haitao

---

From: David Kesselring <[email-masked]>
Date: Tue, 21 Oct 2003 08:34:20 -0400 (EDT)

Thanks for your responses. I will try your suggestions.

David Kesselring
Atmel MMC
[email-masked]
919-462-6587