[OpenAFS-devel] Compiling 1.3.74 on IRIX 6.5 6.5.19m
Martin MOKREJŠ
mmokrejs@ribosome.natur.cuni.cz
Fri, 10 Dec 2004 10:31:03 +0100
Harald Barth wrote:
> We happened to find this strange bug on IRIX:
>
> $ /bin/uname -R
> 6.5 6.5.19m
>
> Linking of the libafs*.o kernel modules goes wrong like this:
>
>
>>/usr/bin/ld -n32 -IPA -elf -r -d -G 0 -o libafs.nonfs.o \
>> afs_atomlist.o afs_lhash.o afs_analyze.o afs_axscache.o afs_buffer.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_dynroot.o afs_init.o afs_lock.o afs_mariner.o afs_memcache.o afs_osi.o afs_osidnlc.o afs_osi_alloc.o afs_osi_pag.o afs_osi_uio.o afs_osi_vget.o afs_segments.o afs_server.o afs_stat.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 afsaux.o Kvice.xdr.o xdr_arrayn.o xdr_array.o xdr_int32.o xdr_int64.o Kvice.cs.o fcrypt.o rx.o rx_rdwr.o rx_clock.o rx_event.o rx_globals.o rx_kmutex.o rx_knet.o rx_kcommon.o rx_misc.o rx_null.o rx_getaddr.o rx_packet.o rx_multi.o xdr_rx.o Kvldbint.cs.o Kvldbint.xdr.o Kcallback.ss.o Krxstat.ss.!
>
> o K
>
>> rxstat.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 afs_uuid.o base64.o osi_groups.o osi_idbg.o osi_file.o osi_inode.o osi_misc.o osi_sleep.o osi_vm.o osi_vnodeops.o afs_call.o afs_pioctl.o osi_vfsops.o
>> /usr/bin/../../usr/lib32/cmplrs/ld32 -from libafs.nonfs.o.ipaa05OAF/linkopt.1409679
>
>
> But make did not detect this and continued...
>
> After some experiments I concluded that this seems to be an
> incompability between SGI's ld and GNU's make. But I don't know why.
> Frustrating. So I used SGI's make and now it works. Just wanted you to
> know in case you run into the same problem.
Hi,
I'm not sure what error you really report here, but two notes:
- you have to compile kernel using using same compiler as the rest
of the kernel, therefore SGI cc/ld.
- because of that, some time ago (a year?) I went through all of the SGI Makefile
and changed the compile flags to use -IPA and proper CPU architecture,
to improve the speed in general and also to get best out of any hardware.
Typically, motherboard can house different processor types, and my patch
depends rather on processor then on motherboard type. In cases where
it compiles based on the motherboard type, it produces code for the
worst processor type supported on that particular motherboard. Also, before
that my patch was commited by Derrick, on some 64bit platform because
of the mess in CFLAGS the modules built were 32bit only, if I remember
right.
- it seems I tested that on 6.5.22m and GNU make 3.80 (as don't don't
remember doing any update of that machine) and using
MIPSpro Compilers: Version 7.3.1.2m
Martin