Where does ppc define __start___ksymtab?

4 messages, 4 authors, 2000-08-03 · open the first message on its own page

Where does ppc define __start___ksymtab?

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/

Re: Where does ppc define __start___ksymtab?

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2000-08-02 20:18:08

On Tue, 1 Aug 2000, Keith Owens wrote:
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/

Re: Where does ppc define __start___ksymtab?

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/

Re: Where does ppc define __start___ksymtab?

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help