Michal Wallace <[EMAIL PROTECTED]> wrote:

> Hi all,

> I'm hoping this is just a simple linker option, but
> I've been reading "ld" manuals for the past few
> hours and I just don't get it. :)

> I'm trying to make a dynamically loaded PMC that
> subclasses another dynamically loaded PMC.

Its a linker problem, but not too simple. Your analysis is correct:
pistring needs the symbol Parrot_PiSequence_get_integer, so you have to
provide it:

I did something like this:

$ make -C dynclasses
$ cp dynclasses/pisequence.so blib/lib/libpisequence.so
$ cd dynclasses; cc -shared -L/usr/local/lib   -o pistring.so  \
  -I../include -I../classes  -L../blib/lib  -lparrot pistring.c \
  -lpisequence       ;  cd ..
$ cp dynclasses/pistring.so runtime/parrot/dynext/

$ parrot wl.imc   # run your test program
51
52

I also had -Wl,-E in the Makefile, when compiling pisquence. I don't
know if its necessary.

Another (untested) possibility: you could try to append the 2 pi*.c
files into another one and then compile the combined source to a shared
lib.

> Michal J Wallace

leo

Reply via email to