Yes it's a AIX 5.3 (technical level 10)
AIX linker option -bE includes an export file of shared library listing the global symbols.
FYI:
http://publib.boulder.ibm.com/infocenter/comphelp/v9v111/index.jsp?topic=/com.ibm.xlcpp9.aix.doc/getstart/new_features.htm
Yes that's right I'm using a 32bit Perl installation on a 64bit hardware and kernel. But that should doesn't matter.
That's a development host and all target hosts may have not a 64bit environment, so I've to use the 32bit version.
Here are the debugging information:
# dbx par
(dbx) stop at 134
[1] stop at "main.c":134
(dbx) run -I../blib/lib -q -B -O../script/parldyn
[1] stopped in main at line 134 in file "main.c" ($t1)
134 exitstatus = perl_parse(my_perl, par_xs_init, argc + options_count - 1, fakeargv, (char **)NULL);
(dbx) where
main(argc = 5, argv = 0x2ff22bdc, env = 0x2ff22bf4), line 134 in "main.c" (dbx) dump
main(argc = 5, argv = 0x2ff22bdc, env = 0x2ff22bf4), line 134 in "main.c"
argno = 4
exitstatus = -559038737
i = 5
__func__ = "main"
(dbx) p my_perl
0x3000fb78
(dbx) p par_xs_init
par_xs_init
(dbx) p argc
5
(dbx) p options_count
4
(dbx) p fakeargv[0]
"par"
(dbx) p fakeargv[1]
"-e"
(dbx) p fakeargv[2]
"#!/usr/bin/perl\neval 'exec /usr/bin/perl -S $0 ${1+"$@"}'\n if 0; # not running under some shell\n\npackage __par_pl;\n\n# --- This script must not use any modules at compile time ---\n# use strict;\n\n#line 158\n\nmy ($par_temp, $progname, @tmpfile);\nEND { if ($ENV{PAR_CLEAN}) {\n require File::Temp;\n require File::Basename;\n require File::Spec;\n my $topdir = File::Basename::dirname($par_temp);\n outs(qq{Removing files in "$par_temp"});\n File::Find::finddepth(sub { ( -d ) ? rmdir : unlink }, $par_temp);\n rmdir $par_temp;\n # Don't remove topdir because this causes a race with other apps\n # that are trying to start.\n\n if (-d $par_temp && $^O ne 'MSWin32') {\n # Something went wrong unlinking the temporary directory. This\n # typic
[truncated]
(dbx) p fakeargv[3]
"--"
(dbx) p fakeargv[4]
"-I../blib/lib"
(dbx) p fakeargv[5]
"-q"
(dbx) p fakeargv[6]
"-B"
(dbx) p fakeargv[7]
"-O../script/parldyn"
(dbx) n
program terminated by signal 9
(dbx) quit
Execution of perl_parse at line 134 of myldr/main.c terminates myldr/par with signal 9.
This error occur in perl v5.12.1 and AIX 5.3 default perl package v5.8.2
Here is the make output of perl v5.8.2:
cp lib/PAR/Packer.pm blib/lib/PAR/Packer.pm
cp lib/PAR/StrippedPARL/Base.pm blib/lib/PAR/StrippedPARL/Base.pm
cp lib/PAR/Filter/PodStrip.pm blib/lib/PAR/Filter/PodStrip.pm
cp lib/PAR/Filter/Obfuscate.pm blib/lib/PAR/Filter/Obfuscate.pm
cp lib/App/Packer/PAR.pm blib/lib/App/Packer/PAR.pm
cp lib/PAR/Filter.pm blib/lib/PAR/Filter.pm
cp lib/PAR/StrippedPARL/Dynamic.pm blib/lib/PAR/StrippedPARL/Dynamic.pm
cp lib/PAR/Filter/PatchContent.pm blib/lib/PAR/Filter/PatchContent.pm
cp lib/PAR/Filter/Bytecode.pm blib/lib/PAR/Filter/Bytecode.pm
cp lib/pp.pm blib/lib/pp.pm
cp lib/PAR/Filter/Bleach.pm blib/lib/PAR/Filter/Bleach.pm
cp lib/PAR/StrippedPARL/Static.pm blib/lib/PAR/StrippedPARL/Static.pm
make[1]: Entering directory `/tmp/.cpan/build/PAR-Packer-1.006/myldr'
perl sha1.c.PL sha1.c
cc_r -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -I/usr/opt/p
erl5/lib/5.8.2/aix-thread-multi/CORE -DPARL_EXE=\"parl\" -O main.c
perl ./file2c.pl ../script/par.pl my_par_pl.c load_my_par_pl 0
cc_r -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -I/usr/opt/p
erl5/lib/5.8.2/aix-thread-multi/CORE -DPARL_EXE=\"parl\" -O my_par_pl.c
cc_r main.o my_par_pl.o -bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp
-bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp -bE:/usr/opt/perl5/lib/
5.8.2/aix-thread-multi/CORE/perl.exp -bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/C
ORE/perl.exp -brtl -b32 -bmaxdata:0x80000000 /usr/opt/perl5/lib/5.8.2/aix-thread-mu
lti/auto/DynaLoader/DynaLoader.a -L/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE -l
perl -lbind -lnsl -ldl -lld -lm -lpthreads -lc_r -lcrypt -lbsd -lPW -o ./par
perl -e1
perl ./file2c.pl ./par my_par.c load_my_par 0 30000
perl ./file2c.pl /usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/libperl.a my_libperl
.c load_my_libperl 0 30000
cc_r -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias
-DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -I/usr/opt/p
erl5/lib/5.8.2/aix-thread-multi/CORE -DPARL_EXE=\"parl\" -O static.c
cc_r static.o -bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp -bE:/usr/o
pt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.exp -bE:/usr/opt/perl5/lib/5.8.2/aix-t
hread-multi/CORE/perl.exp -bE:/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE/perl.ex
p -brtl -b32 -bmaxdata:0x80000000 /usr/opt/perl5/lib/5.8.2/aix-thread-multi/auto/Dy
naLoader/DynaLoader.a -L/usr/opt/perl5/lib/5.8.2/aix-thread-multi/CORE -lbind -lnsl
-ldl -lld -lm -lpthreads -lc_r -lcrypt -lbsd -lPW -o ./static
perl -e1
perl parlsig.pl ./static ./par 1 30000
perl run_with_inc.pl ./static -I../blib/lib -q -B -O../script/parl
perl -e "chmod(oct('0600'), '../blib/lib/PAR/StrippedPARL/Static.pm');"
perl encode_append.pl ./static ../blib/lib/PAR/StrippedPARL/Static.pm
perl -e "chmod(oct('0444'), '../blib/lib/PAR/StrippedPARL/Static.pm');"
perl run_with_inc.pl ./par -I../blib/lib -q -B -O../script/parldyn
make[1]: Leaving directory `/tmp/.cpan/build/PAR-Packer-1.006/myldr'
./par: execution of ./par failed - aborting with -1.
BEGIN failed--compilation aborted at -e line 966.
system failed: exit=1792 error= at run_with_inc.pl line 6.
make[1]: *** [../script/parldyn] Error 7
make: *** [subdirs] Error 2
Directory PAR-Packer-1.006/script includes
-rwxr-xr-x 1 2000 2000 29524 Jun 13 19:10 par.pl
-rwxr-xr-x 1 root system 3191047 Jul 12 14:16 parl
-rwxr-xr-x 1 2000 2000 4413 Jun 13 19:10 parl.pod
-rwxr-xr-x 1 2000 2000 63 Jun 13 19:10 pp
-rwxr-xr-x 1 2000 2000 28825 Jun 13 19:10 tkpp
Cheers, Emanuel
Show quoted text-----Ursprüngliche Nachricht-----
Von: RSCHUPP via RT [mailto:bug-PAR-Packer@rt.cpan.org]
Gesendet: Montag, 12. Juli 2010 10:06
An: Reisinger Emanuel
Betreff: [rt.cpan.org #59224] make error with version 1.006 on aix 5.3
<URL:
https://rt.cpan.org/Ticket/Display.html?id=59224 >
On 2010-07-12 00:57:27, Emanuel.Reisinger@ils.at wrote:
This is AIX, right? Sorry, I can't help you there because I don't have
access to such a machine. Also, CPAN Testers doesn't have a history
of anyone having built PAR::Packer there. Anyway, here are some
general remarks:
The warnings "ld: 0711-319 WARNING: Exported symbol not defined"
for the command
> cc -q32 static.o -bE:/usr/opt/perl5/lib/5.12.1/aix/CORE/perl.exp
> -brtl -bdynamic -L/usr/local/lib -b32 -bmaxdata:0x80000000
> -L/usr/opt/perl5/lib/5.12.1/aix/CORE -lbind -lnsl -ldl -lld -lm
> -lcrypt -lc -o ./static
are probably harmless. But that's just a guess, because I don't know
the meaning of AIX-specific options like -bE:...
Anyway this is a standalone executable that uses only
standard C library fucntions.
./par (built 3 commands eralier) is another matter. This is
actually a special purpose Perl interpreter. But compiling
and linking it seems to have been successful.
But it looks like your using a 32bit Perl installation in a
64bit user space?
Try debugging ./par, you probably need to rebuild it first with
debugging enabled. At least run ./par under a debugger and
try to get a stack trace or something.
Cheers, Roderich