SUMMARY Puzzling Perl 5.005_02 build problems with Solaris 2.5.1

From: Chin Fang (fangchin@leland.Stanford.EDU)
Date: Sun Nov 22 1998 - 23:57:41 CST


Dear fellow Sun Managers,

I have two helpful Sun Managers sent me their feedback, they are:

Greg Obremski <obremski@alpha.fdu.edu>
Michael Sullivan <mps@discomsys.com>

However, after checking the Makefile, my own $PATH, I figured out the
cause of the problem myself.

For some odd reasons, even the Makefiles for bothe IPC and Errno indicate
that the $(PERL) variable should be used, when creating the man pages,
the make actually went out and tried to grab the old version of Perl
from my $PATH.

Unfortunately, Perl 5.004_04 is not binary compatible with Perl 5.005_02,
and thus the symbol error.

I verified this by renaming perl in the system's /usr/bin and /usr/local/bin
from perl to perl.nouse when doing the sh Configure. Surely enough,
in the config.sh, the variable perl changed from '/usr/local/bin/perl' to
'perl'. After that, the error message changed from sh: perl not found :-)

I changed my $PATH to only /bin /usr/bin /usr/ccs/bin and the path to the
build directory. The build went on file without a hitch with both
Sun and egcs compilers.

I did my Perl configuration using

sh Configure -Dusethreads -Duseshrplib

Also, stdio is used rather than PerlIO. DO NOT believe everything in
the INSTALL file. It's simply not necessary to do the

LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH or
setenv LD_LIBRARY_PATH `pwd`

Also, for egcs 1.1b, a !vi config.sh is needed and get rid of all
-B/usr/ccs/bin/. It's simply not necessary and only *benefit* it has
is to create a lot harmless gcc complains.

I will try to dig further to see why the Makefile for IPC and Errno
bombed during the generation of man pages. If I figured out why, I
will file a bug report either to Sun or to Perl bug tracking team.

Regards,

Chin Fang
fangchin@leland.stanford.edu
----------------------------------- original question ----------------------
Dear fellow Sun Managers,
 
I am encountering a really puzzling problem in building the latest
Perl release (5.005_02) on two SS5s running Solaris 2.5.1 and hope to
get some help from the collective wisdom from the list.
 
The machines: one SS5 170 Mhz 2.5.1, patch level about half a years behind
              one SS5 110 Mhz 2.5.1, with most recommended patches
              one Ultra 10 333 Mhz 2.6 5/98, no patches
 
Compiler : Sun Workshop C 4.2 on the first SS5
              egcs-1.1b on the 110 Mhz SS5 and the Ultra 10
 
The problem : I don't have the luxury to bring all the machines to
              the same OS release and patch level at present, so
              I need to build Perl for all of them.
 
              However, on the Ultra 10, both the Perl build and test
              were successful. On the two SS5s running 2.5.1, even
              with two different compilers, I always got the following
              ld.so.1: perl: fatal: relocation error
 
              NOTE 1, I have never built GNU ld and as on these
              Sun systems, and they do not exist on them either.
 
              NOTE 2, even with the fatal ld.so.1 errors, on both
              SS5s, make test passed all tests successfully.
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
              NOTE 3, on all three machines, Perl is built with
              a shared version. I.e. sh Configure -Dusethread -Duseshrplib
 
The build errors:
 
Mainly in building IPC::SysV and Error
 
-----------------------------------------------------------------------------
....
        Making IPC::SysV (dynamic)
.... some removed
 
LD_RUN_PATH="" gcc -B/usr/ccs/bin/ -o ../../../lib/auto/IPC/SysV/SysV.so -G -L/
usr/local/lib SysV.o
gcc: file path prefix `/usr/ccs/bin/' never used
chmod 755 ../../../lib/auto/IPC/SysV/SysV.so
cp SysV.bs ../../../lib/auto/IPC/SysV/SysV.bs
chmod 644 ../../../lib/auto/IPC/SysV/SysV.bs
Manifying blib/man3/IPC::SysV.3
ld.so.1: perl: fatal: relocation error: file perl: symbol Perl_perl_destruct_lev
el: referenced symbol not found
Killed
Manifying blib/man3/IPC::Msg.3
ld.so.1: perl: fatal: relocation error: file perl: symbol Perl_perl_destruct_lev
el: referenced symbol not found
Killed
Manifying blib/man3/IPC::Semaphore.3
ld.so.1: perl: fatal: relocation error: file perl: symbol Perl_perl_destruct_lev
el: referenced symbol not found
Killed
 
....
        Making Errno (nonxs)
.....[some removed]
Manifying blib/man3/Errno.3
ld.so.1: perl: fatal: relocation error: file perl: symbol Perl_perl_destruct_lev
el: referenced symbol not found
Killed
-----------------------------------------------------------------------------
 
I would appreciate it very much for any hints. Even the tests were
all successful, I am so concerned by these errors that I have not
issued the make install on both SS5s yet.
 
Regards,
 
Chin Fang
fangchin@leland.stanford.edu



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:12:53 CDT