On 06/12/2012 09:08 AM, Richard Henderson wrote: > On 2012-06-07 13:59, Meador Inge wrote: >> load_addr = loaddr; >> if (ehdr->e_type == ET_DYN) { >> + if (loaddr < mmap_min_addr) >> + probe_guest_base(image_name, loaddr, hiaddr); > > This doesn't make any sense. loaddr is almost certainly 0, unless > you've pre-linked the ld.so image. But the next statement is letting > the system pick the address at which the image will be loaded.
It usually is. I just want guest_base to be computed to something that will work for cases where a fixed address image is later loaded (at which point it is too late to compute the guest_base). Always probing is one way I found to do that, but as I originally said I don't know this code very well so maybe that is not a good method. > I think this is one of those cases where the -B or -R options > (or QEMU_GUEST_BASE and QEMU_RESERVED_VA env variables) are the best > way forward for whatever cpu you're emulating. That or a change to > the target's default ld script, not to link real executables quite so > low in the address space. Hmmm, OK. I was really hoping to have something more automatic. Perhaps I will have to use the options. Thanks for the review. -- Meador Inge CodeSourcery / Mentor Embedded http://www.mentor.com/embedded-software