|
From: Nicholas N. <nj...@ca...> - 2004-06-27 11:35:19
|
Hi, On my machine, it seems that /lib/tls/libc.so is always put at address 0x42000000. All other .so files seem to move around and get put near the base of the mmap-segment. Here's an example -- with Memcheck, here the mmap-segment starts at 0x1b8e4000, and all the other .so files are put around there, but /lib/tlc/libc.so isn't: 08048000-08049000 r-xp 00000000 00:0e 4309378 /auto/homes/njn25/grind/head6/mmap 08049000-0804a000 rw-p 00000000 00:0e 4309378 /auto/homes/njn25/grind/head6/mmap 1b8e4000-1b8f9000 r-xp 00000000 09:03 74918 /lib/ld-2.3.2.so 1b8f9000-1b8fa000 rw-p 00015000 09:03 74918 /lib/ld-2.3.2.so 1b8fb000-1b8fc000 rw-p 00000000 00:00 0 1b8fd000-1b8fe000 r-xp 00000000 00:0e 12496364 /auto/homes/njn25/grind/head6/coregrind/vg_inject.so 1b8fe000-1b8ff000 rw-p 00000000 00:0e 12496364 /auto/homes/njn25/grind/head6/coregrind/vg_inject.so 1b900000-1b905000 r-xp 00000000 00:0e 7789291 /auto/homes/njn25/grind/head6/memcheck/vgpreload_memcheck.so 1b905000-1b906000 rw-p 00004000 00:0e 7789291 /auto/homes/njn25/grind/head6/memcheck/vgpreload_memcheck.so 1b907000-1b908000 rw-p 00000000 00:00 0 1b913000-1b914000 rw-p 00000000 00:00 0 42000000-42130000 r-xp 00000000 09:03 75056 /lib/tls/libc-2.3.2.so 42130000-42133000 rw-p 00130000 09:03 75056 /lib/tls/libc-2.3.2.so 42133000-42136000 rw-p 00000000 00:00 0 This is a bit frustrating because it often cuts the mmap-segment into two pieces unnecessarily, which reduces the size of the biggest mmap that can be made. Any ideas why this might be so? I guess this could be mapped in with with MAP_FIXED... I tried tweaking things so that 0x42000000 isn't available to the client (by artificially inflating Memcheck's shadow memory needs) and I got this: date: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory It's probably out of our control, which I can live with, ok, but I am curious as to why this is happening. N |
|
From: Tom H. <th...@cy...> - 2004-06-27 12:07:33
|
In message <Pin...@he...>
Nicholas Nethercote <nj...@ca...> wrote:
> On my machine, it seems that /lib/tls/libc.so is always put at address
> 0x42000000. All other .so files seem to move around and get put near the
> base of the mmap-segment. Here's an example -- with Memcheck, here the
> mmap-segment starts at 0x1b8e4000, and all the other .so files are put
> around there, but /lib/tlc/libc.so isn't:
I thought this was something to do with prelinking as it doesn't
seem to happen on my FC2 box where prelinking is turned off, but
it doesn't happen on an FC1 box with prelinking on either.
It does happen on my RH9 box at work where I think libc is prelinked
although there is no daily cronjob to update prelinking like there
is in Fedora.
Looking at libc with objdump -p shows that the virtual addresses
for each section are set to those high numbers on RH9 but are set
to zero on the FC boxes.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Nicholas N. <nj...@ca...> - 2004-06-27 12:32:54
|
On Sun, 27 Jun 2004, Tom Hughes wrote: > I thought this was something to do with prelinking as it doesn't > seem to happen on my FC2 box where prelinking is turned off, but > it doesn't happen on an FC1 box with prelinking on either. > > It does happen on my RH9 box at work where I think libc is prelinked > although there is no daily cronjob to update prelinking like there > is in Fedora. > > Looking at libc with objdump -p shows that the virtual addresses > for each section are set to those high numbers on RH9 but are set > to zero on the FC boxes. I see, mine is a RH9 box. Thanks for the info. N |