Re: [PATCH 8/33] kallsyms.c: Generate relocatable symbols.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Paulo Marques <[email protected]> writes:

> Eric W. Biederman wrote:
>> Print the addresses of non-absolute symbols relative to _text
>> so that ld will generate relocations.  Allowing a relocatable
>> kernel to relocate them.  We can't actually use the symbol names
>> because kallsyms includes static symbols that are not exported
>> from their object files.
>> [...]
>>  	output_label("kallsyms_addresses");
>>  	for (i = 0; i < table_cnt; i++) {
>> -		printf("\tPTR\t%#llx\n", table[i].addr);
>> +		if (toupper(table[i].sym[0]) != 'A') {
>> +			printf("\tPTR\t_text + %#llx\n",
>> +				table[i].addr - _text);
>> +		} else {
>> +			printf("\tPTR\t%#llx\n", table[i].addr);
>> +		}
>
> Doesn't this break kallsyms for almost everyone?
>
> kallsyms addresses aren't used just for displaying, but also to find symbols
> from their addresses (from the stack trace, etc.).
>
> Am I missing something?

Yes, you are missing something.  This fixes the addresses in the table.

All this does is to put the same values in kallsyms that we have now
but it creates relocations for them.   So on a kernel where we process
relocations before loading (because we are running the kernel at a
different virtual address).  The processing of the relocations will
fix kallsyms to match the running kernel.

If we don't do this we will have the problems you are worried about.

Of course I would be overjoyed if you could point out a bug like
you are worried about so I could fix it :)

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux