Transformer compilation error in AIX

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
chanaka
Premium Member
Premium Member
Posts: 96
Joined: Tue Sep 15, 2009 4:06 am
Location: United States

Transformer compilation error in AIX

Post by chanaka »

Hi Experts,

Recently we have upgraded the OS from AIX 6.1 to AIX 7.1. We are using IBM Information Server v 9.1.2. While compiling PX jobs, it started giving below errors. We are certain that this is due to a compiler problem. However, wondering how to resolve the issue.

Diagnostic details:
> /usr/Xvacpp/bin/xlC_r -qversion
IBM XL C/C++ for AIX, V10.1
Version: 10.01.0000.0000

> uname -a
AIX hostname 1 7 00CFEBA74C00

> lslpp -l | grep "vac.C"; lslpp -l | grep "vacpp.cmp.core"; lslpp -l | grep "xlC.aix*"
xlC.aix61.rte 13.1.3.1 COMMITTED IBM XL C++ Runtime for AIX 6.1



Compiler Errors:
Output from transformer compilation follows:

##I IIS-DSEE-TFCN-00001 07:32:25(000) <main_program>
IBM InfoSphere DataStage Enterprise Edition 9.1.0.6791
Copyright (c) 2001, 2005-2012 IBM Corporation. All rights reserved



##I IIS-DSEE-TFCN-00006 07:32:25(001) <main_program> conductor uname: -s=AIX; -r=1; -v=7; -n=fcnaswdbu2; -m=00CFEBA74C00
##I IIS-DSEE-TOSH-00002 07:32:25(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 07:32:25(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 07:32:25(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 07:32:25(007) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##E IIS-DSEE-TBLD-00076 07:32:28(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 256.
##E IIS-DSEE-TFSR-00019 07:32:28(001) <main_program> Could not check all operators because of previous error(s)
##W IIS-DSEE-TFTM-00012 07:32:28(002) <transform> Error when checking composite operator: The number of reject datasets "0" is less than the number of input datasets "1".
##W IIS-DSEE-TBLD-00000 07:32:28(003) <main_program> Error when checking composite operator: Output from subprocess: "/xenv/XLC/X/10.1/AIX5.3/usr/vacpp/include/string.h", line 74.20: 1540-0403 (S) "strcpy(char *, const char *)" is already defined.

##W IIS-DSEE-TBLD-00000 07:32:28(004) <main_program> Error when checking composite operator: Output from subprocess: "/usr/include/string.h", line 423.17: 1540-0425 (I) "strcpy" is defined on line 423 of "/usr/include/string.h".

##I IIS-DSEE-TBLD-00079 07:32:28(005) <transform> Error when checking composite operator: /xenv/XLC/X/10.1/AIX7.1/usr/vacpp/bin/xlC_r -O -I/opt/IBMDS91/InformationServer/Server/PXEngine/include -O -q64 -qtbtable=full -c /opt/IBMDS91/InformationServer/Server/Projects/SIT_FCC/RT_BP994.O/V0S2_CPPXCompile_Transformer_2.C -o /opt/IBMDS91/InformationServer/Server/Projects/SIT_FCC/RT_BP994.O/V0S2_CPPXCompile_Transformer_2.tmp.o.
##W IIS-DSEE-TBLD-00000 07:32:28(006) <main_program> Error when checking composite operator: Output from subprocess: "/xenv/XLC/X/10.1/AIX5.3/usr/vacpp/include/string.h", line 27.20: 1540-0424 (I) "strcpy" is declared on line 27 of "/xenv/XLC/X/10.1/AIX5.3/usr/vacpp/include/string.h".

##W IIS-DSEE-TBLD-00000 07:32:28(007) <main_program> Error when checking composite operator: Output from subprocess: "/usr/include/string.h", line 47.18: 1540-0424 (I) "strcpy" is declared on line 47 of "/usr/include/string.h".

##W IIS-DSEE-TBLD-00000 07:32:28(008) <main_program> Error when checking composite operator: Output from subprocess: "/usr/include/string.h", line 212.26: 1540-0424 (I) "strcpy" is declared on line 212 of "/usr/include/string.h".

..
..
..

##E IIS-DSEE-TCOS-00029 07:32:28(531) <main_program> Creation of a step finished with status = FAILED. (CPPXCompile.Transformer_2)

*** Internal Generated Transformer Code follows:
0001: //
0002: // Generated file to implement the V0S2_CPPXCompile_Transformer_2 transform operator.
0003: //
0004:
0005: // define our input/output link names
0006: inputname 0 DSLink3;
0007: outputname 0 DSLink4;
0008:
0009: initialize {
0010: // define our control variables
0011: int8 RowRejected0;
0012: int8 NullSetVar0;
0013:
0014: // declare our intermediate variables for this section
0015: string InterVar0_0;
0016:
0017: // initialise constant values which require conversion
0018: InterVar0_0 = "TEST";
0019: }
0020:
0021: mainloop {
0022:
0023: // initialise the rejected row variable
0024: RowRejected0 = 1;
0025:
0026: // evaluate columns (no constraints) for link: DSLink4
0027: DSLink4.c1 = (DSLink3.c1 + InterVar0_0);
0028: writerecord 0;
0029: RowRejected0 = 0;
0030: }
0031:
0032: finish {
0033: }
0034:
*** End of Internal Generated Transformer Code
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Well... while I can't help with the specifics, it's known that DataStage is very particular about the compilers that will work with it. In your shoes I would be in contact with support, if you haven't already, but in the meantime I would check to see what exact compilers are supported by your DS version on AIX. You may need to upgrade DS or perhaps install the older version of the compiler? Heck if I know but we've seen many posts of issues similar to yours when someone attempts to use an "unsupported" compiler vendor or version. :(
-craig

"You can never have too many knives" -- Logan Nine Fingers
chanaka
Premium Member
Premium Member
Posts: 96
Joined: Tue Sep 15, 2009 4:06 am
Location: United States

Post by chanaka »

Thanks for the reply Craig.

I was told that the support for DS 9.1.2 on AIX was already reached the contract end time. Only help available is from the local unix SAs. BTW, I did try to compile a sample c++ program through the command line. That is also giving the same error. Unfortunately, still unable to find any solution from anywhere in the web.
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Okay. But you should still be able to find out for your DS version and old O/S what compiler(s) are officially supported if the current one isn't to see if there's some way to get back to a working state. Another option could be to roll back to the previous O/S release for this server since it breaks DataStage (since I assume that's an important consideration) at least until you can upgrade DataStage to something that's actually supported and also supports that current O/S release. Food for thought.
-craig

"You can never have too many knives" -- Logan Nine Fingers
UCDI
Premium Member
Premium Member
Posts: 383
Joined: Mon Mar 21, 2016 2:00 pm

Post by UCDI »

"/usr/include/string.h". this concerns me. string.h is part of the C language and should not need a path to include it; has someone tried to override the standard one?

try this sample program. Can you compile this?

#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char test[] = "test string and stuff";
char test2[100] = {0};
strcpy(test2, test);
cout << test <<" " << test2 << endl;
return 0;
}


-----
If that won't compile, can you get the release date on your compiler for me?
I don't know much about AIX. But assuming its generally unixish that should have worked.
Post Reply