[Pvfs2-users] Compiling PVFS 2.6.0 on Suse 10.1 PPC
Sam Lang
slang at mcs.anl.gov
Mon Dec 4 18:50:35 EST 2006
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" <robl at mcs.anl.gov> 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
> Pvfs2-users at beowulf-underground.org
> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
>
More information about the Pvfs2-users
mailing list