Wed May 07 11:41:43 2014: Request 95417 was acted upon.
Transaction: Correspondence added by angan....@intel.com
       Queue: PAR-Packer
     Subject: RE: [rt.cpan.org #95417] Perl pp error: Seeking some info
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: angan....@intel.com
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=95417 >


Roderich,

Thanks for the quick response. Follow-up responses below:

- Angan

-----Original Message-----
From: Roderich Schupp via RT [mailto:bug-par-pac...@rt.cpan.org]
Sent: Wednesday, May 07, 2014 6:37 AM
To: Das, Angan
Subject: [rt.cpan.org #95417] Perl pp error: Seeking some info

<URL: https://rt.cpan.org/Ticket/Display.html?id=95417 >

On 2014-05-07 08:21:31, angan....@intel.com<mailto:angan....@intel.com> wrote:
> /usr/bin/perl -v
> This is perl, v5.8.8 built for x86_64-linux-thread-multi
...
> our environment by the env-team. And so what it implies is its already
> installed property and tested.
> /usr/intel/pkgs/perl/5.14.1/bin/pp

Then the above Perl version is irrelevant (that's the distro's Perl), this 
PAR::Packer (including the pp Perl script) were most likely built against a 
local (though pre-packaged) Perl installation (guessing from the filename, Perl 
5.14.1).  Could you please provide the output of 
"/usr/intel/pkgs/perl/5.14.1/bin/perl -v" and 
"/usr/intel/pkgs/perl/5.14.1/bin/perl -V".

> /usr/intel/pkgs/perl/5.14.1/bin/perl -v
This is perl 5, version 14, subversion 1 (v5.14.1) built for x86_64-linux

> /usr/intel/pkgs/perl/5.14.1/bin/perl -V
Summary of my perl5 (revision 5 version 14 subversion 1) configuration:

  Platform:
    osname=linux, osvers=2.6.16.60-0.58.1.1290.1.ptf.600981-smp, 
archname=x86_64-linux
    uname='linux plxc4090 2.6.16.60-0.58.1.1290.1.ptf.600981-smp #1 smp wed dec 
2 12:27:56 utc 2009 x86_64 x86_64 x86_64 gnulinux '
    config_args='-ds -e -Dprefix=/usr/intel/pkgs/perl/5.14.1 
-Dprivlib=/usr/intel/pkgs/perl/5.14.1/lib64/5.14.1 
-Dsitelib=/usr/intel/pkgs/perl/5.14.1/lib64/site_perl 
-Dotherlibdirs=/usr/intel/pkgs/perl/5.14.1/lib64/module/default -Dlibs=-lnsl 
-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -Dfull_csh=/usr/intel/bin/tcsh 
-Dfull_sed=/usr/intel/bin/gsed -Dlocincpth=/include /include -Dloclibpth=  
-Duseshrplib -Dcc=/usr/intel/pkgs/gcc/4.5.2/bin/gcc -Dccflags= -O2 -fPIC 
-I/usr/intel/pkgs/perl/5.14.1/include -L/usr/intel/pkgs/perl/5.14.1/lib64  
-Wl,-rpath=/usr/intel/pkgs/perl/5.14.1/lib64 -Dldflags= 
-L/usr/intel/pkgs/perl/5.14.1/lib64 
-Wl,-rpath=/usr/intel/pkgs/perl/5.14.1/lib64'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
…….

Characteristics of this binary (from libperl):
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
                        USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
  Built under linux
  Compiled at Nov 10 2011 08:25:50
  %ENV:
    
PERL5LIB="/p/foundry/eda/em64t_SLES10/oascript/v1.0-2011.10.19/perl5:/p/foundry/env/lib/perl/1.11/em64t_SLES10/lib:/p/foundry/env/lib/perl/1.11/em64t_SLES10/lib/site_perl:/p/foundry/env/proj_utils/lib/perl"
  @INC:
    /p/foundry/eda/em64t_SLES10/oascript/v1.0-2011.10.19/perl5
    /p/foundry/env/lib/perl/1.11/em64t_SLES10/lib/5.14.1
    /p/foundry/env/lib/perl/1.11/em64t_SLES10/lib
    /p/foundry/env/lib/perl/1.11/em64t_SLES10/lib/site_perl/5.14.1
    /p/foundry/env/lib/perl/1.11/em64t_SLES10/lib/site_perl/x86_64-linux
    /p/foundry/env/lib/perl/1.11/em64t_SLES10/lib/site_perl
    /p/foundry/env/proj_utils/lib/perl
    /usr/intel/pkgs/perl/5.14.1/lib64/site_perl/x86_64-linux
    /usr/intel/pkgs/perl/5.14.1/lib64/site_perl
    /usr/intel/pkgs/perl/5.14.1/lib64/5.14.1/x86_64-linux
    /usr/intel/pkgs/perl/5.14.1/lib64/5.14.1
    /usr/intel/pkgs/perl/5.14.1/lib64/module/default/x86_64-linux
    /usr/intel/pkgs/perl/5.14.1/lib64/module/default

Also check that the first line of /usr/intel/pkgs/perl/5.14.1/bin/pp is
#!/usr/intel/pkgs/perl/5.14.1/bin/perl
YES, it is so. All packages as per directory name are as per the Perl version.

I'm pretty confident that PAR::Packer builds (and works) correctly for the 
distro Perl of any major Linux distro (Redhat, Suse, Debian etc - some might 
even package PAR::Packer), but locally built Perl installations might be broken 
in subtle ways. This might not show with most Perl modules, but PAR::Packer is 
very peculiar and unlike any other Perl module.

That's why I asked for the "hello world" example. If this doesn't run in any 
scenario, you're PAR::Packer installation is definitely broken.
As I said earlier, it does work.

> - does the problem happen with a trivial script, e.g.
>
> $ pp -o hello.exe -e 'print "hello, world\n"'
> $ ./hello.exe
> Yes and no both. I tried running it on a different setup (basically
> some shell variables set) and it ran fine. I tried running it on a
> fresh xterm and it ran fine. However, its failing in some particular
> xterm in some particular setup.

When it fails - what's the error message?
As per my earlier email,
$ <output>.exe --help
Attempt to reload Scalar/Util.pm aborted.
Compilation failed in require at 
/usr/intel/pkgs/perl/5.14.1/lib64/5.14.1/Compress/Zlib.pm line 8.
BEGIN failed--compilation aborted at 
/usr/intel/pkgs/perl/5.14.1/lib64/5.14.1/Compress/Zlib.pm line 8.
Compilation failed in require at -e line 358.

Things to look out for are environment variables PERL5LIB (generally anything 
starting with PERL), PATH, LD_LIBRARY_PATH. Though - at least in theory - the 
resulting executable should be immune to these.


> Also, once compiled on Suse-64, will it run fine across all other OS-
> es – Redhat, Ubuntu, etc.

Yes. It's as portable to any other 64-bit Linux on the same hardware 
architecture as any executable that you built by compiling and linking a, say, 
C program. BTW, pp is not *compiling* your script in any way - it packs up the 
perl executable and all modules used (recursively) by your script into a zip 
and prepends the zip with a small program that will extract the stuff into a 
temp directory and run it from there.
Could you give a pointer to the temp file/directory created?

Cheers, Roderich


Reply via email to