After a few tweaks to some of the source files (which I will submit later), I
have all the code for afs.ext.64 compiling, but it fails to link due to a
missing symbol .vprintf. The AIX man pages show that this is included in
/lib/libc.a, and nm confirms it. Here is the error:
/usr/bin/ld -b"binder:/usr/lib/bind glink:/usr/lib/glink64.o" -bnoentry
-b h:4 -D0 -T512 -b64 -bloadmap:afs.ext.64.loadmap -bmap:afs.ext.64.map -o
afs.ext.64 sha256-kernel.o rand-timer-kernel.o afs_atomlist.o afs_lhash.o
afs_analyze.o afs_axscache.o afs_buffer.o afs_bypasscache.o
afs_callback.o afs_cbqueue.o afs_cell.o afs_chunk.o
afs_conn.o afs_daemons.o afs_dcache.o afs_dir.o
afs_disconnected.o afs_dynroot.o afs_error.o afs_icl.o
afs_init.o afs_lock.o afs_mariner.o afs_memcache.o afs_fetchstore.o
afs_osi.o afs_osidnlc.o afs_osi_alloc.o afs_osi_pag.o
afs_osi_uio.o afs_osi_vget.o afs_osi_vm.o afs_segments.o afs_server.o
afs_stat.o afs_syscall.o afs_tokens.o afs_user.o afs_util.o afs_vcache.o
afs_vnop_access.o afs_vnop_attrs.o afs_vnop_create.o afs_vnop_dirops.o
afs_vnop_fid.o afs_vnop_flock.o afs_vnop_link.o afs_vnop_lookup.o
afs_vnop_open.o afs_vnop_read.o afs_vnop_readdir.o afs_vnop_remove.o
afs_vnop_rename.o afs_vnop_strategy.o afs_vnop_symlink.o afs_vnop_write.o
afs_volume.o afs_warn.o xdr_update.o xdr_refernce.o Kvice.xdr.o
xdr_arrayn.o xdr_array.o xdr_int32.o xdr_int64.o Kvice.cs.o
fcrypt.o rx.o rx_call.o rx_conn.o
rx_peer.o rx_rdwr.o rx_clock.o rx_event.o rx_globals.o
rx_identity.o rx_kmutex.o rx_knet.o rx_kcommon.o rx_misc.o
rx_null.o rx_opaque.o rx_getaddr.o rx_packet.o rx_multi.o
rx_stats.o opr_rbtree.o xdr_rx.o xdr_mem.o xdr_len.o
Kvldbint.cs.o Kvldbint.xdr.o Kcallback.ss.o Krxstat.ss.o Krxstat.xdr.o
rxstat.o crypt_conn.o AFS_component_version_number.o afs_exporter.o
rxkad_client.o rxkad_common.o xdr_afsuuid.o xdr.o Ktoken.xdr.o
md5.o evp.o evp-algs.o rand-kernel.o alloc-kernel.o
aes.o rijndael-alg-fst.o sha.o n-fold.o
crypto.o crypto-algs.o crypto-aes.o crypto-context.o crypto-copy.o
crypto-ct.o crypto-evp.o crypto-data.o crypto-keyblock.o
crypto-store-int.o crypto-random.o afs_uuid.o osi_assem.o osi_config.o
osi_gcpags.o osi_groups.o osi_file.o osi_inode.o osi_misc.o osi_sleep.o
osi_timeout.o osi_vcache.o osi_vm.o rand-fortuna-kernel.o afs_call.o
afs_pioctl.o osi_vfsops.o osi_vnodeops.o -m -eafs_config
-bexport:/project/openafs/lib/afs.exp -bI:/lib/kernex.exp -bI:/lib/syscalls.exp
-bI:/lib/sockets.exp -bI:/lib/netinet.exp -bI:/project/openafs/lib/extras.exp
-lsys -lcsys -b64 -bI:/project/openafs/lib/export64.exp
ld: 0711-224 WARNING: Duplicate symbol: vnodefops
ld: 0711-224 WARNING: Duplicate symbol: .___memmove64
ld: 0711-224 WARNING: Duplicate symbol: ___memmove64
ld: 0711-224 WARNING: Duplicate symbol: .___memset64
ld: 0711-224 WARNING: Duplicate symbol: ___memset64
ld: 0711-224 WARNING: Duplicate symbol: .ip_stripoptions
ld: 0711-224 WARNING: Duplicate symbol: .soclose
ld: 0711-224 WARNING: Duplicate symbol: soclose
ld: 0711-224 WARNING: Duplicate symbol: Trconflag
ld: 0711-224 WARNING: Duplicate symbol: .sounlock
ld: 0711-224 WARNING: Duplicate symbol: sounlock
ld: 0711-224 WARNING: Duplicate symbol: .close
ld: 0711-224 WARNING: Duplicate symbol: close
ld: 0711-224 WARNING: Duplicate symbol: .___memcmp64
ld: 0711-224 WARNING: Duplicate symbol: ___memcmp64
ld: 0711-224 WARNING: Duplicate symbol: .kioctl
ld: 0711-224 WARNING: Duplicate symbol: .lookupname
ld: 0711-224 WARNING: Duplicate symbol: lookupname
ld: 0711-224 WARNING: Duplicate symbol: .socreate
ld: 0711-224 WARNING: Duplicate symbol: socreate
ld: 0711-224 WARNING: Duplicate symbol: .soreserve
ld: 0711-224 WARNING: Duplicate symbol: soreserve
ld: 0711-224 WARNING: Duplicate symbol: .sobind
ld: 0711-224 WARNING: Duplicate symbol: sobind
ld: 0711-344 See the loadmap file afs.ext.64.loadmap for more information.
ld: 0711-319 WARNING: Exported symbol not defined: afs_setTimeHost
ld: 0711-319 WARNING: Exported symbol not defined: rxevent_nFree
ld: 0711-319 WARNING: Exported symbol not defined: rxevent_nPosted
ld: 0711-319 WARNING: Exported symbol not defined: freeSQEList_lock
ld: 0711-319 WARNING: Exported symbol not defined: rxevent_lock
ld: 0711-317 ERROR: Undefined symbol: .vprintf
make: 1254-004 The error code from the last command is 8.
The reference is from src/rx/rx_kcommon.c:
void
osi_Msg(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
#if defined(AFS_LINUX_ENV)
vprintk(fmt, ap);
#else
vprintf(fmt, ap);
#endif
va_end(ap);
}
Just as another sloppy fix I tried several variants of print functions that
could substitute on AIX, but they all fail with a missing symbol. How did this
work on AIX in the past?
Thank you!
-Ben