Hi Eric, On 7/6/06, Eric W. Biederman <[EMAIL PROTECTED]> wrote: > "Magnus Damm" <[EMAIL PROTECTED]> writes: > > On 7/6/06, Vivek Goyal <[EMAIL PROTECTED]> wrote: > >> On Fri, Jun 30, 2006 at 05:45:58PM +0900, Magnus Damm wrote: > >> > Here comes a working snapshot of some relocation code that I've been > >> > hacking on lately. I've only tested the code in qemu-system-i386, but > >> > x86_64 and other architectures may work too. > > > > [snip] > > > >> Looks like we are relocating everything including absolute symbols. As long > >> as absolute symbols are representing address, its fine (like __bss_start) > >> but if they happen to represent a value which is not supposed to change > >> due to loading of vmlinux at a different address, it will be an issue. > > > > Yes, all symbols should be relocated by my patch. That may of course > > be wrong, but in my mind symbols were only used to represent code or > > data that is present at a certain address. So when the base address is > > changed all symbols should be adjusted as well. > > > > I understand that it is possible to create a symbol that points to a > > fixed address say mapping some hardware resource, but is that a > > strategy currently used by Linux? > > Nope absolute symbols should not be changed in particular you will > mess up the linux-gate.so and the like.
I did some more research and it looks like I'm wrong. So absolute symbols should be handled in a different way - I'll modify patches to get that working. The absolute symbols we are talking about are the ones that could be extracted from vmlinux with the following line, right? readelf -s vmlinux | grep ABS | grep -v FILE > >> Eric had posted a patch in the past which made some the absolute symbols > >> section relative. > >> > >> http://marc.theaimsgroup.com/?l=linux-kernel&m=112266670613361&w=2 > > > > Nice. > > > > I actually came across that patch a while ago, but I'm not sure how > > much it will help with my current "relocate all symbols" strategy. If > > we treat absolute symbols differently from relative then I'm sure the > > patch will help. > > It's needed. Yes. =) > > I've attached a newer version of the kernel patch. The kallsyms > > utility is probably unchanged, but a CONFIG_RELOCATABLE variable has > > been introduced together with some modpost changes. > > > > The patch builds both on i386 and x86_64. I am however unable to > > relocate the kernel using my patched kexec tool on x86_64 right now. > > I think this is a really bad idea for x86_64, because it strongly > limits us to where we can relocate the kernel at run time. > (More later) While at it, please explain what you think is a bad idea. The idea that kexec-tools does the relocation or that my patch is badly implemented? Or both? =) Thanks for the comments! / magnus _______________________________________________ fastboot mailing list [email protected] https://lists.osdl.org/mailman/listinfo/fastboot
