Hello, Community!
I try another things to make statically linked executable
using PAR.
I convert my dynamically linked perl to staticperl
executable using http://www.team-teso.net/releases/reducebind.c
Then I copy this staticperl to /usr/bin and change perl
symlink from perl5.8.0 to this executable. Then I reinstall
PAR and try do do statically linked executable. But
I get same result - executable was dynamically linked.
Then I try recompile PAR statically - using attached patch,
but get such things:
cc -c -O3 -funroll-all-loops -fomit-frame-pointer -ffast-math -march=i686 -pipe -Wall
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/lib/perl5/5.8.0/i386-linux/CORE main.c
/usr/bin/staticperl5.8.0 ./file2c.pl ../script/par.pl my_par_pl.c load_me_2 1
cc -c -O3 -funroll-all-loops -fomit-frame-pointer -ffast-math -march=i686 -pipe -Wall
-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/lib/perl5/5.8.0/i386-linux/CORE my_par_pl.c
cc main.o my_par_pl.o -static -s -rdynamic -L/usr/local/lib
/usr/lib/perl5/5.8.0/i386-linux/auto/DynaLoader/DynaLoader.a
-L/usr/lib/perl5/5.8.0/i386-linux/CORE -lperl -lnsl -ldl -lm -lc -lcrypt -lutil
--output par
./par -I"/usr/local/src/CPAN/PAR/PAR-0.70/inc" -I"/usr/lib/perl5/5.8.0/i386-linux"
-I"/usr/lib/perl5/5.8.0" -I"/usr/lib/perl5/site_perl/5.8.0/i386-linux"
-I"/usr/lib/perl5/site_perl/5.8.0" -I"/usr/lib/perl5/site_perl"
-I"/usr/local/src/CPAN/PAR/PAR-0.70" -I"." -I../myldr/.. -I../blib/lib -B
-O../script/parl
Can't load '/usr/lib/perl5/5.8.0/i386-linux/auto/Fcntl/Fcntl.so' for module Fcntl:
/usr/lib/perl5/5.8.0/i386-linux/auto/Fcntl/Fcntl.so: undefined symbol: PL_sv_undef at
/usr/lib/perl5/5.8.0/i386-linux/XSLoader.pm line 83, <_FH> chunk 1.
at /usr/lib/perl5/5.8.0/i386-linux/Fcntl.pm line 214
Compilation failed in require at par.pl line 561, <_FH> chunk 1.
make[1]: *** [../script/parl] Error 255
make[1]: Leaving directory `/usr/local/src/CPAN/PAR/PAR-0.70/myldr'
make: *** [subdirs] Error 2
par in myldr successfully compiled - statically linked:
ldd par
not a dynamic executable
but then process fail.
Any ideas?
--
Best regards,
Vladimir Yu. Tereshchenko [Registered Linux UIN #198978]
TNU, Centre of Computer Technology ICQ UIN: 73046562
diff -Nrau PAR-0.70/myldr/Makefile.PL PAR-0.70.NEW/myldr/Makefile.PL
--- PAR-0.70/myldr/Makefile.PL 2003-07-29 09:41:01.000000000 +0300
+++ PAR-0.70.NEW/myldr/Makefile.PL 2003-07-30 14:17:43.000000000 +0300
@@ -87,13 +87,13 @@
print OUT << "EOT";
# AUTOGENERATED, DO NOT EDIT, RERUN Makefile.PL
-RM=$rm
+RM=$rm -f
MV=$mv
PERL=$perl
LD=$ld
CC=$cc
-CFLAGS=$cflags
-LDFLAGS=$ldflags
+CFLAGS=-O3 -funroll-all-loops -fomit-frame-pointer -ffast-math -march=i686 -pipe
-Wall$cflags
+LDFLAGS=-static $ldflags
NOOP=\$(PERL) -e1
OBJECTS=main$o my_par_pl$o $res