Skip to contentSkip to conversation

start___kallsyms missing from i386 vmlinux.lds ?

PATCH Paul Gortmaker 3 participants 5 messages Jan 2, 2001 – Jan 3, 2001

lore
Share & tools
lore
#0 lore raw

Hi,

I wasn't sure if this was overlooked or left out intentionally.

Paul.

arch/i386/vmlinux.lds renamed from arch/i386/vmlinux.lds~ +4 -0
@@ -26,6 +26,10 @@
   __ksymtab : { *(__ksymtab) }
   __stop___ksymtab = .;
 
+  __start___kallsyms = .;	/* All kernel symbols */
+  __kallsyms : { *(__kallsyms) }
+  __stop___kallsyms = .;
+
   _etext = .;			/* End of text section */
 
   .data : {			/* Data */

--------------78FB7F1E1ED5961B194C9718--

__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#1 lore raw

arch/i386/vmlinux.lds line 31

Quoted 5 lines · Paul Gortmaker
arch/i386/vmlinux.lds renamed from arch/i386/vmlinux.lds~ +3 -0
+  __start___kallsyms = .;	/* All kernel symbols */
+  __kallsyms : { *(__kallsyms) }
+  __stop___kallsyms = .;

kernel/module.c defines
extern const char __start___kallsyms[] __attribute__ ((weak)); extern const char __stop___kallsyms[] __attribute__ ((weak));

The symbols are weak and do not need to be defined. If gcc is not honouring __attribute__ ((weak)) then you have a broken or obsolete version of gcc. You need at least gcc 2.91.66 for kernel 2.4.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw
Quoted 13 lines · Keith Owens

arch/i386/vmlinux.lds Mon Jan 1 07:55:50 2001

Quoted 5 lines · Paul Gortmaker
arch/i386/vmlinux.lds Mon Jan 1 07:55:50 2001 renamed from arch/i386/vmlinux.lds~ Fri Jul 7 03:47:07 2000 +3 -0
+  __start___kallsyms = .;     /* All kernel symbols */
+  __kallsyms : { *(__kallsyms) }
+  __stop___kallsyms = .;

kernel/module.c defines
extern const char __start___kallsyms[] __attribute__ ((weak)); extern const char __stop___kallsyms[] __attribute__ ((weak));

Quoted 3 lines

The symbols are weak and do not need to be defined. If gcc is not honouring __attribute__ ((weak)) then you have a broken or obsolete version of gcc. You need at least gcc 2.91.66 for kernel 2.4.

Yep, saw the weak part - just noted while scanning test11 diff that they were defined like the above patch for arch/sparc* and wondered if the inconsistency was intentional.

Thanks,
Paul.

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw
Quoted 5 lines · Paul Gortmaker
Quoted 4 lines · Keith Owens

kernel/module.c defines
extern const char __start___kallsyms[] __attribute__ ((weak)); extern const char __stop___kallsyms[] __attribute__ ((weak));

Quoted 7 lines
Quoted 3 lines

The symbols are weak and do not need to be defined. If gcc is not honouring __attribute__ ((weak)) then you have a broken or obsolete version of gcc. You need at least gcc 2.91.66 for kernel 2.4.

Yep, saw the weak part - just noted while scanning test11 diff that they were defined like the above patch for arch/sparc* and wondered if the inconsistency was intentional.

Some sparc users have a slightly older version of gcc, built shortly before 'weak' support was added, which required those symbols to be defined. Dave Miller thought the compiler problem was widespread enough to justify changing the source to suit the compiler instead of forcing sparc users to upgrade. I suspect that super-h has the same problem of old compilers, I noticed that somebody added the symbols to sh/vmlinux.lds.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#4 lore raw
Quoted 7 lines · Keith Owens

Some sparc users have a slightly older version of gcc, built shortly before 'weak' support was added, which required those symbols to be defined. Dave Miller thought the compiler problem was widespread enough to justify changing the source to suit the compiler instead of forcing sparc users to upgrade. I suspect that super-h has the same problem of old compilers, I noticed that somebody added the symbols to sh/vmlinux.lds.

I played with weak symbols recently. Couldn't get them to work on SH or MIPS, and gave up.

Signature · 7 lines
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/