Closed GoogleCodeExporter closed 9 years ago
The mmap call actually failed in the configure script because the check of
return
address of mmap call failed. The testmmap is a copy of the configure test
program
edited for brevity while checking the return of mmap call.
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-stratus-vos"...
(gdb) break 181
Breakpoint 1 at 0x2d32: file testmmap.c, line 181.
(gdb) r
Starting program: /%Vighnesh#m6_d06/users>awarikoo>testmmap.pm
Breakpoint 1, main ()
at testmmap.c:181
181 if (data2 != data2_mmap)
(gdb) p data2
$1 = 0x40012000 ""
(gdb) p data2_mmap
$2 = (
void *) 0xffffffff
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) q
Original comment by bornlibr...@gmail.com
on 13 Jun 2009 at 4:10
You are definitely right that perftools currently needs a working mmap to run.
I
have HAVE_MMAP checks scattered about, to try to isolate as much of that out as
possible, but there's still a requirement in low_level_alloc.cc. (I'm also
probably
not as good as I could be in using HAVE_MMAP in the unittests.)
It's possible one could rewrite the low_level_alloc.cc code to use sbrk if
necessary,
but it's tricky. I'm not sure an extent-based allocator like sbrk is a good
fit for
what low_level_alloc does. If you want to give it a go, and submit a patch,
I'd be
happy to take a look!
But I think you what you really need to do is figure out why the configure test
is
failing. I recall sbrk doesn't work on your system either. If neither sbrk
nor mmap
works on your OS, you're going to have trouble running this library! Or any
program,
for that matter, since those are the only ways to get memory from the system
(your
malloc implementation has to be using one or the other of these). So I have to
assume mmap works, at least in some use cases, and it's just the configure test
that's failing to notice this or something. An alternative is that while sbrk
isn't
supported, brk or something is. If so, and you can figure out how your OS gets
memory from the kernel, maybe you can add another system allocator or something
to
handle it.
As for the configure script, the failure you point out is a real failure:
0xffffffff
is MAP_FAILED. But I'm looking in the perftools configure file and I don't see
any
reference to data2_mmap. Perhaps you added this in your rewrite of the
configure
script. To go any further, you'll need to attach a copy of testmmap.c.
Original comment by csilv...@gmail.com
on 14 Jun 2009 at 4:52
Hello Owner
I am attaching the build log & the tespmmap.c & pointertest.c
Original comment by bornlibr...@gmail.com
on 16 Jun 2009 at 10:20
Attachments:
I'm sorry, it looks like I never got back to this. I just saw it now!
I think this is an issue with OpenVOS -- perhaps it doesn't support mmap with a
non-NULL first argument?
One thing you can do is just change config.h to #define HAVE_MMAP, after running
configure. If you do that, can you successfully build perftools?
Original comment by csilv...@gmail.com
on 11 Sep 2009 at 6:54
Any more word on this?
Original comment by csilv...@gmail.com
on 14 Oct 2009 at 11:30
It's been about a year now, so I'm closing the bug WillNotFix. Feel free to
reopen if you would like to restart debugging this.
Original comment by csilv...@gmail.com
on 7 Jun 2010 at 10:43
Original issue reported on code.google.com by
bornlibr...@gmail.com
on 13 Jun 2009 at 3:16Attachments: