Hi Roderich, my ultimate solution to this clash so far was to build Zlib.so with all .o files from libz.so around, and modifying the Makefile a little bit (I think there is also a lately added option in Compress::Zlib to build libz in the same run (of course only if it cannot be found), but I have not tried this). This way I get a self-contained Zlib.so.
But of course you are right, the problem should be addressed from the PAR side. Best regards, Markus >Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm >List-Post: <mailto:[EMAIL PROTECTED]> >List-Help: <mailto:[EMAIL PROTECTED]> >List-Unsubscribe: <mailto:[EMAIL PROTECTED]> >List-Subscribe: <mailto:[EMAIL PROTECTED]> >Delivered-To: mailing list [EMAIL PROTECTED] >Delivered-To: [EMAIL PROTECTED] >Subject: RE: Unable to run the exe on a non build machine >From: Roderich Schupp <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >Cc: [EMAIL PROTECTED] >Date: Mon, 20 Oct 2003 14:06:35 +0200 >MIME-Version: 1.0 >Content-Transfer-Encoding: 7bit >X-Spam-Check-By: one.develooper.com >X-Spam-Status: No, hits=-1.2 required=7.0 tests=CARRIAGE_RETURNS,IN_REP_TO,MAY_BE_FORGED,NOSPAM_INC,QUOTED_EMAIL_TEXT,REFE RENCES,SPAM_PHRASE_00_01 version=2.44 >X-SMTPD: qpsmtpd/0.26, http://develooper.com/code/qpsmtpd/ > >On Fri, 2003-10-17 at 15:31, [EMAIL PROTECTED] wrote: >> Roderich, >> I get the same error even after adding libz.so. The script I am >> converting is an interactive script. When I run it on the machine where I >> built it and interrupt it while it's runnig, I can see in the >> /tmp/par_priv....tmp/ directory all *.pm files including the libz.so. I read >> that the LD_LIBRARY_PATH will modified to include this temp directory. Any >> idea how I can debug this? > >Raj, >I dug a little deeper (using truss and the PAR source) and found >that explicitly packing libz.so won't help, because it is already >needed for unpacking the PAR (i.e. zip) archive that's included >in the executable. > >Actually, executing a PAR-packed exe works like this - >Autrijus correct me if I got this wrong: > >(1) exe creates a temp directory >(2) exe writes to files into this temp directory: > the shared perl library (e.g. libperl.so) and a small executable > called par; these files get extracted from C char[] arrays inside > the executable >(3) exec then sets LD_LIBRARY_PATH to the temp direcctory and execs par > with one argument: the name of the executable >(4) par is actually a mini-perl (linked against libperl.so), that > does some stuff in C, then eval's a Perl script contained in par >(5) this script extracts all modules that a required for PAR.pm to work > from the executable; the script can't use any modules >(6) the extracted stuff is somewhere packed into the executable, > but NOT in the included PAR; esp. this stuff is NOT zipped, as > extracting it would require libz >(7) (5) should no have produced an environment (in the temp directory) > so that PAR.pm can run, finally control is transferred to PAR.pm > to extract and execute your original script that's contained > in the PAR (i.e. zip) file that is the executable >(8) all modules/shared libs needed by the script are either extracted > internally (for modules, by hooking into @INC) from the PAR, or > are extracted upfronm into the temp directory (for shared libraries, > because the are loaded by the system's shared library loader) > >The problem is (5) above: PAR.pm uses Archive::Zip which uses >Compress::Zlib which has ashared library Zlib.so that links to >libz.so. Everything is there EXCEPT libz.so. If you explicitly >pack it, it would be extracted in (8), but execution never gets there >because it bombs out in (7) because of the missing libz. > >So for now, there's nothing you can do, PAR needs to be fixed. > >Cheers, Roderich > -- Markus Jansen Senior IS/IT Support Engineer, EED/IT Ericsson Eurolab Deutschland GmbH Email : [EMAIL PROTECTED] Ericsson Allee 1 Phone : +49 2407 575 5157 52134 Herzogenrath Fax : +49 2407 575 7289 Germany Mobile: +49 172 274 2003