Page 1 of 1

BuildOPs and large files

Posted: Sat Nov 07, 2009 2:54 pm
by Larry.Griffith
I am trying to use a BuildOP called MultipleFileWriter in a parallel job on an AIX server. It works a lot like the folder stage in a server job. It takes two columns, the first being a file name, and the second being a record and writes multiple files. Unfortunately, it does not seem to be large file enabled, it stops writing after 2G, does not fail, counts the records like it is still writing.

We regularly deal with files over 2G and know that most of the utilities we are using, including DataStage, can handle fiels over 2G,

I have seen this behaviour in other processes that are not large file enabled, so I tried to compile the process with compiler flags that I thought would generate a large file enabled routine, but I have not been able to come up with the right combination of options.

We are using the VisualAge C++ Professional V6 compiler and when I add teh -DLARGE_FILES -qlonglong options, I get

buildop -f -BC /usr/vacpp/bin/xlC_r -BL /usr/vacpp/bin/xlC_r -PC"-D_LARGE_FILES -qlonglong" -C buildop -H buildop -O buildop -W buildop buildop/LAGMultipleFileWriter.opd

##E TBLD 000000 Subprocess command failed with exit status 2,048.
##W TBLD 000000 Output from subprocess: ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatDescriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: APT_IsDynamic::operator delete(void*)
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatDescriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFComparison::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_SFloatGFPrint::registerFunction()
ld: 0711-317 ERROR: Undefined sym
##I TBLD 000000 /usr/vacpp/bin/xlC_r -O -I/dms/Ascential/projects/DMSProjects/buildop -I/landing01/dataint/Ascential/DataStage/PXEngine/include -D_LARGE_FILES -qlonglong /dms/Ascential/projects/DMSProjects/buildop/bosource3072230-0.C -o /dmsscratch/tmp/bosource3072230-0_s.o.
##W TBLD 000000 Output from subprocess: bol: .APT_DFloatGFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatGFComparison::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_DFloatGFPrint::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt8Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int16Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt16Descriptor::reg
##W TBLD 000000 Output from subprocess: isterDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int32Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt32Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int64Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_UInt64Descriptor::registerDescriptor()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8GFEquality::registerFunction()
ld: 0711-317 ERROR: Undefined symbol: .APT_Int8GFComparison::registerFunction()
.
.
.
and on and on.

Can anyone help me with the correct compiler options to fix this problem?

Posted: Sun Nov 08, 2009 4:09 am
by ArndW
If you manually enter your compile from the command line does it compile without an error?

Code: Select all

/usr/vacpp/bin/xlC_r -O -I/dms/Ascential/projects/DMSProjects/buildop -I/landing01/dataint/Ascential/DataStage/PXEngine/include -D_LARGE_FILES -qlonglong /dms/Ascential/projects/DMSProjects/buildop/bosource3072230-0.C -o /dmsscratch/tmp/bosource3072230-0_s.o

Posted: Wed Oct 06, 2010 2:39 pm
by Larry.Griffith
Long time coming, I know. Long story. Sorry.

No, the command by itself does not work. I did have to change the routien being compiled, and the .h file withing the routine to get it to compile without -D_LARGE_FILES and -qlonglong, but then when I added the options back, all the same errors.