That worked. Thanks for the help everyone! I wrote up a small procedure for the guys at work to build the modules and since everyone here contributed I will share it with you.
Mods for compiling pvfs2 kernel modules on Suse 10.1 PPC (Apple Xserve PPC970), Had to add following 64-bit RPMs, rpm -i libgcc-64bit-4.1.0-25.ppc.rpm rpm -i libstdc++-64bit-4.1.0-25.ppc.rpm rpm -i libstdc++-devel-64bit-4.1.0-25.ppc.rpm rpm -i db-64bit-4.3.29-13.ppc.rpm rpm -i binutils-64bit-2.16.91.0.5-18.ppc.rpm rpm -i glibc-devel-64bit-2.4-31.1.ppc.rpm rpm -i glibc-locale-64bit-2.4-25.ppc.rpm Changed Makefile.in as follows, Index: Makefile.in =================================================================== RCS file: /projects/cvsroot/pvfs2/Makefile.in,v diff -u -N -r1.228 -r1.229 --- Makefile.in 27 Nov 2006 19:51:03 -0000 1.228 +++ Makefile.in 29 Nov 2006 22:06:27 -0000 1.229 @@ -670,6 +670,7 @@ $(ADMINTOOLS): %: %.o $(LIBRARIES) $(ADMINTOOLS_SERVER): %: %.o $(LIBRARIES) lib/libpvfs2-server.a $(KERNAPPS): %: %.o $(LIBRARIES) +$(KERNAPPSTHR): %: %.o $(LIBRARIES_THREADED) # target for building _just_ the statecomp tool #statecomp: $(STATECOMP) I set the $CC variable because for some reason the CFLAG does not get passed to the gcc linker, export CC="gcc -m64" export CFLAGS="-m64" Issued following configure line disabling the server because it will fail otherwise due to not having 64-bit db libraries installed, /configure --prefix=/opt/pvfs2 --with-kernel=/usr/src/linux-2.6.16.21-0.25 --without-openssl --disable-server The rest is the regular stuff, #make kmod #make kmod_install #depmod #modprobe pvfs2 On 12/4/06 5:50 PM, "Sam Lang" <[EMAIL PROTECTED]> wrote: > > Kirby, > > The following patch should fix the problem you're seeing. You > mentioned that you're using CVS...this has been committed to trunk, > but didn't make it into the 2.6 branch yet. We'll make sure that > happens soon. Sorry for the trouble. > > -sam > > Index: Makefile.in > =================================================================== > RCS file: /projects/cvsroot/pvfs2/Makefile.in,v > diff -u -N -r1.228 -r1.229 > --- Makefile.in 27 Nov 2006 19:51:03 -0000 1.228 > +++ Makefile.in 29 Nov 2006 22:06:27 -0000 1.229 > @@ -670,6 +670,7 @@ > $(ADMINTOOLS): %: %.o $(LIBRARIES) > $(ADMINTOOLS_SERVER): %: %.o $(LIBRARIES) lib/libpvfs2-server.a > $(KERNAPPS): %: %.o $(LIBRARIES) > +$(KERNAPPSTHR): %: %.o $(LIBRARIES_THREADED) > > # target for building _just_ the statecomp tool > #statecomp: $(STATECOMP) > > On Dec 4, 2006, at 4:58 PM, Kirby Cliff wrote: > >> When I have LDFLAGS set to "-m64" I get this message, >> ld: unrecognised emulation mode: 64 >> Supported emulations: elf32ppclinux elf32ppc elf32ppcsim elf64alpha >> alpha >> armelf_linux armelf hppalinux elf_i386 i386linux elf64_ia64 m68kelf >> m68klinux elf64ppc elf_s390 elf64_s390 elf32_sparc sparclinux >> elf64_sparc >> sun4 elf_x86_64 ppcmacos >> make[3]: *** [/home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/pvfs2.o] >> Error 1 >> make[2]: *** [_module_/home/trip3/pvfs-2.6.0/src/kernel/linux-2.6] >> Error 2 >> make[1]: *** [default] Error 2 >> make: *** [just_kmod] Error 2 >> >> I did not have any 'lib/libpvfs2-threaded.*' files created after the >> compilation so I guess the configure script somehow was set not to >> build >> threaded libraries but ' pvfs2-client-core-threaded' has >> dependencies for >> those libraries. >> >> After a make distclean I searched for any residual *.a or *.so >> files in the >> build tree but none existed. >> >> Here are the steps I took to get it to compile and link but I have not >> attempted to insmod the module until the threaded libraries issue is >> resolved. >> >> # make distclean >> # find . -name "*.a" --no results >> # ./configure --with-kernel=/usr/src/linux-2.6.16.21-0.25 --without- >> openssl >> --disable-server >> # make kmod >> .. >> /usr/bin/ld: cannot find -lpvfs2-threaded >> collect2: ld returned 1 exit status >> make: *** [src/apps/kernel/linux/pvfs2-client-core-threaded] Error 1 >> # make kmod V=1 >> .. >> gcc -m64 -o src/apps/kernel/linux/pvfs2-client-core-threaded -L >> /home/trip3/pvfs-2.6.0/lib -rdynamic >> src/apps/kernel/linux/pvfs2-client-core.o -lpvfs2-threaded -lpthread >> /usr/bin/ld: cannot find -lpvfs2-threaded >> collect2: ld returned 1 exit status >> make: *** [src/apps/kernel/linux/pvfs2-client-core-threaded] Error 1 >> >> At this point I replaced '-lpvfs2-threaded' with '-lpvfs2' and >> reissued the >> gcc command, >> # gcc -m64 -o src/apps/kernel/linux/pvfs2-client-core-threaded -L >> /home/trip3/pvfs-2.6.0/lib -rdynamic >> src/apps/kernel/linux/pvfs2-client-core.o -lpvfs2 -lpthread >> #make kmod >> Building modules, stage 2. >> MODPOST >> >> Thoughts? >> >> >> On 12/4/06 4:31 PM, "Robert Latham" <[EMAIL PROTECTED]> wrote: >> >>> On Mon, Dec 04, 2006 at 03:25:32PM -0600, Kirby Cliff wrote: >>>> I did not have the 64bit binutils installed. Unfortunately >>>> installing that >>>> did not fix my problem. I have been able to get a bit farther by >>>> unsetting >>>> the LDFLAGS and setting CC to "gcc -m64" but this is the error I >>>> get, >>> >>> You needed to remove -m64 from LDFLAGS? >>> >>>> suse-fs3:/home/trip3/pvfs-2.6.0 # make kmod V=1 >>>> for i in pvfs2-utils.c devpvfs2-req.c pvfs2-cache.c dcache.c >>>> file.c inode.c >>>> dir.c namei.c super.c pvfs2-mod.c pvfs2-bufmap.c symlink.c >>>> xattr.c acl.c >>>> xattr-trusted.c xattr-default.c waitqueue.c pvfs2-proc.c pvfs2- >>>> kernel.h >>>> pvfs2-dev-proto.h pvfs2-bufmap.h upcall.h downcall.h pvfs2- >>>> proc.h; do \ >>>> if [ ! -f $i -a ! -L $i ] ; then \ >>>> ln -s ../../.././src/kernel/linux-2.6/$i ;\ >>>> fi ;\ >>>> done >>>> make -C /usr/src/linux-2.6.16.21-0.25 >>>> SUBDIRS=/home/trip3/pvfs-2.6.0/src/kernel/linux-2.6 modules >>>> rm -rf /home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/.tmp_versions >>>> mkdir -p /home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/.tmp_versions >>>> make -f scripts/Makefile.build >>>> obj=/home/trip3/pvfs-2.6.0/src/kernel/linux-2.6 >>>> Building modules, stage 2. >>>> make -rR -f /usr/src/linux-2.6.16.21-0.25/scripts/Makefile.modpost >>>> scripts/mod/modpost -m -a -i /usr/src/linux-2.6.16.21-0.25/ >>>> Module.symvers >>>> -I /home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/Modules.symvers -o >>>> /home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/Modules.symvers -s / >>>> dev/null >>>> vmlinux /home/trip3/pvfs-2.6.0/src/kernel/linux-2.6/pvfs2.o >>> >>> this all looks ok >>> >>>> gcc -m64 -o src/apps/kernel/linux/pvfs2-client-core-threaded -L >>>> /home/trip3/pvfs-2.6.0/lib -rdynamic >>>> src/apps/kernel/linux/pvfs2-client-core.o -lpvfs2-threaded - >>>> lpthread >>>> /usr/bin/ld: cannot find -lpvfs2-threaded >>>> collect2: ld returned 1 exit status >>>> make: *** [src/apps/kernel/linux/pvfs2-client-core-threaded] Error 1 >>> >>> What might have happened here is that the libpvfs2-threaded.a (or >>> libpvfs2-threaded.so, if you built with shared libraries) was >>> built in >>> 32 bit mode, but a 'make clean' didn't get rid of it. We've fixed >>> this in CVS, but in the meantime, remove 'lib/libpvfs2-threaded.*' >>> and >>> anything that looks like '*-threaded.o' left behind after a 'make >>> clean'. Rebuild and you should get back on track. >>> >>> ==rob >> >> >> _______________________________________________ >> Pvfs2-users mailing list >> [email protected] >> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users >> > _______________________________________________ Pvfs2-users mailing list [email protected] http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
