Puzzling Perl 5.005_02 build problems with Solaris 2.5.1

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

[6977 byte] By [CodeProf.com] at [2007-12-25 11:51:00]