Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linking to libecat fails (Arch linux 2018.05.15) #207

Closed
NikEfth opened this issue Jun 2, 2018 · 8 comments
Closed

Linking to libecat fails (Arch linux 2018.05.15) #207

NikEfth opened this issue Jun 2, 2018 · 8 comments

Comments

@NikEfth
Copy link
Collaborator

NikEfth commented Jun 2, 2018

When ecat support is enabled STIR linking fails with the following error message:

Long block of error message

/opt/ecat/libecat.a(rts_cmd.o): In function `initAcqTcpClient': rts_cmd.c:(.text+0x9c): 

undefined reference to `clnttcp_create'

rts_cmd.c:(.text+0xd2): undefined reference to `clnt_pcreateerror'

/opt/ecat/libecat.a(rts_cmd.o): In function `doAcsAcqCommand':

rts_cmd.c:(.text+0x16b): undefined reference to `clnt_perror'

/opt/ecat/libecat.a(rts_cmd.o): In function `rts_rmhd':

rts_cmd.c:(.text+0x1ad): undefined reference to `xdr_wrapstring'

/opt/ecat/libecat.a(rts_cmd.o): In function `rts_wmhd':

rts_cmd.c:(.text+0x264): undefined reference to `xdr_int'

/opt/ecat/libecat.a(rts_cmd.o): In function `rts_wshd':

rts_cmd.c:(.text+0x3c8): undefined reference to `xdr_int'

/opt/ecat/libecat.a(rts_cmd.o): In function `rts_wdat':

rts_cmd.c:(.text+0x4e1): undefined reference to `xdr_int'

rts_cmd.c:(.text+0x512): undefined reference to `cfree'

/opt/ecat/libecat.a(rts_cmd.o): In function `rtsWblk':

rts_cmd.c:(.text+0x650): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_MATRIX_FUNCTIONS':

matrix_xdr.c:(.text+0x5): undefined reference to `xdr_enum'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XMAIN_HEAD':

matrix_xdr.c:(.text+0x28): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x44): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x54): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x64): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x74): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x89): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x99): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xae): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0xc2): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xdb): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0xef): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x103): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x117): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x12b): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x142): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x159): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x170): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x187): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x19e): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1b5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1cc): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1e3): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1fa): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x211): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x228): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x244): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x260): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x27c): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x298): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x2b4): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x2cb): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x2e2): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x2f9): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x310): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x32c): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x348): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x364): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x37b): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x392): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x3ae): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x3c5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x3dc): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x3f3): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x40a): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x421): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x437): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x449): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x460): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x477): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x48e): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x4a5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x4c1): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x4d8): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x4ef): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x506): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x51d): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x534): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x54b): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x567): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0x57e): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XSCAN_SUB':

matrix_xdr.c:(.text+0x59c): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x5b3): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x5c3): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x5d3): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0x5e3): more undefined references to `xdr_short' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XSCAN_SUB':

matrix_xdr.c:(.text+0x613): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x623): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x637): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x64b): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x65f): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x673): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x687): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x69b): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x6af): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x6c3): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x6d7): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x6eb): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x6ff): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x713): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x726): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x738): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x74e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x760): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x777): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x78e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x7a5): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x7bc): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x7d3): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x7ea): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x800): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x812): undefined reference to `xdr_vector'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_X3DSCAN_SUB':

matrix_xdr.c:(.text+0x830): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x847): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x857): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x867): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x877): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0x886): more undefined references to `xdr_short' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_X3DSCAN_SUB':

matrix_xdr.c:(.text+0x898): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x8ab): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x8be): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x8d5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x8ec): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x903): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x91a): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x931): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x948): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x95f): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x976): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x98d): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x9a4): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x9bb): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x9d2): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x9e9): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xa00): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xa17): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xa2e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xa45): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xa5c): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xa73): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xa8a): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xaa1): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xab7): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xac9): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0xadf): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xaf1): undefined reference to `xdr_vector'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XIMAGE_SUB':

matrix_xdr.c:(.text+0xb0f): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xb26): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xb36): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xb46): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xb56): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xb66): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xb76): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xb86): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xb96): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xbaa): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xbbe): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xbd2): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xbe6): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xbfa): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xc0e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xc22): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xc36): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xc4a): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xc5e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xc72): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xc86): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xc9a): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xcae): undefined reference to `xdr_float'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0xcc2): more undefined references to `xdr_float' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XIMAGE_SUB':

matrix_xdr.c:(.text+0xcea): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xcfe): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xd12): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xd26): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0xd3a): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xd4e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xd62): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xd76): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xd8a): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xd9e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xdba): undefined reference to `xdr_opaque'

matrix_xdr.c:(.text+0xdd1): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xde8): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xdff): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xe16): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xe2d): undefined reference to `xdr_float'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0xe44): more undefined references to `xdr_float' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XIMAGE_SUB':

matrix_xdr.c:(.text+0xece): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xee5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xefc): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xf13): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xf2a): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xf41): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XNORM_SUB':

matrix_xdr.c:(.text+0xf5f): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xf76): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0xf86): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0xf96): more undefined references to `xdr_short' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XNORM_SUB':

matrix_xdr.c:(.text+0xfc6): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xfd6): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xfe6): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0xffa): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x100e): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1022): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1036): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x104a): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x105d): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x106f): undefined reference to `xdr_vector'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_X3DNORM_SUB':

matrix_xdr.c:(.text+0x108d): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x10a4): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x10b4): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x10c4): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x10d4): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0x10e4): more undefined references to `xdr_short' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_X3DNORM_SUB':

matrix_xdr.c:(.text+0x113c): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x114f): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1161): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x1177): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1189): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x119f): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x11b1): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x11c8): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x11df): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XATTEN_SUB':

matrix_xdr.c:(.text+0x11fd): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1214): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x1224): undefined reference to `xdr_short'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0x1234): more undefined references to `xdr_short' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XATTEN_SUB':

matrix_xdr.c:(.text+0x1274): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1284): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x1298): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x12ac): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x12c0): undefined reference to `xdr_float'

/opt/ecat/libecat.a(matrix_xdr.o):matrix_xdr.c:(.text+0x12d4): more undefined references to `xdr_float' follow

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_XATTEN_SUB':

matrix_xdr.c:(.text+0x1388): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x139b): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x13ad): undefined reference to `xdr_vector'

matrix_xdr.c:(.text+0x13c1): undefined reference to `xdr_float'

matrix_xdr.c:(.text+0x13d5): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x13e9): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x13fc): undefined reference to `xdr_short'

matrix_xdr.c:(.text+0x140e): undefined reference to `xdr_vector'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_CREF_args':

matrix_xdr.c:(.text+0x1431): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x145b): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RBLK_args':

matrix_xdr.c:(.text+0x147b): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x1492): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_WBLK_args':

matrix_xdr.c:(.text+0x14b2): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x14c9): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x14de): undefined reference to `xdr_opaque'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RBLK_resp':

matrix_xdr.c:(.text+0x14f9): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x1515): undefined reference to `xdr_opaque'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RMHD_resp':

matrix_xdr.c:(.text+0x1530): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_WMHD_args':

matrix_xdr.c:(.text+0x1567): undefined reference to `xdr_string'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RSHD_args':

matrix_xdr.c:(.text+0x159e): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x15b5): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RSHD_resp':

matrix_xdr.c:(.text+0x15d0): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x15ec): undefined reference to `xdr_opaque'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_WSHD_args':

matrix_xdr.c:(.text+0x160c): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x1623): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x1638): undefined reference to `xdr_opaque'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RDAT_args':

matrix_xdr.c:(.text+0x1658): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x166f): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RDAT_resp':

matrix_xdr.c:(.text+0x168a): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x16aa): undefined reference to `xdr_bytes'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_WDAT_args':

matrix_xdr.c:(.text+0x16ca): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x16e1): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x16f1): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x170a): undefined reference to `xdr_bytes'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RDPRDAT_args':

matrix_xdr.c:(.text+0x172a): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x1741): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x1751): undefined reference to `xdr_int'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_RDPRDAT_resp':

matrix_xdr.c:(.text+0x176c): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x178c): undefined reference to `xdr_bytes'

/opt/ecat/libecat.a(matrix_xdr.o): In function `xdr_WRPRDAT_args':

matrix_xdr.c:(.text+0x17ac): undefined reference to `xdr_string'

matrix_xdr.c:(.text+0x17c3): undefined reference to `xdr_int'

matrix_xdr.c:(.text+0x17dc): undefined reference to `xdr_bytes'

collect2: error: ld returned 1 exit status

ninja: build stopped: subcommand failed.

13:36:47: The process "/usr/bin/cmake" exited with code 1.

Error while building/deploying project STIR (kit: Desktop)

The error has been reproduced with g++-8.1, g++-7.3.1, g++-5.4.1, g++-4 with libglib-2.0.so.0 and libc.so.6 (Arch linux 2018.5.15). The libecat.a was complied successfully.

Proposed solution:

There are two problems the first that cfree has been removed from glibc (>2.24) therefore, one has to edit rts_cmd.c in the ecat folder, line 174 from cfree to free. We can add this info at the wiki.

The second problem is that STIR has to link to libtirpc.so (1.0.3). Either in IO/CMakeLists.txt or in buildblock/CMakeLists.txt the following edit has to be done (it can be written in a better way, of course):

if (LLN_FOUND)
  target_link_libraries(buildblock ${LLN_LIBRARIES} -ltirpc)
endif()
@KrisThielemans
Copy link
Collaborator

Better option I believe is to disable all the rts stuff in ECAT. it isn't needed unless you want to talk to the acquisition system, which nobody does anymore I guess. There's a variable for that in the Makefile, which I introduced ages ago to get it to work on cygwin. From memory, it might be as easy as using Makefile.cygwin as opposed to Makefile.unix. That info can then be added to the STIR wiki of course.

@NikEfth
Copy link
Collaborator Author

NikEfth commented Jun 4, 2018

Not that simple. I had tried that and now reconfirmed, that matrix_extra depends on rts.

opt/ecat/libecat.a(matrix_extra.o): In function `acs_read_scan_subheader':
matrix_extra.c:(.text+0x28): undefined reference to `rtsRblk'
/opt/ecat/libecat.a(matrix_extra.o): In function `acs_read_Scan3D_subheader':
matrix_extra.c:(.text+0xa5): undefined reference to `rtsRblk'
matrix_extra.c:(.text+0xbc): undefined reference to `rtsRblk'
/opt/ecat/libecat.a(matrix_extra.o): In function `matrix_open':
matrix_extra.c:(.text+0x14eb): undefined reference to `rts_rmhd'
/opt/ecat/libecat.a(matrix_extra.o): In function `file_exists':
matrix_extra.c:(.text+0x20f5): undefined reference to `rts_rmhd'
/opt/ecat/libecat.a(machine_indep.o): In function `read_raw_acs_data':
machine_indep.c:(.text+0x26b): undefined reference to `rtsRblk'

And that seems like a dead end.

@KrisThielemans
Copy link
Collaborator

yeah. seems matrix_extra.c checks on _WIN32. You could define that and see what happens... Makefile.cygwin does that (CC=gcc -D_WIN32). you need a make clean first.

Linking to tirpc might fix the problem on CentOS, but it most definitely won't fix it on OSX, where all rts stuff needs to be disabled (like in Windows).

This library is very old obviously. I'm quite reluctant to put in work-arounds in STIR for CentOS, that will likely break something else. Instead, I'd prefer to tell people how to fix the library... Note that we cannot distribute it ourselves. Its license is unclear.

@NikEfth
Copy link
Collaborator Author

NikEfth commented Jun 4, 2018

I am wondering how Ubuntu handles this? Are you able to use ecat without rts?

@KrisThielemans
Copy link
Collaborator

I haven't used ECAT in about 10 years...

ecat without rts definitely works.

@NikEfth
Copy link
Collaborator Author

NikEfth commented Jun 5, 2018

OK, I created the patch and everything compiles.
How should we proceed?
Could it be uploaded on the wiki website? or distributed with STIR ?

@NikEfth
Copy link
Collaborator Author

NikEfth commented Jun 12, 2018

I went forward with this.
In the wiki there is this paragraph: http://stir.sourceforge.net/wiki/index.php/STIR_FAQ#Problems_with_ecat_library and the patch can be downloaded from https://github.com/NikEfth/ecat_patch_STIR_LLN_support.
If you are happy this can close.

@KrisThielemans
Copy link
Collaborator

great. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants