From: Keith Owens <hidden> Date: 2000-08-01 06:40:49
Please cc: kaos@ocs.com.au on replies, I am not on this list.
I have been trying to find where ppc defines __start___ksymtab and
__stop___ksymtab symbols. These delimit the __ksymtab entries for
module symbols. On every other architecture that supports modules,
arch/xxx/vmlinux.lds contains lines like this
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
I can find no equivalent lines for ppc in a stock 2.4.0-test5 source
tree yet ppc obviously defines them somewhere. But where?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Please cc: kaos@ocs.com.au on replies, I am not on this list.
I have been trying to find where ppc defines __start___ksymtab and
__stop___ksymtab symbols. These delimit the __ksymtab entries for
module symbols. On every other architecture that supports modules,
arch/xxx/vmlinux.lds contains lines like this
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
I can find no equivalent lines for ppc in a stock 2.4.0-test5 source
tree yet ppc obviously defines them somewhere. But where?
I'm no gcc linkscript expert, but doesn't the absence of __ksymtab stuff in
vmlinux.lds simply mean that gcc can put stuff for section __ksymtab wherever
it wants in the final object file?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
From: Paul Mackerras <hidden> Date: 2000-08-03 06:13:46
I have been trying to find where ppc defines __start___ksymtab and
__stop___ksymtab symbols. These delimit the __ksymtab entries for
module symbols. On every other architecture that supports modules,
arch/xxx/vmlinux.lds contains lines like this
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
I can find no equivalent lines for ppc in a stock 2.4.0-test5 source
tree yet ppc obviously defines them somewhere. But where?
I think they must be defined automagically by the linker. They aren't
defined explicitly anywhere but we still end up with a __ksymtab
section with the __start___ksymtab and __stop___ksymtab symbols
defined at the beginning and end of it.
We can add those lines if you like, that's no problem.
Paul.
--
Paul Mackerras, Senior Open Source Researcher, Linuxcare, Inc.
+61 2 6262 8990 tel, +61 2 6262 8991 fax
paulus@linuxcare.com.au, http://www.linuxcare.com.au/
Linuxcare. Support for the revolution.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
From: Gabriel Paubert <hidden> Date: 2000-08-03 11:28:24
On Wed, 2 Aug 2000, Geert Uytterhoeven wrote:
On Tue, 1 Aug 2000, Keith Owens wrote:
quoted
Please cc: kaos@ocs.com.au on replies, I am not on this list.
I have been trying to find where ppc defines __start___ksymtab and
__stop___ksymtab symbols. These delimit the __ksymtab entries for
module symbols. On every other architecture that supports modules,
arch/xxx/vmlinux.lds contains lines like this
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab : { *(__ksymtab) }
__stop___ksymtab = .;
I can find no equivalent lines for ppc in a stock 2.4.0-test5 source
tree yet ppc obviously defines them somewhere. But where?
I'm no gcc linkscript expert, but doesn't the absence of __ksymtab stuff in
vmlinux.lds simply mean that gcc can put stuff for section __ksymtab wherever
it wants in the final object file?
Not exactly, it will use the read/write/exec attributes to match the area
and it will actually place kstrtab and ksymtab just after .rodata in the
case of the ppc kernel. So it's not completely random, but sometimes hard
to predict (if it does not find anything that matches, it will place it at
the end).
Regards,
Gabriel.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/