cancel
Showing results for 
Search instead for 
Did you mean: 

AIX Unicode RFC woes

Former Member
0 Kudos

Hi All,

I put this request up on the SAPGenie forums thought that I might try here too. Just in case there are any SAP AIX C/C++ coders monitoring the forum :-).

Can anyone suggest where to go next?

Thanks,

Paul.

--- Message follows ---

Hi all,

Has anyone hit this problem before?

I'm building an application on AIX 5.1 with gcc 3.3.4 which (among many other things) uses the RFC SDK to dynamically call remote enabled BAPIS.

Everything is fine when using the non unicode librfc.a (I've no idea what the version is). However, then linking against the unicode library (<b>librfcu.a</b>) there are a number of undefined symbols that look like they should be defined in the system libs.

One such symbol is <b>__PureVirtualCalled</b>

A little digging with the -bnoquiet option in the linker and the offending symbols seem to relate to the object file cpictlib.o ala the line below

__PureVirtualCalled [300] ER DS nixxhs_r.i(../../../../Packages/aix/64/SAP/lib/librfcu.a[<b>cpictlib.o</b>])

Hunting further I turned up an old cpictlib.o (no idea where it came from) and took a chance by linking this file as well.

This solved my linking problems (had to make sure that the cpictlib.o file appears <i>before</i> the -lrfcu on the link line)

Unfortunately, this cpictlib.o file is not of the same stock as the Unicode SDK that I have. cpictlib.o uses <u>icu 2.0</u> where as the SDK I have uses <u>icu 2.6</u>. That means that when I try to run the application, cpictlib.o hits dynamic linking issues when looking for icu 2.0 symbols (e.g. u_errorname_2_0).

Finally, this leads to the following questions.

1. Has anyone hit this issue with undefined symbols while linking with librfcu.a on AIX? If so, were you able to get around the problem?

2. Is there a way around it without linking in cpictlib.o?

3. cpictlib.o was not packaged in the SDK I am using - should it be?

4. What SDK is cpictlib.o normally packaged with? I suspect it's the CPIC SDK and If so, How would one acquire it?

Yours, in anticipation,

Paul.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi All,

I've received the answer to my question from SAP support.

The issue ultimately comes down to libraries. Instead of linking against <b>librfcu.a</b> I should have been linking with <b>librfcum.o</b>.

For those who would like to know the entire recommended linking scenario, here it is (for the native AIX compiler and linking the sapinfo example program from the RFCSDK)

<b>xlC_r -q64 -brtl -bnortllib -LRFCSDK/lib librfcum.o libsapu16_mt.so libsapucum.so -o sapinfo sapinfo.o</b>

You may need to adjust the line (as I did) for your own compiler/linker setup.

The details for linking against all supported platforms are listed in a compiler options text file. Unfortunately this text file is not currently packaged with the unicode RFCSDK. I am assured the compiler options will be provided in the new RFCSDK patch.

I hope that this of some use to others on the list.

Cheers,

Paul.