On Mon, Dec 05, 2005 at 01:34:43PM -0800, Bruce Korb wrote:
> On Thursday 01 December 2005 08:11 am, Bruce Korb wrote:
> > The call to scm_makstr() is faulting (every time for me):
> 
> Hi all,
> 
> I have now been able to recreate the failure on this call fairly
> often, but I have not found a cause.  Nevertheless, this call is
> only useful if you use SCM_CHARS() and that has been so strongly
> "deprecated" that the current development releases (1.7.x) of
> Guile emit warnings when it is used.  Rather than fight it, I have
> removed all usage of either of these for all variations of AutoGen.
> (Each version of Guile causes me to rewrite some portion of
> AutoGen.  1.7 is the worst yet, causing me several days of work.)
> 
> Upshot:  I now (finally) have a 1.7.x-ready version of AutoGen.
> Problem: still seg faults on Alpha Linux 2.2.  The issue:  mmap
> 
> Details:
> 
> When I mmap a file, I have to test for it being a multiple of the
> page size.  My "license.test" forces this for both the template
> and for the license text.  Both of these files get mmapped, so
> I use this test to verify proper functioning of mmap, too.
> 
> My mapping descriptor structure shows this:
> 
> (gdb) print *pMI
> $2 = {txt_data = 0x2000001c000, txt_size = 8192, txt_full_size = 16384,
>   txt_fd = 7, txt_zero_fd = -1, txt_errno = 0, txt_prot = 0, txt_flags = 0,
>   txt_alloc = 0}
> 
> Immediately before this call:
> 
>         pNuls = mmap(
>                 (void*)(((char*)pMI->txt_data) + pMI->txt_size),
>                 pgsz,
>                 PROT_READ|PROT_WRITE,
>                 MAP_ANONYMOUS|MAP_FIXED|MAP_SHARED, 0, 0 );
> 
> The address passed is:
> 
> (gdb) print 0x2000001c000+8192
> $5 = 0x2000001e000
> 
> According to my reading of the doc for mmap, this should work.  It does
> work on other platforms.  It also seg faults instead of returning ((void*)-1).
> Now, what?  :-(

If you don't want to require that users use a kernel that doesn't
misbehave like this, shouldn't you add an autoconf test that checks
for this behavior and falls back to some other method?

-- 
Matt

Attachment: signature.asc
Description: Digital signature

Reply via email to