Linking Routine from static library (lib*.a)

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
rameshrr3
Premium Member
Premium Member
Posts: 609
Joined: Mon May 10, 2004 3:32 am
Location: BRENTWOOD, TN

Linking Routine from static library (lib*.a)

Post by rameshrr3 »

These are my default compiler & linker options:

Code: Select all

APT_COMPILEOPT=-O -fPIC -Wno-deprecated -c
APT_COMPILER=g++
APT_LINKER=g++
APT_LINKOPT=-shared
I created a static library archive file with 2 *.o object files compiled using g++ [ -fPIC option not used because it is a static *.a file ]

I defined 2 library routines ( external function ) that im trying to call in a job from a transformer stage , but unable to compile the job .

I tried overriding the linker flags by setting APT_LINKOPT for this job alone

Code: Select all

-static  /opt/IBM/InformationServer/Server/Projects/LifeRet/libPXroutines.a   -shared 
Do i need to change teh compiler options also ?

This is the error i get while compiling:

Code: Select all

Output from transformer compilation follows:

##I IIS-DSEE-TFCN-00001 19:06:55(000) <main_program> 
IBM InfoSphere DataStage Enterprise Edition 8.7.0.6367 
Copyright (c) 2001, 2005-2011 IBM Corporation. All rights reserved
 
##I IIS-DSEE-TFCN-00006 19:06:55(001) <main_program> conductor uname: -s=Linux; -r=2.6.32.45-0.3-default; -v=#1 SMP 2011-08-22 10:12:58 +0200; -n=vmzldledmdst03; -m=s390x
##I IIS-DSEE-TOSH-00002 19:06:55(002) <main_program> orchgeneral: loaded
##I IIS-DSEE-TOSH-00002 19:06:55(003) <main_program> orchsort: loaded
##I IIS-DSEE-TOSH-00002 19:06:55(004) <main_program> orchstats: loaded
##W IIS-DSEE-TOSH-00049 19:06:55(007) <main_program> Parameter specified but not used in flow: DSPXWorkingDir
##E IIS-DSEE-TBLD-00076 19:06:56(000) <main_program> Error when checking composite operator: Subprocess command failed with exit status 256.
##E IIS-DSEE-TFSR-00019 19:06:56(001) <main_program> Could not check all operators because of previous error(s)
##W IIS-DSEE-TFTM-00012 19:06:56(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-TFEV-00025 19:06:56(003) <transform> Error when checking composite operator: Converting number to string.
##W IIS-DSEE-TFEV-00023 19:06:56(004) <transform> Error when checking composite operator: Implicit conversion from source type "DFloat" to result type "String".
##W IIS-DSEE-TFEV-00025 19:06:56(005) <transform> Error when checking composite operator: Converting number to string.
##W IIS-DSEE-TFEV-00023 19:06:56(006) <transform> Error when checking composite operator: Implicit conversion from source type "UInt32" to result type "String".
##W IIS-DSEE-TFEV-00025 19:06:56(007) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 19:06:56(008) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "UInt64".
##W IIS-DSEE-TFEV-00025 19:06:56(009) <transform> Error when checking composite operator: Converting string to number.
##W IIS-DSEE-TFEV-00023 19:06:56(010) <transform> Error when checking composite operator: Implicit conversion from source type "String" to result type "DFloat".
##W IIS-DSEE-TBLD-00000 19:06:56(011) <main_program> Error when checking composite operator: Output from subprocess: /usr/lib64/gcc/s390x-suse-linux/4.3/../../../../s390x-suse-linux/bin/ld: /usr/lib64/gcc/s390x-suse-linux/4.3/crtbeginT.o: relocation R_390_PC32DBL against `_Jv_RegisterClasses' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/gcc/s390x-suse-linux/4.3/../../../../s390x-suse-linux/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status

##I IIS-DSEE-TBLD-00079 19:06:56(012) <transform> Error when checking composite operator: g++    -L/opt/IBM/InformationServer/Server/Projects/LifeRet/RT_BP89.O/ -L/opt/IBM/InformationServer/Server/Projects/LifeRet/ -L/opt/IBM/InformationServer/Server/PXEngine/lib -L/opt/IBM/InformationServer/Server/PXEngine/user_lib -static  /opt/IBM/InformationServer/Server/Projects/LifeRet/libPXroutines.a   -shared  -lorchs390x -lorchcores390x -lorchbuildops390x /opt/IBM/InformationServer/Server/Projects/LifeRet/pwr1.o  -lPXroutines /opt/IBM/InformationServer/Server/Projects/LifeRet/RT_BP89.O/V0S4_CopyOfParseRemoteSKStateFile1_Transformer_4.tmp.o -o /opt/IBM/InformationServer/Server/Projects/LifeRet/RT_BP89.O/V0S4_CopyOfParseRemoteSKStateFile1_Transformer_4.so.
##E IIS-DSEE-TCOS-00029 19:06:56(013) <main_program> Creation of a step finished with status = FAILED. (CopyOfParseRemoteSKStateFile1.Transformer_4)

*** Internal Generated Transformer Code follows:
Post Reply