Operating System - Linux
1748227 Members
4332 Online
108759 Solutions
New Discussion юеВ

Re: u_toupper_3_2 and u_tolower_3_2

 
SOLVED
Go to solution
reb
Occasional Advisor

u_toupper_3_2 and u_tolower_3_2

I'm trying to compile a perl module using aCC on HPUX 11.23 IA64, and using the HP-installed 32-bit perl 5.8.3. (The module is ARS 1.90).

I'm pretty new to Itanium, so there's a good chance that the problem is with me.

The module compiles with -Ae, with some warnings about using negative numbers in an unsigned int variable (hey - not my code...), but then refuses to load with undefined externals. I originally got errors on three routines:

'__cxa_personality_routine'
'u_toupper_3_2'
'u_tolower_3_2'

I was able to fix the "__cxa_personality_routine" error by adding '-lCsup' into the libraries variable in the makefile. The other two, I can not seem to fix. I have tried all of the following:

-lstd -lstream -lCsup -lm -lcl -ldld -lnsl -lnsl_s -lntl

(just sort of grasping at straws from other successful compiles and suggestions in other forum entries).

Does anyone know where to locate these two routines, or am I missing something more elementary than providing a path to a missing library?
6 REPLIES 6
TY 007
Honored Contributor
Solution

Re: u_toupper_3_2 and u_tolower_3_2

Hello,

>> the HP-installed 32-bit perl 5.8.3

Download & Install Latest HP Perl 5.8.8:
https://h20293.www2.hp.com/portal/swdepot/try.do?productNumber=PERL

Thanks
TY 007
Honored Contributor

Re: u_toupper_3_2 and u_tolower_3_2

Hello,

>> using aCC on HPUX 11.23 IA64

aCC version + patches?

# swlist -l bundle >> swlist.txt
# swlist -l product >> swlist.txt

Post swlist.txt file

Thanks
Dennis Handly
Acclaimed Contributor

Re: u_toupper_3_2 and u_tolower_3_2

I don't know about your "u_toupper*" unsats but these aren't HP-UX symbols.

If you need to search you can do:
$ nm -pxAN /usr/lib/hpux32/* path... | grep u_toupper_3_

>I was able to fix the __cxa_personality_routine error by adding -lCsup into the libraries variable in the makefile. I have tried all of the following:
-lstd -lstream -lCsup -lm -lcl -ldld

This is incorrect for IPF. It looks like PA.
The proper list aC++ plugins for -AA and IPF is:
-lstd_v2 -lCsup -lm -lunwind -ldld

See:
http://docs.hp.com/en/10946/distributing.htm#linking

>TY 007: aCC version + patches?

This isn't important since those symbols have nothing to do with aC++.
reb
Occasional Advisor

Re: u_toupper_3_2 and u_tolower_3_2

I found them - they are in the Remedy API files, but the perl module was trying to statically link in a PA-RISC archive. That's why the linker couldn't find the routines. Looks like the module authors only want to do a static link, but Remedy only supplies IA64 code in shared libraries. Ugh.

Thanks for your suggestions. I will read that link closely, as I've had more problems linking code on these new Itanium boxes in the last two months than I've had in the past 20 years on PA.javascript:postCloseThreadSubmit('submit')
Submit

reb
Occasional Advisor

Re: u_toupper_3_2 and u_tolower_3_2

By the way Dennis, I'm using -Ae, not -AA. This is straight ANSI c, and I'm using the cc component of the aCC package. I don't believe there is any C++ in this project at all. I'm not sure why I should need to add -lCsup to compile a C program, but right now I'm happy with "whatever works"...
Dennis Handly
Acclaimed Contributor

Re: u_toupper_3_2 and u_tolower_3_2

>I'm using -Ae, not -AA. This is straight ANSI C
>I'm not sure why I should need to add -lCsup to compile a C program

Then you need to follow the plugin rules. Or your shlib provider should follow them and make it easy to use from C.