Subject: is there any docs/manuals for linker scripts symbols

From: <[email-masked]>
Date: Tue, 24 Jun 2003 06:00:16 -0400 (EDT)

Hi All,

Is there any documentation for the symbols in the ld.script linker
scripts for the linux kernel. 

I'm porting Linux kernel to a mips board for which I need to understand
the various symbols used in the kernel.

For example what is the use of the following symbols
`__init_begin'
`__init_end'
`__initcall_start
`__initcall_end'
`_ftext'
`__setup_start'
`__setup_end'

I'm not good in these linker scripts... any help pointers would be of
great help to me ! (I'm referrring gnu ld  manual pages ... still have a
long way to go :(

Thanks in advance !
Indu

---

From: Ralf Baechle <[email-masked]>
Date: Tue, 24 Jun 2003 14:00:18 +0200

> great help to me ! (I'm referrring gnu ld  manual pages ... still have a

You'll find more information in the GNU info pages than in the man page
which is sort of an option summary only.  Of course both only cover ld,
not the way it's actually being used in Linux.

_ftext is the start of the executable kernel code.  __init_begin and
__init_end wrap the kernel's initialization code which will be freed after
full initialization.  See arch/mips/mm/init.c:__init_begin() and
arch/mips/mm/init.c:free_initmem() for how it's used.

__initcall_start and __initcall_end are used for the initcalls in
init/main.c.  See how those symbols are used in init/main.c:do_initcalls().
__setup_start and __setup_end are used in similarly obscure way to mark
start and end of the .setup.init section; see init/main.c:checksetup()
and <linux/init.h> for it's use.

  Ralf

---

From: Fuxin Zhang <[email-masked]>
Date: Wed, 25 Jun 2003 10:01:25 +0800

info ld give much more information than man ld.

for those symbols,you need to learn something about ELF file format
(its concept of sections)

---

From: <[email-masked]>
Date: Wed, 25 Jun 2003 08:01:24 -0400 (EDT)

Thanks Ralf for your insights !

My board has a boot loader (rom) that enforce/restricts the sections in
the elf header, hence I cannot use the default linker script that comes
wit the kernel(arch/mips/). 

I'm refereing the ld manual at
http://www.gnu.org/manual/ld-2.9.1/html_mono/ld.html

I think your reply could be put as a howto/faqs in
http://www.linux-mips.org (for the global symbols
used in linux kernel).

Thanks,
Indu

---

From: Ralf Baechle <[email-masked]>
Date: Wed, 25 Jun 2003 14:18:01 +0200

> wit the kernel(arch/mips/). 

Are you sure the loader actually looks at the sections?  That seems plain
wrong.  Normally a loader should only look at all the PT_LOAD entries in
the ELF program header table for loading.

> http://www.linux-mips.org (for the global symbols

So many things that deserve some well written documentation - yet so little
exists ...

  Ralf