Install Staden-src-1-7-0 on /linux-x86_64

2007-02-06
2013-04-18
  • Hi, I have problem compile the package and here are what I have done:

    # first compile all the libraries
    cd /usr/local/staden/staden-src-1-7-0
    export STADENROOT=`pwd`
    . staden.profile
    cd src
    make -f Makefile.thirdparty

    # the program ran for a while then an error appear saying /usr/local/staden/staden-src-1-7-0/lib/iwidgets can't be removed because it's a directory. So I manually delete the directory and rerun make:

    rm /usr/local/staden/staden-src-1-7-0/lib/iwidgets
    make -f Makefile.rhirdparty

    # at this point everything seems to be fine (but I was just guessing)
    # Then I compile the staden package
    cd /usr/local/staden/staden-src-1-7-0
    make 2>&1 | tee make.out

    # then the program ran for a while and show the errors below (far below):

    In file included from include/Read.h:43,
                     from sff/linux-x86_64-binaries/../sff.c:26:
    include/os.h:131:1: warning: "NEED_VA_COPY" redefined
    <command line>:10:1: warning: this is the location of the previous definition
    sff/linux-x86_64-binaries/sff.o
    cc -L../lib/linux-x86_64-binaries  -shared -o ../lib/linux-x86_64-binaries/libread.so  read/linux-x86_64-binarie
    s/Read.o read/linux-x86_64-binaries/translate.o read/linux-x86_64-binaries/scf_extras.o utils/linux-x86_64-binar
    ies/find.o utils/linux-x86_64-binaries/mach-io.o utils/linux-x86_64-binaries/traceType.o utils/linux-x86_64-bina
    ries/read_alloc.o utils/linux-x86_64-binaries/compress.o utils/linux-x86_64-binaries/open_trace_file.o utils/lin
    ux-x86_64-binaries/hash_table.o utils/linux-x86_64-binaries/mFILE.o utils/linux-x86_64-binaries/vlen.o scf/linux
    -x86_64-binaries/read_scf.o scf/linux-x86_64-binaries/write_scf.o scf/linux-x86_64-binaries/misc_scf.o exp_file/
    linux-x86_64-binaries/expFileIO.o plain/linux-x86_64-binaries/seqIOPlain.o abi/linux-x86_64-binaries/fpoint.o ab
    i/linux-x86_64-binaries/seqIOABI.o alf/linux-x86_64-binaries/seqIOALF.o ctf/linux-x86_64-binaries/ctfCompress.o
    ctf/linux-x86_64-binaries/seqIOCTF.o ztr/linux-x86_64-binaries/compression.o ztr/linux-x86_64-binaries/ztr_trans
    late.o ztr/linux-x86_64-binaries/ztr.o sff/linux-x86_64-binaries/sff.o  -lz   -lmisc  -L/usr/lib64 -lcurl -L/usr
    /kerberos/lib -L/usr/kerberos/lib64 -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -
    lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -L/usr/kerberos/lib -L/usr/kerberos/lib64 -lidn -lssl -lcrypto
    -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lz
    /usr/bin/ld: ../lib/linux-x86_64-binaries/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can n
    ot be used when making a shared object; recompile with -fPIC
    ../lib/linux-x86_64-binaries/libz.a: could not read symbols: Bad value
    collect2: ld returned 1 exit status
    make[2]: *** [../lib/linux-x86_64-binaries/libread.so] Error 1
    make[2]: Leaving directory `/usr/local/staden/staden-src-1-7-0/src/io_lib'
    make[1]: *** [io_lib] Error 2
    make[1]: Leaving directory `/usr/local/staden/staden-src-1-7-0/src'
    make: *** [all] Error 2

    # I am going to send you an email with an attachment of 'make.out' file in addition to the above same text. Is the email address 'archive@iubio.bio.indiana.edu' working?? Do you mind sending your reply to maoj@helix.nih.gov also? THank you very much!

     
    • I got the exact same problem on my x86_64 system. Did you solve yours?

       
    • Hallo Jean,

      ... I solved the problem you had using the following procedure:

      The problem is indeed the compiled libz.a . To recompile that piece using the -fPIC compiler option solves the problem. How to do this:

      1. go into the directory <wherever_you_inst_it>/src/zlib (zlib should be a symlink to zlib-1.2.2)
      2. do a "make clean"
      3. edit Makefile and change the following line

      CFLAGS=-O3 -DUSE_MMAP

      to:

      CFLAGS=-O3 -DUSE_MMAP -fPIC

      4. run "make" - it should compile the zlib.a file
      5. cp the zlib.a file to ../lib/linux-x86_64-binaries/libz.a
      6. cd to <wherever_you_inst_it>/src and do a "make -f Makefile.thirdparty" again

      ... I encounter in another problem after that:

      the wrong(32bit) libX was uses in linking stuff in tk_utils. To prevent that problem you will have to edit the <wherever_you_inst_it>/src/mk/linux-x86_64.mk file.

      Change the line:

      XBIN    = /usr/X11R6/lib

      in:

      XBIN    = /usr/X11R6/lib64 (or wherever X11 is installed)

      This was on my RHEL Linux - but should be the same on Fedora for instance ...

      Doing again a "make -f Makefile.thirdparty" should now compile the rest of the Staden package ...

      ... hope this will help you a bit ... I posted it also to the bio.net list ...
      Greetings

      Mike