id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
856	segfault in pbc_merge	jkeenan	whiteknight	"This ticket was originally created as [http://rt.perl.org/rt3/Ticket/Display.html?id=50708 RT #50708] in February 2008 by Ryan Voots.  It was never fully resolved.  I am moving it into the Trac system at this time because the phenomenon described -- trying to run an executable from outside of the build tree -- sounds suspiciously like many of the install-related issues we'be been focusing on in the past month.  The language Voots was using in the original instance was Lua -- but the bug may not be limited thereto.

Original description:[[BR]]
'''When calling pbc_merge outside of the parrot root I encountered a segfault because pbc_merge cannot find lua_group.so, when run inside the parrot root it is able to find the .so inside the runtime directory.'''

'''A simple test case of this is to compile these two files to pbc's and then use pbc_merge on them outside the parrot root. I would think either an option to pbc_merge to tell it where to find the parrot runtime, or an envrionment variable might be appropriate, but a check should be made that it can find the needed files to merge and print an error when not found.'''
{{{
-----BEGIN main.pir-----
.HLL 'Lua', 'lua_group'

.sub _main :main
_testcall()
.end
------END main.pir------

-----BEGIN call.pir-----
.sub _testcall
print 42
.end
------END call.pir------
}}}
chromatic subsequently reported being unable to reproduce this bug, but Voots provided a backtrace done at r25855:
{{{
./pbc_merge -o parmud.pbc hello.pbc sockets.pbc

#0 0x00002b227d6aba6e in memcpy () from /lib/libc.so.6
#1 0x00002b227afad40e in string_make_direct (interp=0x60d010,
buffer=0x2b227b5569c8 """", len=397568, encoding=0x60e8a0,
charset=0x60ffe0,
flags=0) at src/string.c:742
#2 0x00002b227afad307 in string_make (interp=0x60d010,
buffer=0x2b227b5569c8 """", len=397568, charset_name=0x2b227b206d14
""ascii"",
flags=0) at src/string.c:691
#3 0x00002b227b07b48d in PF_fetch_string (interp=0x60d010, pf=0x986e70,
cursor=0x8f3188) at src/packfile/pf_items.c:673
#4 0x00002b227b06930f in shift_opcode_string (interp=0x60d010, io=0x986e30)
at src/pmc_freeze.c:802
#5 0x00002b227b176258 in Parrot_Class_thaw (interp=0x60d010, pmc=0x9521e0,
info=0x7fff2fe9db20) at ./src/pmc/class.pmc:1288
#6 0x00002b227b069cd2 in do_thaw (interp=0x60d010, pmc=0x9521e0,
info=0x7fff2fe9db20) at src/pmc_freeze.c:1228
#7 0x00002b227b06a4c5 in visit_todo_list_thaw (interp=0x60d010, old=0x0,
info=0x7fff2fe9db20) at src/pmc_freeze.c:1487
#8 0x00002b227b06a660 in visit_loop_todo_list (interp=0x60d010,
current=0x0,
info=0x7fff2fe9db20) at src/pmc_freeze.c:1551
#9 0x00002b227b06a9fa in run_thaw (interp=0x60d010, image=0x8f3168,
what=VISIT_THAW_NORMAL) at src/pmc_freeze.c:1688
#10 0x00002b227b06acf2 in Parrot_thaw (interp=0x60d010, image=0x8f3168)
at src/pmc_freeze.c:1808
#11 0x00002b227b06571a in PackFile_Constant_unpack_pmc (interp=0x60d010,
constt=0x97d200, self=0x986c00, cursor=0x97b028) at src/packfile.c:3492
#12 0x00002b227b065668 in PackFile_Constant_unpack (interp=0x60d010,
constt=0x97d200, self=0x986c00, cursor=0x97af38) at src/packfile.c:3446
#13 0x00002b227b065371 in PackFile_ConstTable_unpack (interp=0x60d010,
seg=0x97d200, cursor=0x97af30) at src/packfile.c:3242
#14 0x00002b227b06257e in PackFile_Segment_unpack (interp=0x60d010,
self=0x97d200, cursor=0x97a5b0) at src/packfile.c:1552
#15 0x00002b227b062b26 in directory_unpack (interp=0x60d010, segp=0x978d30,
cursor=0x97a590) at src/packfile.c:1728
#16 0x00002b227b06257e in PackFile_Segment_unpack (interp=0x60d010,
self=0x978d30, cursor=0x978ff0) at src/packfile.c:1552
#17 0x00002b227b061268 in PackFile_unpack (interp=0x60d010, self=0x978d30,
packed=0x978f90, packed_size=16496) at src/packfile.c:859
#18 0x00000000004016ba in pbc_merge_loadpbc (interp=0x60d010,
fullname=0x7fff2fe9e6bd ""hello.pbc"") at src/pbc_merge.c:262
#19 0x000000000040297e in main (argc=2, argv=0x7fff2fe9e0b0)
at src/pbc_merge.c:884
}}}
... and then commented: ''while outside of the parrot svnroot, creating a symlink to parrot/runtime in the current directory is a work around (it can then find the lua_group.so)''"	bug	closed	normal		install	1.3.0	medium	fixed	pbc_merge		lua		
