I don't believe that this is the correct solution.  The 'parrot' binary
needs to be linked to the correct library.  Currently it's being linked
against /usr/local/lib/libparrot.dylib instead of
blib/lib/libparrot.dylib.  For some reason it does this even when
blib/lib is specific to be searched first:

$ c++ -o parrot -L/Users/jhoblitt/parrot/blib/lib -L/usr/local/lib    \
compilers/imcc/main.o -lparrot  -lm -lreadline \
src/parrot_config.o
$ otool -L parrot
parrot:
        /usr/local/lib/libparrot.dylib (compatibility version 0.0.0, current 
version 0.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 88.1.2)
        /usr/lib/libedit.2.dylib (compatibility version 2.0.0, current version 
2.0.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
version 7.3.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 
1.0.0)
        /usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 
92.0.0)

The fix is to figure out how to make the linker behave.

-J

--
On Mon, Feb 20, 2006 at 07:21:32PM -0600, Joshua Isom wrote:
> I've spent a lot of time looking for something that would work(and 
> found some stuff that documentation seemed to say should work but 
> didn't for me), and on darwin, that's the only way I know how, either 
> that or a static parrot.  The only other option I can think of that 
> would perhaps do the trick would be far messier, i.e. have parrot load 
> libparrot.dylib instead of link against it.
> 
> On Feb 20, 2006, at 7:17 PM, Joshua Hoblitt wrote:
> 
> >Is there some reason that this can't be a -L flag passed to CC?  IMHO -
> >it's bad policy to go littering makefile with env variable declaration
> >as the effect is global until the end of the makefile.
> >
> >-J
> >
> >--
> >On Mon, Feb 20, 2006 at 06:40:24PM -0600, Joshua Isom wrote:
> >>It was working on 11676, and I got it to build with 11686.  But I
> >>notice one problem: "Library not loaded:
> >>/usr/local/lib/libparrot.dylib"
> >>
> >>On darwin, if you want a shared parrot, you must set DYLD_LIBRARY_PATH
> >>to include parrot's blib/lib.
> >>
> >>For tcsh(os x default), it'd be "setenv DYLD_LIBRARY_PATH
> >>blib/lib:$DYLD_LIBRARY_PATH" and for sh it'd be export
> >>DYLD_LIBRARY_PATH blib/lib:$DYLD_LIBRARY_PATH" if you're in the parrot
> >>root directory.
> >>
> >>On Feb 20, 2006, at 5:34 PM, Will Coleda (via RT) wrote:
> >>
> >>># New Ticket Created by  Will Coleda
> >>># Please include the string:  [perl #38597]
> >>># in the subject line of all future correspondence about this issue.
> >>># <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=38597 >
> >>>
> >>>
> >>>r11684
> >>>
> >>>make realclean
> >>>CXX='ccache g++-4.0'
> >>>CC='ccache gcc-4.0'
> >>>/usr/bin/perl Configure.pl --cc="$CC" --cxx="$CXX" --link="$CXX" --
> >>>ld="$CXX" --optimize --parrot_is_shared $@
> >>>
> >>>Generates the following error:
> >>>
> >>>src/parrot_config.c
> >>>'runtime/parrot/include/config.fpmc' is truncated. Remove it and
> >>>rerun make
> >>>make: *** [src/parrot_config.c] Error 255
> >>>
> >>>So, I follow the directions:
> >>>
> >>>CokeZero:~/research/parrot wcoleda$ rm runtime/parrot/include/
> >>>config.fpmc
> >>>CokeZero:~/research/parrot wcoleda$ make
> >>>Compiling with:
> >>>xx.c
> >>>ccache gcc-4.0 -I./include -g -pipe -fno-common -no-cpp-precomp -I/
> >>>usr/local/include -pipe -fno-common -Wno-long-double -
> >>>DDISABLE_GC_DEBUG=1 -DNDEBUG -Os -I/sw/include -I /usr/local/include 
> >>>-
> >>>Wall -Wstrict-prototypes -Wmissing-prototypes -Winline -Wpointer-
> >>>arith -Wcast-qual -Wcast-align -Wwrite-strings -Waggregate-return -
> >>>Winline -W -Wno-unused -Wsign-compare -Wformat-nonliteral -Wformat-
> >>>security -Wpacked -Wdisabled-optimization -falign-functions=16 -Wno-
> >>>shadow -DHAS_JIT -DPPC -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c
> >>>Invoking Parrot to generate runtime/parrot/include/config.fpmc --
> >>>cross your fingers
> >>>./miniparrot config_lib.pasm > runtime/parrot/include/config.fpmc
> >>>dyld: Library not loaded: /usr/local/lib/libparrot.dylib
> >>>  Referenced from: /Users/wcoleda/research/parrot/./miniparrot
> >>>  Reason: image not found
> >>>make: *** [runtime/parrot/include/config.fpmc] Error 133
> >>>
> >>>It's been this way for about a day. I can run the "which revision
> >>>introduced this bug" if no one sees anything obvious.
> >>>
> >>
> 

Attachment: pgptPrr0FeGtu.pgp
Description: PGP signature

Reply via email to