On Wed, Jul 14, 2010 at 12:30 AM, scott miller <[email protected]> wrote: >>> myldr/par is sitting at about 4.2 MB. >> >> Why is that so large? It should be about the size of your perl executable >> (because it is actually a special purpose Perl interpreter). > > Very good question, that is also the size of my perl binary, which is > about twice as larger than I'd expect... > > For comparison the version of perl that is distributed with HP IA64 > systems (called perl-dynamic...the standard perl binaries are symbolic > links to it) appears to be only about 22KB, which is much smaller than > I'd expect. The my_libperl.c that is produced with that perl > distribution still appears to be 38MB, but the my_par.c is > significantly smaller at 1.1MB.
If the perl executable is dynamically linked against a shared libperl*.so or similar, then par should be, too. The "standard" perl binary with a size of 22KB is almost certainly linked dynamically. In that case you should also see a file myldr/my_libperl.c which contains this libperl*.so stuffed into some static char arrays. If the perl executable is not dynamically linked against a libperl*.so then PAR::Packer should not have generated myldr/my_libperl.c. In any case, the par binary should be about the same size as the perl binary. my_par.c and my_libperl.c should be about 5 times the size of par and libperl*.so, resp. If your self-built perl and libperl*.so are much larger than the distributed versions, maybe the contain debug information? Cheers, Roderich
