"Joshua Isom (via RT)" <
parrotbug...@parrotcode.org> wrote:
>
> I tried building tcl today but got a failure in parrot, undefined
> symbol. It happens when first outputting the first pbc. I did a
> distclean and reconfigured without optimize or using ccache, but that
> didn't help. 'make dynclasses-test' tests dynlexpad and foo without
> problems(I did have to edit the Makefile to change the cwd to the right
> directory), but only pybuiltin.pmc uses Parrot_PMC_typenum.
>
> perl tools/
gen_lib.pl tcl.pir_template > lib/tcllib.pir
> ../../parrot --output=lib/tcllib_temp.pbc lib/tcllib.pir
> dyld: ../../parrot Undefined symbols:
> _Parrot_PMC_typenum
> make: *** [lib/tcllib_temp.pbc] Trace/BPT trap
>
Recently we stopped linking extend.obj into dynclasses. The meaning behind
this is that functions in extend.c should not be used in dynclasses; leo
explained on IRC that "these functions are just wrappers around existing
other APIs and shouldn't be used inside Parrot code".
Parrot_PMC_typenum has already been removed, thus why you got undefined
symbols warning - the symbol doesn't exist any more. I've just ci'd changes
to the tcl PMCs not to use Parrot_PMC_typenum and Parrot_call_sub, and they
now build again here (and should elsewhere). (Note to Coke/mdiep: hope I
fixed it right...)
If you could verify that it now builds on darwin, this can be closed up.
Thanks,
Jonathan