OK, I build perl@10517, and indeed if you just run ./miniperl, you will
run into symbol conflicts:
[moof:~/ufs/perl] wsanchez% ./miniperl configpm configpm.tmp
dyld: ./miniperl multiple definitions of symbol _Perl_ck_exec
./miniperl definition of _Perl_ck_exec
/System/Library/Perl/darwin/CORE/libperl.dylib(op.o) definition of
_Perl_ck_exec
and yes, this is because you are picking up the installed perl library
instead of ./libperl.dylib. This is correct behavior, and Configure
does set things up correctly. When make runs, it invokes it by setting
DYLD_LIBRARY_PATH. I use tcsh, so it's like so:
[moof:~/ufs/perl] wsanchez% env
DYLD_LIBRARY_PATH=/Users/wsanchez/ufs/perl ./miniperl configpm
configpm.tmp
Use of uninitialized value in concatenation (.) or string at
configpm line 19.
Use of uninitialized value in concatenation (.) or string at
configpm line 19.
Can't open : No such file or directory
I'm not getting the bus error others are seeing, just the above error.
(Final stretch of make output is below.) But I think the symbol problem
is a red herring; just remember to set DYLD_LIBRARY_PATH before trying
to debug, or you'll get that problem.
The actual problem I'm running into is that $config_pm appears to remain
undefined in configpm, which therefore craps out in line 19, which is
what Edward Moy is seeing. That is, miniperl is not setting $config_pm
after this line:
my $config_pm = $ARGV[0] || 'lib/Config.pm';
-Fred
`sh cflags libperl.dylib perlapi.o` perlapi.c
CCCMD = cc -DPERL_CORE -c -pipe -fno-common
-DHAS_TELLDIR_PROTOTYPE -Wall -fno-strict-aliasing -O3
cc -o libperl.dylib -dynamiclib
-compatibility_version 1
-current_version
5.0 -image_base
0x4be00000 -install_name
/System/Library/Perl/darwin/CORE/libperl.dylib perl.o gv.o toke.o
perly.o op.o regcomp.o dump.o util.o mg.o hv.o av.o run.o pp_hot.o sv.o
pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o
deb.o universal.o xsutils.o globals.o perlio.o perlapi.o
rm -f opmini.c
cp op.c opmini.c
`sh cflags libperl.dylib opmini.o` -DPERL_EXTERNAL_GLOB opmini.c
CCCMD = cc -DPERL_CORE -c -pipe -fno-common
-DHAS_TELLDIR_PROTOTYPE -Wall -fno-strict-aliasing -O3
rm -f opmini.c
DYLD_LIBRARY_PATH=/Users/wsanchez/ufs/perl cc -o miniperl \
miniperlmain.o opmini.o libperl.dylib -lm -lc
DYLD_LIBRARY_PATH=/Users/wsanchez/ufs/perl ./miniperl -w -Ilib
-MExporter -e '<?>' || make minitest
Use of uninitialized value in concatenation (.) or string at
lib/Exporter.pm line 38.
Use of uninitialized value in concatenation (.) or string at
lib/Exporter.pm line 38.
Use of uninitialized value in concatenation (.) or string at
lib/Exporter.pm line 40.
Use of uninitialized value in array dereference at lib/Exporter.pm line
41.
Use of uninitialized value in numeric gt (>) at lib/Exporter.pm line 41.
Use of uninitialized value in array dereference at lib/Exporter.pm line
43.
make: [extra.pods] Error 1 (ignored)
cat ext/re/re.pm > lib/re.pm
DYLD_LIBRARY_PATH=/Users/wsanchez/ufs/perl ./miniperl configpm
configpm.tmp
Use of uninitialized value in concatenation (.) or string at configpm
line 19.
Use of uninitialized value in concatenation (.) or string at configpm
line 19.
Can't open : No such file or directory
make: *** [lib/Config.pm] Error 2