cancel
Showing results for 
Search instead for 
Did you mean: 

Run PA-RISC program on Itanium

 
Highlighted
NickA
Occasional Collector

Run PA-RISC program on Itanium

Hello,

Customer's system: HP-UX 11.23 on IA64. 

Our current development system: HP-UX 11.23 on RISC 9000/800

We used to have a development system which matched the customer's system hardware, until a disk failure a few months ago (this was our last system with HP-UX 11.23 on IA64).  We have brought this old RISC 9000/800 out of 'retirement' in the hopes of being able to support the customer for a few months longer (they will be going through a major upgrade program later this year).

The programs in question are written in c and built using a number of shared libraries, including several items from Oracle's Tuxedo product.  We are hoping the programs will use Aries to allow our customer to run the PA-RISC built program to run on their hardware., but the customer is reporting a runtime error:

/usr/lib/pa20_64/dld.sl: '.../tuxedo/lib/libtux.sl' is not a valid load module: Bad machine type

I was thinking that perhaps static linking the programs would get round this problem - my thinking here was that it would avoid the need for the dynamic loader to try to pull in anything and we could then rely on Aries to do the dynamic translation.  Would this work?

Does anyone have other suggestions how we can get the programs to work under these circumstances.  

 

Any help would be greatfully received,

NickA

4 REPLIES 4

Re: Run PA-RISC program on Itanium

Sorry but Aries works the other way - it allows you ton run HP9000/PA-RISC executables on HP Integrity/IA64 systems.

There is no way to run an Itanium executable on a PA-RISC system.

If you need to support Itanium IA64 executables, you will need a HP Integrity server with Itanium CPUs... maybe look at eBay if you need something quick and super cheap? Otherwise I'm sure HPE would be happy mo sell you a new or refurbished Integrity server 


Accept or Kudo

Re: Run PA-RISC program on Itanium

Sorry just re-read this - what you are suggesting should work as long as you can static link everthing into a monolithic executable.

Or you could copy over the PA-RISC shared libraries into a different directory, and as long as you haven't hard coded the paths in the executable, just use a SHLIB_PATH env variable to ensure the PA shared libraries are picked up.

 


Accept or Kudo
NickA
Occasional Collector

Re: Run PA-RISC program on Itanium

Hi Duncan,

I think you misunderstood.  We want to run HP9000/PA-RISC executables on HP Integrity/IA64 systems.

Our IA64 system suffered a hardware failure, leaving us potentially unable to support a customer.  We are hoping to use our old PA-RISC system to provide that support for a short while.  The customer's IA64 system should be able to use Aries to run the PA-RISC executables, but instead the customer reports the 'Bad machine type' error when trying to dynamically load a shared library.

EDIT: I think our posts crossed.  Thanks for the advice.

ranganath ramachandra
Esteemed Contributor

Re: Run PA-RISC program on Itanium


/usr/lib/pa20_64/dld.sl: '.../tuxedo/lib/libtux.sl' is not a valid load module: Bad machine type

That libtux.sl is for ia64, your PA64 executable cannot use it.

Archive-bound build is generally recommended against; if you must link archive versions of certain libraries, use

 

"-a,archive -ltux"

 

or

 

"-l:libtux.a"

 

instead of only

 

"-ltux"​

 

on the link line, to pick up the archive version of only that library while continuing to link dynamic versions of others.

You'll have to do this for each shared library dependency that you don't expect to find PA64 versions of in the runtime environment.

The best way might be to install PA64 versions of all dependency packages (tuxedo, etc) on the production system (- or bundle them - ) along with your product and set library paths accordingly in the run time environment. This might not be feasible, hence the suggestion above.

 

 
--
ranga
(i work for hpe)