I have been trying to compile the sort program I have been working on in Edinburgh so I can work on it locally
while at RIKEN.
When compiling i receive the error shown in make.log (attached) saying that there are undefined reference in
DataSource.cpp.
Also attached is the make output when compiled in Edinburgh - basically just 'unused variable' warnings.
This is exactly the same DataSource.cpp I am using in Edinburgh. I have carried out 'diff' on the DataSpyLib and
DataXferLib directories which are included
in the Makefile and no differences are present. I have also done this for DataSource directory and again, there
are no differences between what I am running here and in Edinburgh.
The only difference I have been able to observe so far is that in Edinburgh I am using g++ version:
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array
--disable-libgcj --with-isl=/builddir/build/BUILD /gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install
--with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install
--enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
whereas on aidas1:
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile
--enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
The libraries used are all found in LD_LIBRARY_PATH.
On aidas1 this is: /MIDAS/Linux/lib64:/homes/npg/root/lib:/homes/npg/root/lib:/MIDAS/Linux/lib64:/homes/npg/root/lib
and in Edinburgh:
/Disk/ds-sopa-group/np/RIKEN/AIDAsort/MIDAS/Linux/lib64:/Disk/ds-sopa-group/np/thehubdata/thehub6/jlab_software/Linux_Scientific6-x86_64-gcc4.4.6/root/5.34.23/lib:
*********UPDATE 03/10/16 *************
The methods are defined in /MIDAS/DataPackage/DataXferLib/V4_TCP/transfer.c
This is in the expected INCLUDES path of: INCLUDES= -I/MIDAS/DataPackage/DataXferLib/V4_TCP -I/MIDAS/DataPackage/DataSpyLib |
#ifndef INCtransferh
#define INCtransferh
#define MAX_STREAM 4
#define MAXPORTS 8
typedef struct block_header { /* format of data block */
unsigned short hdr_flags; /* see below */
unsigned short hdr_stream; /* =0 for forced ack request or 1=>MAX_STREAM */
unsigned short hdr_endian; /* data byte order */
unsigned short hdr_ID;
unsigned int hdr_sequence; /* for this stream */
unsigned int hdr_blocklength; /* total length of this block including the header */
unsigned int hdr_datalength; /* length of user data in the block */
unsigned int hdr_offset; /* very large blocks may be fragmented */
unsigned int hdr_id1; /* for spy to locate header =0x19062002 */
unsigned int hdr_id2; /* for spy to locate header =0x09592400 */
} HEADER;
#define HDR_ID1 0x19062002
#define HDR_ID2 0x09592400
typedef struct mbs_block_header {
unsigned int mbs_endian;
unsigned int mbs_blocksize;
} MBS_BLKHEADER;
typedef struct ack {
unsigned short acq_flags; /* bit 0 = 1 for ack */
unsigned short acq_code; /* =0 for good ack otherwise error reason */
unsigned short acq_ts_state; /* tape server state - see below */
unsigned short acq_stream; /* =0 for forced ack ack or 1=>MAX_STREAM */
unsigned short acq_endian; /* =1 transmitted in host byte order */
unsigned short acq_ID; /* value of ID variable 0 => */
unsigned int acq_sequence; /* for stream != 0 is sequence being acked */
unsigned short acq_stream_state1; /* see below */
unsigned short acq_stream_state2; /* */
unsigned short acq_stream_state3; /* */
unsigned short acq_stream_state4; /* */
unsigned short acq_stream_window1; /* */
unsigned short acq_stream_window2; /* */
unsigned short acq_stream_window3; /* */
unsigned short acq_stream_window4; /* */
} ACK;
int transferTxData (char *, int, int);
int transferTxRestart ();
int transferBlockSize(int);
int transferMode(int);
int transferBlockMode(int);
int transferEndian(int);
int transferPort(int);
int transferInit (char *);
void transferClose ();
int transferStatus ();
int transferSetVerbose(int);
int transferSetUser(int);
int transferNice(int);
int transferUseOverlap(int);
int transferTxWait();
int transferState();
int transferSndBufSize(int);
int transferRcvBufSize(int);
/* All these have the thread ID as the first argument */
int transferMultiTxData (int, char *, int, int);
int transferMultiTxRestart (int);
int transferMultiBlockSize(int, int);
int transferMultiMode(int, int);
int transferMultiBlockMode(int, int);
int transferMultiEndian(int, int);
int transferMultiPort(int, int);
int transferMultiInit (int, char *);
void transferMultiClose (int);
int transferMultiStatus (int);
int transferMultiNice(int, int);
int transferMultiUseOverlap(int, int);
int transferMultiTxWait(int);
int transferMultiState(int);
int transferMultiSndBufSize(int, int);
int transferMultiRcvBufSize(int, int);
#ifndef OK
#define OK 0
#endif
#ifndef ERROR
#define ERROR -1
#endif
#endif
|