Looks like partial success.  The shared library is no longer required on
standalone binaries, but the standalones won't work on older machines (eg,
machines with glibc version < 2.3).  Here's what I did:

I installed the newest snapshot:

[EMAIL PROTECTED] partest]$ grep $PAR::VERSION
   /usr/lib/perl5/site_perl/5.8.3/PAR.pm
$PAR::VERSION = '0.81';

Then I made a new standalone (let me know if you'd like 'pp -v' output as
well) and moved it to the target host, as before:

[EMAIL PROTECTED] partest]$ mv test test.old
[EMAIL PROTECTED] partest]$ pp -o test.new test.pl
[EMAIL PROTECTED] partest]$ ls -l test*
-rwxr-xr-x  1 wrhodes wrhodes 4699702 May  5 15:33 test.new
-rwxr-xr-x  1 wrhodes wrhodes 4704641 May  5 14:08 test.old
-rw-rw-r--  1 wrhodes wrhodes      44 May  5 14:06 test.pl
[EMAIL PROTECTED] partest]$ file test.new
test.new: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

[EMAIL PROTECTED] partest]$ scp test.new csecal1:/tmp
[EMAIL PROTECTED]'s password:
test.new                      100% 4589KB 730.3KB/s   00:06
[EMAIL PROTECTED] partest]$

So now I go run it:

[EMAIL PROTECTED]:/tmp $ ls -l test.new
-rwx------    1 wrhodes  staff     4699702 May  5 15:36 test.new
[EMAIL PROTECTED]:/tmp $ file test.new
test.new: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
[EMAIL PROTECTED]:/tmp $
[EMAIL PROTECTED]:/tmp $ ./test.new
./test.new: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required
by ./test.new)

Looks like I have an older version of glibc:

[EMAIL PROTECTED]:/tmp $ rpm -q glibc
glibc-2.2.5-44

But it works on the build host:

[EMAIL PROTECTED] partest]$ ./test.new
Hellow world.
[EMAIL PROTECTED] partest]$ rpm -q glibc
glibc-2.3.2-101.4

So I try it on another, more modern host that doesn't have perl but has a
newer glibc:

[EMAIL PROTECTED] partest]$ scp test.new corvus:/tmp
[EMAIL PROTECTED]'s password:
test.new                      100% 4589KB 730.7KB/s   00:06
[EMAIL PROTECTED] partest]$ ssh corvus
[EMAIL PROTECTED]'s password:
[EMAIL PROTECTED]:~ $ cd /tmp
[EMAIL PROTECTED]:/tmp $ uname -a; cat /etc/redhat-release
Linux corvus.ucsd.edu 2.4.22-1.2188.nptl #1 Wed Apr 21 20:36:05 EDT 2004
i686 i686 i386 GNU/Linux
Fedora Core release 1 (Yarrow)
[EMAIL PROTECTED]:/tmp $ rpm -q glibc
glibc-2.3.2-101.4
[EMAIL PROTECTED]:/tmp $ ls -l test.new
-rwx------  1 wrhodes staff 4699702 May  5 15:41 test.new
[EMAIL PROTECTED]:/tmp $ file test.new
test.new: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

[EMAIL PROTECTED]:/tmp $ ./test.new
Hellow world.

So I guess we're in business as long as I use a modern host as the target.
Trouble is, we have a lot of old Red Hat 7.3 machines laying around.  Is
there any way to tell it to expect a certain version of glibc?

-B


On Wed, 5 May 2004, Autrijus Tang via RT wrote:

> Full context and any attached attachments can be found at:
> <URL: http://rt.cpan.org/NoAuth/Bug.html?id=6236 >
>
> On Wed, May 05, 2004 at 05:35:33PM -0400, Bill Rhodes via RT wrote:
> > I've got the latest version of PAR (0.80), and experience no other trouble
> > vis-a-vis perl.
>
> This is a known problem and has been addressed in the latest snapshot:
>
>     http://p4.elixus.org/snap/PAR.tar.gz
>
> Please give it a thorough test, so I can be sure it does not regress
> when released as PAR 0.81.
>
> Thanks,
> /Autrijus/
>

Reply via email to