Hi... On Sun, Feb 24, 2013 at 8:56 AM, horseriver <horserivers@gmail.com> wrote:
I have find this answer . It is defined in lds script file .
here is the code : SECTIONS { . = 0xC0000000 + 0x100000; /* read-only */ _text = .; /* Text and read-only data */
why use 0xC0000000 as its start ? why not just use 0x100000 only ? if use 0xC0000000,every linked symbole will be prefixed by 0xc , what is the purpose ?
maybe because some symbols are object of relocation, so their address don't need to be incremented with 0xc000 0000. Different situation with startup_32. AFAIK it's doing many thing during early protected mode initialization, so its address must be set to certain number. -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com