At 11:01 08/12/2005 -0800, you wrote:
# New Ticket Created by  jerry gay
# Please include the string:  [perl #37850]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37850 >


this is win32-msvc7. pbc_merge fails for tcl. here's the end of the
output from a tcl make session:

link -nologo -nodefaultlib -debug -dll -def:..\libparrot.def -out:tcl_group.dll -def:tcl_group.def "lib-tcl_group.obj" "tclobject.obj" "tclstring.obj" "tclint.o bj" "tclfloat.obj" "tcllist.obj" "tclarray.obj" oldnames.lib kernel32.lib user3 2.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib ole aut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.
lib odbccp32.lib msvcrt.lib  "D:/usr/local/parrot/trunk/parrot.lib"
LINK : LNK6004: tcl_group.dll not found or not built by the last incremental lin
k; performing full link
   Creating library tcl_group.lib and object tcl_group.exp
        D:\usr\local\perl\bin\perl.exe tcl.pl > lib\tcllib.pir
        ..\..\parrot.exe --output=lib\tcllib_temp.pbc lib\tcllib.pir
        ..\..\parrot.exe --output=lib\tclbinaryops.pbc lib\tclbinaryops.pir
        ..\..\parrot.exe --output=lib\tclcommand.pbc lib\tclcommand.pir
..\..\parrot.exe --output=lib\tclcommandlist.pbc lib\tclcommandlist.pir
        ..\..\parrot.exe --output=lib\tclconst.pbc lib\tclconst.pir
        ..\..\parrot.exe --output=lib\tclfunc.pbc lib\tclfunc.pir
        ..\..\parrot.exe --output=lib\tclops.pbc lib\tclops.pir
        ..\..\parrot.exe --output=lib\tclvar.pbc lib\tclvar.pir
        ..\..\parrot.exe --output=lib\tclword.pbc lib\tclword.pir
..\..\pbc_merge.exe -o lib\tcllib.pbc lib\tcllib_temp.pbc lib\tclbinaryo ps.pbc lib\tclcommand.pbc lib\tclcommandlist.pbc lib\tclconst.pbc lib\tclfunc.pb
c lib\tclops.pbc lib\tclvar.pbc lib\tclword.pbc
NMAKE : fatal error U1077: '..\..\pbc_merge.exe' : return code '0xc0000005'
Stop.

D:\usr\local\parrot\trunk\languages\tcl>

With MinGW32, the behavior is the same.
I analyze the problem with gdb :
pbc_merge.exe loads tcl_group.dll,
in Parrot_lib_tcl_group_load(), the first call of pmc_new() raises a segment fault.
pmc_new() is defined in pbc_merge.exe

I try a Nick Glencross's patch "Better support for libparrot.so" what use an another method for dynamic linking.
This patch is out of date (october), but seems solve the problem.

François.

~jerry


Reply via email to