Topic
IC4NOTICE: developerWorks Community will be offline May 29-30, 2015 while we upgrade to the latest version of IBM Connections. For more information, read our upgrade FAQ.
No replies
SystemAdmin
SystemAdmin
7754 Posts
ACCEPTED ANSWER

Pinned topic Error compiling transformer parallel routine with long int arguments

‏2012-12-14T16:08:30Z |
Hello,

On DataStage version 8.5, I am getting an error when compiling a transformer stage that calls a parallel routine with arguments and return type that are long long (as suggested here for C++ variables that are long:

http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r5/index.jsp?topic=%2Fcom.ibm.swg.im.iis.ds.design.doc%2Ftopics%2Ft_ddesref_Creating_a_Parallel_Routine.html

The parallel routine is the following:

long long int getRPId(long long int key1, long long int key2, long
long int key3)
{
return key1+key2+key3+1;
}

It is compiled using MS C++ compiler v14 and options:

-TP -EHa -DAPT_USE_ANSI_IOSTREAMS -MD -DNDEBUG -DIDM_LITTLE_ENDIAN.

When argument and return types are int, it works correctly.

It gives a linking error as shown below when using long long int (or long int) which is translated into __int64 by the compiler.

Thanks in advance!



##I IIS-DSEE-TFCN-00006 17:28:46(001) <main_program> conductor uname:
-s=Windows_NT; -r=1; -v=6; -n=ETL64TEST; -m=Pentium
##I IIS-DSEE-TOSH-00002 17:28:46(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 17:28:46(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 17:28:46(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 17:28:46(007) <main_program> Parameter specified
but not used in flow: DSPXWorkingDir
##E IIS-DSEE-TBLD-00076 17:28:50(000) <main_program> Error when checking
composite operator: Subprocess command failed with exit status 24.576.
##E IIS-DSEE-TFSR-00019 17:28:50(001) <main_program> Could not check all
operators because of previous error(s)
##W IIS-DSEE-TFEV-00023 17:28:50(002) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##I IIS-DSEE-TBLD-00000 17:28:50(003) <main_program> Error when checking
composite operator: Output from subprocess: C:/Program Files
(x86)/Microsoft Visual Studio 9.0/VC/include\exception(85) : warning C4985:
'strcpy_s': attributes not present on previous declaration.
C:/PROGRA~2/MKSTOO~1/include\string.h(90) : see declaration of
'strcpy_s'
D:\IBM\InformationServer\Server\PXEngine\include\apt_util/keylookup.h
(1151) : warning C4251: 'APT_KeyLookupRange::rangeOptions_' : class
'std::vector<_Ty>' needs to have dll-interface to be used by clients of
class 'APT_KeyLookupRange'
with
[
_
##I IIS-DSEE-TBLD-00000 17:28:50(004) <main_program> Error when checking
composite operator: Output from subprocess:
Ty=APT_KeyLookupRange::rangeOption
]
D:\IBM\InformationServer\Server\PXEngine\include
\apt_components/transformop/transformbase.h(185) : warning C4244:
'argument' : conversion from 'APT_UInt64' to 'unsigned int', possible loss
of data
D:\IBM\InformationServer\Server\PXEngine\include
\apt_components/transformop/transformbase.h(185) : warning C4334: '<<' :
result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift
intended?)
D:\IBM\InformationServer\Server\PXEngine\include\apt_componen
##W IIS-DSEE-TFEV-00023 17:28:50(005) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(006) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##I IIS-DSEE-TBLD-00000 17:28:50(007) <main_program> Error when checking
composite operator: Output from subprocess: ts/transformop/transformbase.h
(185) : warning C4800: 'unsigned __int64' : forcing value to bool 'true' or
'false' (performance warning)
D:\IBM\InformationServer\Server\PXEngine\include
\apt_components/transformop/transformbase.h(186) : warning C4244:
'argument' : conversion from 'APT_UInt64' to 'unsigned int', possible loss
of data
D:\IBM\InformationServer\Server\PXEngine\include
\apt_components/transformop/transformbase.h(186) : warning C4334: '<<' :
result of 32-bit shift implicitly converted to 64 bits (
##I IIS-DSEE-TBLD-00000 17:28:50(008) <main_program> Error when checking
composite operator: Output from subprocess: was 64-bit shift intended?)
D:\IBM\InformationServer\Server\PXEngine\include
\apt_components/transformop/transformbase.h(187) : warning C4244:
'argument' : conversion from 'APT_UInt64' to 'unsigned int', possible loss
of data
D:\IBM\InformationServer\Server\Projects\AHE_TEST\RT_BP4939.O
\V24S2_test_parallel_routine_map.C(244) : warning C4101: 'output' :
unreferenced local variable
D:\IBM\InformationServer\Server\Projects\AHE_TEST\RT_BP4939.O
\V24S2_test_parallel_routine_map.C(239) : warning C4101: 'input' :
##W IIS-DSEE-TFEV-00023 17:28:50(009) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(010) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##I IIS-DSEE-TBLD-00000 17:28:50(011) <main_program> Error when checking
composite operator: Output from subprocess: unreferenced local variable

##W IIS-DSEE-TFEV-00023 17:28:50(012) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(013) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(014) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(015) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00023 17:28:50(016) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(017) <transform> Error when checking
composite operator: Converting number to ustring.
##W IIS-DSEE-TFEV-00023 17:28:50(018) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt16" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(019) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(020) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt8" to result
type "Decimal".
##W IIS-DSEE-TFEV-00025 17:28:50(021) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(022) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt8" to result
type "Decimal".
##W IIS-DSEE-TFEV-00025 17:28:50(023) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(024) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt16" to result
type "Decimal".
##W IIS-DSEE-TFEV-00025 17:28:50(025) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(026) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt16" to result
type "Decimal".
##W IIS-DSEE-TFEV-00025 17:28:50(027) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(028) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt32" to result
type "Decimal".
##W IIS-DSEE-TFEV-00025 17:28:50(029) <transform> Error when checking
composite operator: Possible range limitation.
##W IIS-DSEE-TFEV-00023 17:28:50(030) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt8" to result
type "Decimal".
##W IIS-DSEE-TFEV-00023 17:28:50(031) <transform> Error when checking
composite operator: Implicit conversion from source type "String" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(032) <transform> Error when checking
composite operator: Converting number to ustring.
##W IIS-DSEE-TFEV-00023 17:28:50(033) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt64" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(034) <transform> Error when checking
composite operator: Converting ustring to number.
##W IIS-DSEE-TFEV-00023 17:28:50(035) <transform> Error when checking
composite operator: Implicit conversion from source type "UString" to
result type "UInt32".
##W IIS-DSEE-TFEV-00025 17:28:50(036) <transform> Error when checking
composite operator: Converting number to ustring.
##W IIS-DSEE-TFEV-00023 17:28:50(037) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt16" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(038) <transform> Error when checking
composite operator: Converting number to ustring.
##W IIS-DSEE-TFEV-00023 17:28:50(039) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt32" to result
type "UString".
##W IIS-DSEE-TFEV-00025 17:28:50(040) <transform> Error when checking
composite operator: Converting number to ustring.
##W IIS-DSEE-TFEV-00023 17:28:50(041) <transform> Error when checking
composite operator: Implicit conversion from source type "UInt8" to result
type "UString".
##I IIS-DSEE-TBLD-00079 17:28:50(042) <transform> Error when checking
composite operator: cxx
-LD:/IBM/InformationServer/Server/Projects/AHE_TEST/RT_BP4939.O/
-LD:/IBM/InformationServer/Server/PXEngine/lib
-LD:/IBM/InformationServer/Server/PXEngine/user_lib -s -W/dll
-W/base:0x50000000 -W/Zc:wchar_t- -lliborchnt -lliborchcorent
-lliborchbuildopnt E:/IIWFile/getRPIdLv2.o
D:/IBM/InformationServer/Server/Projects/AHE_TEST/RT_BP4939.O/V24S2_test_parallel_routine_map.tmp.o
-o
D:/IBM/InformationServer/Server/Projects/AHE_TEST/RT_BP4939.O/V24S2_test_parallel_routine_map.dll.
##I IIS-DSEE-TBLD-00000 17:28:50(043) <main_program> Error when checking
composite operator: Output from subprocess: MSVCRT.lib(ti_inst.obj) :
warning LNK4006: "private: __thiscall type_info::type_info(class type_info
const &)" (??0type_info@@AAE@ABV0@@Z) already defined in c.lib
(typinfo.obj); second definition ignored
MSVCRT.lib(ti_inst.obj) : warning LNK4006: "private: class type_info &
__thiscall type_info::operator=(class type_info const
&)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in c.lib(typinfo.obj);
second definition ignored
V24S2_test_parallel_routine_map.tmp.o : error LNK2019: unresolved external
symbo
##I IIS-DSEE-TBLD-00000 17:28:50(044) <main_program> Error when checking
composite operator: Output from subprocess: l "__int64 __cdecl
getRPIDL(__int64,__int64,__int64)" (?getRPIDL@@YA_J_J00@Z)
referenced in function "protected: virtual void __thiscall
APT_TransformOperatorImplV24S2_test_parallel_routine_map::processInputRecordChild
(int,int * const,int *
const)" (?processInputRecordChild@APT_TransformOperatorImplV24S2_test_parallel_routine_map@@MAEXHQAH0@Z)
D:\IBM\InformationServer\Server\Projects\AHE_TEST\RT_BP4939.O
\V24S2_test_parallel_routine_map.dll : fatal error LNK1120: 1 unresolved
externals

##E IIS-DSEE-TCOS-00029 17:28:50(045) <main_program> Creation of a step
finished with status = FAILED. (test_parallel_routine.map)