On Mon, 9 Sep 2002, H.Merijn Brand wrote:

[HP-UX 11.00, GNU gcc-3.2]

> >     cd languages/perl6
> >     make
> 
> For gcc (which was the last I used) I got :(
> 
> /usr/bin/ld -o imcc  imcparser.o imclexer.o imc.o stacks.o symreg.o instructions.o 
>cfg.o sets.o debug.o anyop.o  ../../platform.o -lcl -lpthread -lnsl -lnm -lmalloc 
>-ldld -lm -lndir -lcrypt -lsec

(My fault.  imcc needs to be built with $(LINK), not $(LD).  I'll send a
patch separately.)

> /usr/bin/ld -shared  -L/usr/local/lib  -o blib/lib/libparrot.so exceptions.o 
>global_setup.o interpreter.o parrot.o register.o core_ops.o core_ops_prederef.o 
>memory.o packfile.o stacks.o string.o sub.o encoding.o chartype.o runops_cores.o 
>trace.o pmc.o key.o hash.o core_pmcs.o platform.o resources.o rx.o rxstacks.o 
>intlist.o embed.o warnings.o misc.o core_ops_cg.o packout.o byteorder.o debug.o 
>smallobject.o headers.o dod.o method_util.o io/io.o io/io_buf.o io/io_unix.o 
>io/io_win32.o io/io_stdio.o classes/array.o classes/boolean.o classes/continuation.o 
>classes/coroutine.o classes/csub.o classes/default.o classes/intlist.o 
>classes/intqueue.o classes/key.o classes/multiarray.o classes/perlarray.o 
>classes/perlhash.o classes/perlint.o classes/perlnum.o classes/perlstring.o 
>classes/perlundef.o classes/pointer.o classes/sub.o encodings/singlebyte.o 
>encodings/utf8.o encodings/utf16.o encodings/utf32.o chartypes/unicode.o 
>chartypes/usascii.o -lcl -lpthread -lnsl -lnm -lmalloc -ldld!
 -!
> lm -lndir -lcrypt -lsec
> /usr/bin/ld: (Warning) Can't hide symbol "ared"
> /usr/bin/ld: Unsatisfied symbols:
>    memset (first referenced in interpreter.o) (code)
>    __ftello64 (first referenced in exceptions.o) (code)
>    strerror (first referenced in core_ops.o) (code)
>    memcpy (first referenced in register.o) (code)
>    abort (first referenced in core_ops.o) (code)
> :
> :
> :
> Again, my fingers have to do the right thing:

Soon, parrot will use perl5's $Config{ld} and $Config{lddlflags} which are
variables designed for just this purpose of building shared libraries.

> /usr/ccs/bin/ld: DP relative code in file /usr/ccs/lib/crt0.o - shared library must 
>be position
>     independent.  Use +z or +Z to recompile.

This is a bigger (but very real!) problem.  Building a shared library is
not simply repackaging the existing objects.  If we want to build a shared
library, we should re-compile the components with -fpic or equivalent. The
actual variable we need is perl5's $Config{cccdlflags}.

> Back to you guys.

I'd like to hand this one off to someone who understands why we have to
build a shared library in the first place and what, eventually, we might
have to do with it.  (For example, what's the plan for platforms that
can't do dynamic loading?)
 
-- 
    Andy Dougherty              [EMAIL PROTECTED]
    Dept. of Physics
    Lafayette College, Easton PA 18042

Reply via email to