[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Does the --enable-ansi config option work?
From: |
Mike Thomas |
Subject: |
Re: [Gcl-devel] Does the --enable-ansi config option work? |
Date: |
Wed, 7 Aug 2002 09:27:36 +1000 |
Hi Camm.
> BTW, I'm under the impression that Windows still has full
> functionality in this regard, as it apparently is able to use the
> relocation code in sfasl.c, which refers to a relocate() function
> provided in rel_coff.c. So this should not explain Mike's difficulty
> with the ansi build on Windows. BTW, what is the status here?
I've been very slowly making headway - please excuse the details below, but
I am only going beat this with outside insights.
As you know the bfd mode of linking does not work (By my initial reading on
PE-COFF and also judging from the responses you got recently this will
require considerable work).
"Rsym.exe" based object loading works for the traditional build of GCL (and
Maxima) but not the ANSI build due to problems in braid.lisp (see the printf
debugging output at the end of thise message).
The build dies while compiling "braid.lisp" when attempting to dereference a
function pointer in "call_or_link()" from which the debug messages come:
----------------------------------------------------------------------------
---void
call_or_link(object sym, void **link )
{object fun;
fun = sym->s.s_gfdef;
if (fun == OBJNULL) {FEinvalid_function(sym); return;}
if (type_of(fun) == t_cclosure
&& (fun->cc.cc_turbo))
{if (Rset==0) {MMccall(fun, fun->cc.cc_turbo);}
else (*(fun)->cf.cf_self)(fun->cc.cc_turbo);
return;}
if (Rset==0) funcall(fun);
else
if (type_of(fun) == t_cfun)
{ (void) vpush_extend( link,sLAlink_arrayA->s.s_dbind);
(void) vpush_extend( *link,sLAlink_arrayA->s.s_dbind);
*link = (void *) (fun->cf.cf_self);
fprintf ( stderr, "call_or_link: fun %x\n", fun );
fprintf ( stderr, "call_or_link: cf %x\n", fun->cf );
fprintf ( stderr, "call_or_link: cf_name %x\n", fun->cf.cf_name );
fprintf ( stderr, "call_or_link: cf_data %x\n", fun->cf.cf_data );
fprintf ( stderr, "call_or_link: cf_self %x\n", fun->cf.cf_self );
fflush ( stderr );
fprintf ( stderr, "call_or_link: staddr %x\n",
fun->cf.cf_name->st.st_self );
fprintf ( stderr, "call_or_link: ststring %s\n",
fun->cf.cf_name->st.st_self );
(*(void (*)())(fun->cf.cf_self))();
}
else funcall(fun);}
----------------------------------------------------------------------------
---
When I stop relocation of bss sections in "relocate_symbols()" (sfasld.c),
the crash occurs earlier in the compilation but in the same place and after
successfully compiling other files.
(The reason I tried this is that the CVS code actually prints a message
claiming "dont do bss" (sic), but then promptly falls through a case
statement into the default COFF relocation process which is at least partly
different to standard COFF. I don't understand what is going on there.)
Unfortunately gdb has a tendency to crash for me and Dr Mingw claims the
crash actually occurs in "main.c" when testing the *multiply-stacks*
variable.
Printf debugging seems to favour the gdb story.
Overall I am worried that the linking code was half finished and may
actually be part of this problem.
Cheers
Mike Thomas.
----------------------------------------------------------------------------
---
OPTIMIZE levels: Safety=1 (No runtime error checking), Space=0, Speed=3
Finished compiling c:/cvs/gcl/pcl/braid.o.
Loading binary of BRAID...
call_or_link: staddr 10523714
call_or_link: ststring ADD-METHOD-DECLARATIONS
call_or_link: fun 10322ff0
call_or_link: cf 14
call_or_link: cf_name 1023a1f8
call_or_link: cf_data 1017d244
call_or_link: cf_self 10344628
call_or_link: staddr 104fdfac
call_or_link: ststring EARLY-COLLECT-INHERITANCE
call_or_link: fun 103f8870
call_or_link: cf 2f7914
call_or_link: cf_name 10235e34
call_or_link: cf_data 10437cf8
call_or_link: cf_self 1043c28c
call_or_link: staddr 1051a43c
call_or_link: ststring MAKE-OPTIMIZED-STD-READER-METHOD-FUNCTION
call_or_link: fun 10322c30
call_or_link: cf 14
call_or_link: cf_name 1023fee8
call_or_link: cf_data 1017d3e8
call_or_link: cf_self 10333f4c
call_or_link: staddr 105095b4
call_or_link: ststring SET-FUNCTION-NAME
call_or_link: fun 103f8860
call_or_link: cf 2f7914
call_or_link: cf_name 10235ad4
call_or_link: cf_data 10437cf8
call_or_link: cf_self 1043c408
call_or_link: staddr 1051a3e4
call_or_link: ststring MAKE-OPTIMIZED-STD-WRITER-METHOD-FUNCTION
call_or_link: fun 103f8850
call_or_link: cf 2f7914
call_or_link: cf_name 10235ab0
call_or_link: cf_data 10437cf8
call_or_link: cf_self 1043c574
call_or_link: staddr 1051a38c
call_or_link: ststring MAKE-OPTIMIZED-STD-BOUNDP-METHOD-FUNCTION
call_or_link: fun 10322fc0
call_or_link: cf 14
call_or_link: cf_name 10235f9c
call_or_link: cf_data 10347dac
call_or_link: cf_self 1034c1a8
call_or_link: staddr 105310b0
call_or_link: ststring MAKE-CLASS-PREDICATE-NAME
call_or_link: fun 10322bb0
call_or_link: cf 14
call_or_link: cf_name 1031d18c
call_or_link: cf_data 1017d208
call_or_link: cf_self 1033d8fc
call_or_link: staddr 104fddac
call_or_link: ststring CCLOSURE-ENV-NTHCDR0ECD-OTHER-INITARGST
call_or_link: fun 10322b80
call_or_link: cf 14
call_or_link: cf_name 102aac84
call_or_link: cf_data 1017d208
call_or_link: cf_self 1033e1b4
call_or_link: staddr 104ff94c
call_or_link: ststring %SET-CCLOSURE
call_or_link: fun 103541d0
call_or_link: cf 543c14
call_or_link: cf_name 102353a8
call_or_link: cf_data 1043730c
call_or_link: cf_self 10480a20
call_or_link: staddr 10531138
call_or_link: ststring BOOTSTRAP-ACCESSOR-DEFINITION
call_or_link: fun 103f8ca0
call_or_link: cf 2f7914
call_or_link: cf_name 10193c3c
call_or_link: cf_data 10347604
call_or_link: cf_self 1041fefc
call_or_link: staddr 1051a048
call_or_link: ststring ENSURE-GENERIC-FUNCTION
call_or_link: fun 10322bb0
call_or_link: cf 14
call_or_link: cf_name 1031d18c
call_or_link: cf_data 1017d208
call_or_link: cf_self 1033d8fc
call_or_link: staddr 104fddac
call_or_link: ststring CCLOSURE-ENV-NTHCDR0ECD-OTHER-INITARGST
call_or_link: fun 10322bb0
call_or_link: cf 14
call_or_link: cf_name 1031d18c
call_or_link: cf_data 1017d208
call_or_link: cf_self 1033d8fc
call_or_link: staddr 104fddac
call_or_link: ststring CCLOSURE-ENV-NTHCDR0ECD-OTHER-INITARGST
call_or_link: fun 103f8cb0
call_or_link: cf 2f7914
call_or_link: cf_name 1023a318
call_or_link: cf_data 10347604
call_or_link: cf_self 1041f7e4
call_or_link: staddr 105231c8
call_or_link: ststring ANALYZE-LAMBDA-LIST
call_or_link: fun 103f8c60
call_or_link: cf 2f7914
call_or_link: cf_name 10235c18
call_or_link: cf_data 10347604
call_or_link: cf_self 10420ea4
call_or_link: staddr 10522ff4
call_or_link: ststring CHECK-METHOD-ARG-INFO
call_or_link: fun 10322a80
call_or_link: cf 14
call_or_link: cf_name 1023fda4
call_or_link: cf_data 10347dac
call_or_link: cf_self 1034b870
call_or_link: staddr 104fe150
call_or_link: ststring *SUBTYPEP
call_or_link: fun 10322bb0
call_or_link: cf 14
call_or_link: cf_name 1031d18c
call_or_link: cf_data 1017d208
call_or_link: cf_self 1033d8fc
call_or_link: staddr 104fddac
call_or_link: ststring CCLOSURE-ENV-NTHCDR0ECD-OTHER-INITARGST
call_or_link: fun 103f8c10
call_or_link: cf 2f7914
call_or_link: cf_name 1023a5a0
call_or_link: cf_data 10347604
call_or_link: cf_self 10423a98
call_or_link: staddr 1051601c
call_or_link: ststring
EARLY-METHOD-STANDARD-ACCESSOR-SLOT-NAMEINFOSET-DFUNSET-DFUN.FREE.35LIS11991
71T
call_or_link: fun 10322c30
call_or_link: cf 14
call_or_link: cf_name 1023fee8
call_or_link: cf_data 1017d3e8
call_or_link: cf_self 10333f4c
call_or_link: staddr 105095b4
call_or_link: ststring SET-FUNCTION-NAME
call_or_link: fun 103f8650
call_or_link: cf 2f7914
call_or_link: cf_name 10236d38
call_or_link: cf_data 10437a64
call_or_link: cf_self 1045298c
call_or_link: staddr 10516084
call_or_link: ststring MAKE-FINAL-ACCESSOR-DFUNMAKE-EARLY-ACCESSOR
call_or_link: fun 10354f80
call_or_link: cf 543c14
call_or_link: cf_name 10236d14
call_or_link: cf_data 10437a64
call_or_link: cf_self 10455494
call_or_link: staddr 10515fa8
call_or_link: ststring MAKE-ACCESSOR-TABLE
call_or_link: fun 103f87a0
call_or_link: cf 2f7914
call_or_link: cf_name 10235288
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044eeb8
call_or_link: staddr 10515fd8
call_or_link: ststring
MAKE-ONE-CLASS-ACCESSOR-DFUNEARLY-METHOD-STANDARD-ACCESSOR-SLOT-NAMEEARLY-ME
THOD-STANDARD-ACCESSOR-SLOT-NAMEINFOSET-DFUNSET-DFUN.FREE.35LIS1199171T
call_or_link: fun 103f8820
call_or_link: cf 2f7914
call_or_link: cf_name 1023d7e0
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044d160
call_or_link: staddr 10516774
call_or_link: ststring GET-DFUN-CONSTRUCTORWRAPPER1WRAPPER0ACCESSOR-TYPE.o
CACHE
call_or_link: fun 103f8eb0
call_or_link: cf 2f7914
call_or_link: cf_name 10235d5c
call_or_link: cf_data 10347640
call_or_link: cf_self 1040d018
call_or_link: staddr 10519070
call_or_link: ststring EMIT-READER/WRITER-FUNCTION
call_or_link: fun 103f8770
call_or_link: cf 2f7914
call_or_link: cf_name 10235264
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044f384
call_or_link: staddr 10515f04
call_or_link: ststring MAKE-FINAL-ONE-INDEX-ACCESSOR-DFUN
call_or_link: fun 103f8a40
call_or_link: cf 2f7914
call_or_link: cf_name 1023ac18
call_or_link: cf_data 10347ab4
call_or_link: cf_self 103fccb4
call_or_link: staddr 104fecf8
call_or_link: ststring
COMPUTE-CACHE-PARAMETERSLIMIT-FNMAKE-CACHE)MAKE-CACHE
call_or_link: fun 103f89f0
call_or_link: cf 2f7914
call_or_link: cf_name 1023abf4
call_or_link: cf_data 10347ab4
call_or_link: cf_self 10400b8c
call_or_link: staddr 104fea10
call_or_link: ststring FIND-FREE-CACHE-LINECOMPUTE-PRIMARY-CACHE-LOCATIONR
call_or_link: fun 103f8780
call_or_link: cf 2f7914
call_or_link: cf_name 10236f0c
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044f1a8
call_or_link: staddr 105166a4
call_or_link: ststring MAKE-ONE-INDEX-ACCESSOR-DFUNFILL-DFUN-CACHE
call_or_link: fun 103f8ea0
call_or_link: cf 2f7914
call_or_link: cf_name 10235d38
call_or_link: cf_data 10347640
call_or_link: cf_self 1040d1cc
call_or_link: staddr 10518fcc
call_or_link: ststring EMIT-ONE-OR-N-INDEX-READER/WRITER-FUNCTION
call_or_link: fun 103f8750
call_or_link: cf 2f7914
call_or_link: cf_name 10235bac
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044f614
call_or_link: staddr 10515ec4
call_or_link: ststring
MAKE-FINAL-N-N-ACCESSOR-DFUNMAKE-FINAL-ONE-INDEX-ACCESSOR-DFUN
call_or_link: fun 103f8760
call_or_link: cf 2f7914
call_or_link: cf_name 10236dec
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044f454
call_or_link: staddr 10516640
call_or_link: ststring MAKE-N-N-ACCESSOR-DFUN
call_or_link: fun 103f8790
call_or_link: cf 2f7914
call_or_link: cf_name 10235798
call_or_link: cf_data 10437a64
call_or_link: cf_self 1044f028
make[1]: *** [compile] Error 5
make[1]: Leaving directory `/c/cvs/gcl/pcl'
make: *** [pcl/saved_gcl_pcl] Error 2