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

Reply via email to