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

Reply via email to