Operating System - Linux
1830156 Members
7783 Online
109999 Solutions
New Discussion

Compiling Perl-5.8.0 on HPUX 11.23 Itanium

 
SOLVED
Go to solution
MauriceConway
Advisor

Compiling Perl-5.8.0 on HPUX 11.23 Itanium

My experience with Perl is fairly low, so please bear with my basic line of questions.

I am compiling perl-5.8.0 on an hpux 11.23 itanium server and while configure seems to complete successfully, the make commands seem to all fail.

Its almost like they are not available. "make distclean" "make realclean" both give me this return "Make: Don't know how to make distclean. Stop.." respectively.

also, the last configure I ran, I ran without accepting defaults and looked and answered all the questions, in the end it said to run "make depend > makedepend.out &" to write it to a file and run it in the background, and here is the response I got "Make: Don't know how to make depend. Stop.".

So what am I missing here? I have a GCC compiler on the system "gcc version 4.0.2".

Any suggestions would be greatly appreciated.

Thank you.
18 REPLIES 18
H.Merijn Brand (procura
Honored Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

I think that there is either no Makefile generated, or that it is generated incorrect.

Did Configure (with a capital C) generate a config.sh?

And the public question: why 5.8.0, and not 5.8.8?
The hints HP-UX have been enhanced for Itanium. Fetching hints/hpux.sh from the most recent maint branche and using it instead of the 5.8.0 version might help.

You can get that one directly from here: ftp://downloads.activestate.com/pub/apc/perl-5.8.x/hints/hpux.sh

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Torsten.
Acclaimed Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Have a look at this:

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1030668

or ask procura ;-))

Hope this helps!
Regards
Torsten.

__________________________________________________
There are only 10 types of people in the world -
those who understand binary, and those who don't.

__________________________________________________
No support by private messages. Please ask the forum!

If you feel this was helpful please click the KUDOS! thumb below!   
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Thanks you two, here are answers to your questions.

It did create a Makefile, config.sh and Policy.sh files. How can I tell if the Makefile was generated correctly?

I am building a replacement server, the pre-existing perl on the pre-existing server is 5.8.0 and they do not want to go to 5.8.8 yet. I will be compiling both versions of Perl, Im just working on 5.8.0 at this time.

I am not sure how the hints/hpux.sh scripts work. I did move the 5.8.8 version into the 5.8.0 hints directory before this Configure, do I also need to move it into the build directory? do I need to manually execute the hpux.sh script? This part is pretty confusing to me, and none of my reading thus far has explained it in a way I understand completely.

There are two reasons not to use a pre-built versions, First they want me to use 5.8.0 source and compile it on hpux 11.23 Itanium server, and Secondly, its good practice for me. :)
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Looking over my Makefile I see entries for "depend" so Im confused as to why its not working. Here is the Makefile entry;

====================================
.PHONY: depend
depend: makedepend
sh ./makedepend MAKE=$(MAKE)
- test -s perlmain.c && touch perlmain.c
cd x2p; $(MAKE) depend
====================================


Any idea's why I would get:

====================================
server# make depend > makedepend.out
Make: Don't know how to make depend. Stop.

Stop.
server#
====================================

Thanks again, I really appreciate any help given.
H.Merijn Brand (procura
Honored Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Do you have GNU make? If not I strongly suggest you install that in a place in your $PATH before HP's one.

http://hpux.connect.org.uk/hppd/hpux/Gnu/make-3.80/

the hint file is to just replace hints/hpux.sh

# rm config.sh Policy.sh
# sh ./Configure ...

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Im using the system default make (/usr/bin/make linked too /usr/ccs/bin/make).

I am looking into installing GNU make now. I will followup with an update.

Thanks again.
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

ok, grabbed the source for gnu make 3.80 and compiled it and installed it into my home directory then created a temp link from the binary to /usr/local/bin/make to it.

I re-ran "./Configure -Dprefix=/path/to/Perl/build/perl-5.8.0 -Dcc=gcc -des" and let it run. When finished, I ran "make"

Make blows up with the following output;


Extracting config.h (with variable substitutions)
`sh cflags "optimize='-g -O'" miniperlmain.o` miniperlmain.c
CCCMD = gcc -DPERL_CORE -c -D_HPUX_SOURCE -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O -Wall
In file included from perl.h:681,
from miniperlmain.c:26:
/usr/include/sys/socket.h:535: error: static declaration of 'sendfile' follows non-static declaration
/usr/include/sys/socket.h:506: error: previous declaration of 'sendfile' was here
/usr/include/sys/socket.h:536: error: static declaration of 'sendpath' follows non-static declaration
/usr/include/sys/socket.h:508: error: previous declaration of 'sendpath' was here
*** Error exit code 1


Some quick google searching tells me others are having issues like this compiling other programs. I have recently compiled procmail, gzip, and today make without any problems, I have not compiled anything with the new gnu make yet.

any idea's?
H.Merijn Brand (procura
Honored Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

http://forums1.itrc.hp.com/service/forums/bizsupport/questionanswer.do?threadId=223217

ITRC search is also a good thing to try.
Above link is what I got when searching for /usr/include/sys/socket.h

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Steve Ellcey
Valued Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

The sendpath/sendfile errors are due to a bug in the HP header files. Somewhere in the compile process the macro _FILE_OFFSET_BITS is getting set, probably to 64. This is causing the /usr/include/sys/socket.h header file to declare these functions as extern, and then as static, and GCC gives an error. The HP compiler gives just a warning on this.

If the Perl Configure script is asking about large file support (greater than 4 Gig) or about using 64 bit file offsets, try saying no, then _FILE_OFFSET_BITS won't get set and you shouldn't have this problem.

The other option is to copy socket.h like in the string pointed to by the other poster and put the extern definitions of sendfile and sendpath under an "#ifndef _APP32_64BIT_OFF_T" conditional.
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Good morning, and thank you for the replies.

procura - I did what the poster in that link suggested and it did not work. I tried compiling with gcc, then with the hp's compiler, both failed with the same failure in my previous posting.

Steve Ellcey - I didnt know where to add the "ifndef" entry, there are lots of sendfile/sendpath lines in socket.h, so I opted for your other solution. I manually walked through the Configure, and made these choices based on your posting;

****************************************
Perl can be built to understand large files (files larger than 2 gigabytes)
on some systems. To do so, Configure can be run with -Duselargefiles.

If this doesn't make any sense to you, just accept the default 'y'.
Try to understand large files, if available? [y] n
****************************************

I then ran make depend, once it finished, I ran make and here is where it blew up using gcc;

****************************************
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm or lib/lib.pm.

cd t && (rm -f perl; /usr/bin/ln -s ../miniperl perl) \
&& ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t /bin/sh: 13320 Memory fault(coredump)
make: [minitest] Error 139 (ignored)
*** Error exit code 1 (ignored)
./miniperl -Ilib configpm configpm.tmp
*** Termination signal 139

Stop.
****************************************

and here with hpux compiler;

****************************************
cc -c -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -I/usr/local/include +O2 +Onolimit -DVERSION=\"2.04\" -DXS_VERSION=\"2.04\" +Z "-I../.." Storable.c
(Bundled) cc: warning 922: "-Ae" is unsupported in the bundled compiler, ignored.
(Bundled) cc: warning 922: "+O2" is unsupported in the bundled compiler, ignored.
(Bundled) cc: warning 922: "+Onolimit" is unsupported in the bundled compiler, ignored.
Error 168: "Storable.xs", line 1303 # Illegal types associated with operator
'==': 'sv *(**)(...)' and 'sv *(*[27])(stcxt *,char *)'.
cxt->hseen = ((cxt->retrieve_vtbl == sv_old_retrieve) ? newHV() : 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
make: *** [Storable.o] Error 2
*** Error exit code 2

Stop.
****************************************

Any suggestions?

also, how do I use this point system? is it 10 points can be awarded per day? if so, Im sorry for not awarding any yesterday, I'm new to this forum.

MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

procura - in one of your emails to me you mentioned grabbing a pre-compiled build of Perl from your site. I looked and cant find Perl 5.8.0 for hpux 11.23 Itanium. Do you only have 5.8.8 ?

Reason I need 5.8.0 and cant use 5.8.8 is Im replacing a server that has an existing version of Perl on it (5.8.0) and the users dont want to jump to 5.8.8 until they test their applications, etc. So they are requiring me to build 5.8.0 for them on this system initially.

Thank you.
H.Merijn Brand (procura
Honored Contributor
Solution

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

I'll see if I can build a 5.8.0 tomorrow.
Our 11.23 is pretty recent, so yes, so far 5.8.8 is the only available por.

What config do you need? 64bitall? threaded?

I'm hopeng for non-threaded 64bitall
Show me the output of the 5.8.0 version:

# perl -V

(capital V)

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Here is the output from Perl -V on the system thats being replaced.

********************************************
hostname> perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=hpux, osvers=11.11, archname=PA-RISC2.0-thread-multi
uname='hp-ux ml015 b.11.11 u 9000800 106901577 unlimited-user license '
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags =' -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
optimize='+O2 +Onolimit',
cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings'
ccversion='B.11.11.06', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='/usr/bin/ld', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lpthread -lc -lndir -lcrypt -lsec
perllibs=-lnsl -lnm -lmalloc -ldld -lm -lpthread -lc -lndir -lcrypt -lsec
libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Built under hpux
Compiled at Sep 22 2003 15:26:27
@INC:
/app/common/perl-5.8.0/lib/5.8.0/PA-RISC2.0-thread-multi
/app/common/perl-5.8.0/lib/5.8.0
/app/common/perl-5.8.0/lib/site_perl/5.8.0/PA-RISC2.0-thread-multi
/app/common/perl-5.8.0/lib/site_perl/5.8.0
/app/common/perl-5.8.0/lib/site_perl
.
hostname> uname -a
HP-UX ml012 B.11.11 U 9000/800 158901567 unlimited-user license
hostname>
********************************************

Does the above output tell you if its 64bit/threaded or not? If it doesnt, how can I tell?

Just to add a note too this discussion; I have attempted to compile this as both my self (non-super user) and as root (logged in directly, not su -) with the same results.

Thank you.
H.Merijn Brand (procura
Honored Contributor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Being root or not will only have a tiny influence on the results of the test suite, as some ping commands are only tested when beinge root (icmp is not allowed for non root) for example.

I fear the worst!
Your previous build is a 32bit threaded build:
--8<---
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
-->8---

Are you very very sure you want this on Itanium? Realy?
I would strongly advice to go for 64bitall non-threaded.

But before you make that decision: what is this perl going to be used for? Is there a DBD to be built? DBD::Oracle (and all other DBD's as well) can only connect to a database of the same bitness. So if you are also migrationg databases, and you have Oracle 9 or 10 on Itanium, you will have to check that it is 32bit, which is *very* unlikely. If it is 64bit, you will need a 64bit perl.

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

procura, just curious here, as I am unable to understand how to tell. How can you tell its 32bit and not 64?

Im looking to the other questions you asked now.
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

I figured out how you were able to tell. :)
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

64bitall non-threaded will work.

thank you procura, I really appreciate your assistance here.
MauriceConway
Advisor

Re: Compiling Perl-5.8.0 on HPUX 11.23 Itanium

Procura, I got it to compile.

I had to force 64bit and largefiles in the config for some reason. I also selected threading when asked, here is what my config looked like.

./Configure -Dprefix=/app/common/home/mnmiller/sandbox/perl-5.8.0_build -Dcc=gcc -Duselargefiles -Duse64bitall

it did not complain about anything during the make, and I dont think I failed any make test tests.

Thank you for taking the time to assist with my problems.