Hi there...

I'm trying to build AFS 3.3a on a sun4c_53. During compilation,
a linker error occured on "rmtsysd". The undefined symbol is
"cml_version_number". The call to "cc" looks like that:

cc -g -IDEST/include -I/usr/ucbinclude -D_NO_PROTO -D_NONSTD_TYPES -U__STR__ -Bdynamic 
-o rmtsysd rmtsysd.o ./libsys.a DEST/lib/librx.a DEST/lib/liblwp.a DEST/lib/afs/util.a 
/lib/libsocket.a /usr/ucblib/libucb.a /lib/libnsl.a /lib/libintl.a /lib/libdl.so

and the error message like that:

Undefined                       first referenced
 symbol                             in file
cml_version_number                  DEST/lib/librx.a(rx_packet.o)
ld: fatal: Symbol referencing errors. No output written to rmtsysd
cc: file path prefix `dynamic' never used

A "nm -pr" call to "DEST/lib/librx.a" results in this

...[OTHER MODULES]

rx_packet.o:
00001338 l        .text CountFDs
000005fc l        .text freeCBuf
00000688 l        .text allocCBuf
000016e4  g e     .text osi_NetSend
00000000  g e     *UND* free
00000000  g e     *UND* .rem
00000000  g e     *UND* rx_intentionallyDroppedPacketsPer100
00000000  g e     *UND* rx_freePacketQueue
00000f30  g e     .text rxi_FreeAllPackets
000003d8  g e     .text rx_SlowWritePacket
00000000  g e     *UND* rx_nWaiting
00000000  g e     *UND* rxi_Sendmsg
00000000  g e     *UND* rxi_Recvmsg
00000000  g e     *UND* malloc
00000000  g e     *UND* random
0000293c  g e     .text rxi_EncodePacketHeader
00002a44  g e     .text rxi_DecodePacketHeader
00001758  g e     .text rxi_ReceiveDebugPacket
00000000  g e     *UND* clock_UpdateTime
000000f0  g e     .text rx_SlowPutInt32
00000000  g e     .text rx_SlowGetInt32
00002688  g e     .text rxi_SendSpecial
00000000  g e     *UND* rx_nFreePackets
00000d88  g e     .text rxi_MorePackets
00000ff0  g e     .text rxi_AllocPacket
00000000  g e     *UND* clock_now
00000000  g e     *UND* rxi_Send
00000000  g e     *UND* rx_stats
00000000  g e     *UND* errno
00000000  g e     *UND* fstat
00002320  g e     .text rxi_SendDebugPacket
00001184  g e     .text rxi_AllocSendPacket
00000000  g e     *UND* htonl
00000000  g e     *UND* ntohl
00000000  g e     *UND* htons
00000000  g e     *UND* .umul
00000000  g e     *UND* .udiv
00000004  g e     .data rx_mallocedC
00000000  g e     .data rx_mallocedP
00000000  g e     *UND* rx_debugFile
00000000  g e     *UND* rxevent_Post
00000000  g e     *UND* rx_maxWindow
00000000  g e     *UND* osi_Panic
00000000  g e     *UND* rx_connHashTable
00000000  g e     *UND* rx_hashTableSize
00000000  g e     *UND* rx_freeCbufQueue
00000944  g e     .text rxi_AllocDataBuf
00000000  g e     *UND* bzero
00000b00  g e     .text rxi_FreeDataBufs
00000000  g e     *UND* rxi_Sleep
00000000  g e     *UND* rx_nCbufs
00000000  g e     *UND* rx_socket
00000000  g e     *UND* clock_haveCurrentTime
00000000  g e     *UND* rx_waitingForPackets
00000000  g e     *UND* .div
00000c50  g e     .text rxi_MoreCbufs
00000754  g e     .text rx_CheckCbufs
00000000  g e     *UND* rx_nFreeCbufs
00000000  g e     *UND* rx_almostSent
0000225c  g e     .text rxi_ReceiveVersionPacket
00000000  g e     *UND* cml_version_number
00000000  g e     *UND* rx_maxReceiveSize
00000000  g e     *UND* rxi_NeedMoreCbufs
00000000  g e     *UND* rxi_PacketsUnWait
000007f8  g e     .text rxi_RoundUpPacket
000001ec  g e     .text rx_SlowReadPacket
00000000  g e     *UND* rxi_nCalls
00000000  g e     *UND* rxi_IsConnInteresting
00002b24  g e     .text rxi_PrepareSendPacket
00000000  g e     *UND* bcopy
00000000  g e     *UND* rx_packetQuota
00000000  g e     *UND* rx_packetTypes
00002398  g e     .text rxi_SendPacket
000013a0  g e     .text rxi_ReadPacket
00000f54  g e     .text rxi_FreePacket
00000000  g e     *UND* rxi_DebugPrint

[OTHER MODULES]...

So I tried to figure out in which source files contains the symbol:

maddel@afs -> find src -name \*.c -type f -print | xargs fgrep -n cml_version_number
src/rx/rx_packet.c:48:extern char cml_version_number[];
src/rx/rx_packet.c:1001:        rx_packetwrite(ap, 0, 65, cml_version_number+4);
src/rx/test/testclient.c:50:char cml_version_number[]="";
src/rx/test/testserver.c:49:char cml_version_number[]="";

Well, this has not been much informative, so I searched in the includes:

maddel@afs -> find src -name \*.h -type f -print | xargs fgrep -n cml_version_number
maddel@afs -> 

No chance, again... :-(
Now my question: what's wrong with my installation? Are there modules
missing? May I set the "cml_version_number" to a predefined value?

Hope that somebody can help, thanX in advance.
Have fun...

Ok, maddel!
---------------------
Who is general failure? And why is he reading my harddisk?





Reply via email to