Topic
  • No replies
SystemAdmin
SystemAdmin
7754 Posts

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)