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.
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.
-J
--
$ 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
--
> 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.
Not on my box, at least:
ls /usr/local/lib/*parrot*
ls: /usr/local/lib/*parrot*: No such file or directory
/usr/local/lib doesn't even exist on my system. The linker is doing
horribly bad things. Is there an OSX expert lurking this list?
-J
--