After running make shared, make test fails nearly all of the t/src tests with errors like the following:
# Failed test (t/src/exit.t at line 21)
# got: './t/src/exit_1: error while loading shared libraries: libparrot
.so: cannot open shared object file: No such file or directory
# expected: 'pre-exit
# './t/src/exit_1' failed with exit code 127
This seems to be because the dynamic library search path isn't set at runtime, only compile-time. On Linux (the platform I'm using), this can be done by setting LD_LIBRARY_PATH to include blib/lib
Summary of my parrot 0.2.2 (r8738) configuration:
configdate='Sat Jul 30 02:14:49 2005'
cc='cc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
Linker and Libraries:
ld='cc', ldflags=' -L/usr/local/lib',
libs='-ldl -lm -lpthread -lcrypt -lrt -lgmp'
share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC',
load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC'
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=1 byteorder=1234,
nv=double, numvalsize=8, doublesize=8
HOME LANG LANGUAGE LC_CTYPE LD_LIBRARY_PATH LOGDIR PATH PERL5LIB PERL5_CPANPLUS_CONFIG SHELL
> This seems to be because the dynamic library search path isn't set at runtime, only compile-time. On Linux (the platform I'm using), this can be done by setting LD_LIBRARY_PATH to include blib/lib
Yep. But as you need the LD_LIBRARY_PATH anyway for running other parrot
programs, the usual way (I presume) is to just export this
LD_LIBRARY_PATH in your shell.
If would of course be nice, it that was done at least during testing.