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?  :-(

I have a new "pre" release:

  http://autogen.sourceforge.net/data/autogen-5.8pre8.tar.gz

that has these changes.

Regards, Bruce


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to