Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Problem with installation of staden-2.0.0b4

2010-02-05
2013-04-18
  • Hello,

    After a successfull configure command, when I "make" staden I got these errors:

    cd mutscan && make -f /root/soft/staden-2.0.0b4-src/stad-build/../mutscan/Makefile   BUILD=/root/soft/staden-2.0.0b4-src/stad-build SRC=/root/soft/staden-2.0.0b4-src/stad-build/../mutscan SUBDIR=mutscan all
    make: Entering directory `/root/soft/staden-2.0.0b4-src/stad-build/mutscan'
    make: Nothing to be done for `all'.
    make: Leaving directory `/root/soft/staden-2.0.0b4-src/stad-build/mutscan'
    cd convert && make -f /root/soft/staden-2.0.0b4-src/stad-build/../convert/Makefile   BUILD=/root/soft/staden-2.0.0b4-src/stad-build SRC=/root/soft/staden-2.0.0b4-src/stad-build/../convert SUBDIR=convert all
    make: Entering directory `/root/soft/staden-2.0.0b4-src/stad-build/convert'
    LD_LIBRARY_PATH=/root/soft/staden-2.0.0b4-src/stad-build/lib:$LD_LIBRARY_PATH gcc  -g -L/root/soft/staden-2.0.0b4-src/stad-build/lib  -o convert list.o main.o dapIO.o dapDB.o bapIO.o bapDB.o gapDB.o process.o flat_sd.o   -lgfortran -ldl   -lgap
    main.o: In function `get_db':
    main.c:(.text+0xb3): warning: the `gets' function is dangerous and should not be used.
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `low_level_vectors_swapped64'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_lock_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_header_info_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_open_database_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `low_level_vectors32'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_unlock_file_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_fast_read_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_view_info_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_fast_writev_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_fast_write_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_lock_file_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_flush_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_readv_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_read_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_writev_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_abandon_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_disconnect_client_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `gerr_set_lf'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_fast_readv_N_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `low_level_vectors_swapped32'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_remove_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `low_level_vectors64'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_connect_client_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_write_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `gerrors'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_unlock_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_rec_info_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_upgrade_'
    /root/soft/staden-2.0.0b4-src/stad-build/lib/libgap.so: undefined reference to `g_shutdown_database_'
    collect2: ld returned 1 exit status
    make: ***  Error 1
    make: Leaving directory `/root/soft/staden-2.0.0b4-src/stad-build/convert'
    make: ***  Error 2

    I saw that those symbols are defined under staden-src-2.0.0b4/g/*.h and I assume that if the library has been created is because the information is there, so why when using the symbols in another program (main.c) those errors appear?

    I already set all flags with the tk, tcl, io_lib, tklib, tcllib information (no samtools installed),
    In fact there is something a little bit strange, because when configure is checking for my configuration says that : Staden-io_lib is not there, the next line says that io_lib IS there, is this because of a rename of the package? Are those the same?

    Thanks in advance for your help,
    j

     
  • James Bonfield
    James Bonfield
    2010-02-08

    io_lib and staden-io_lib are the same. Various linux distributions wanted it renamed, with good reason as the previous name was far too generic once it became more of a mainstream package used by other tools.

    As for the symbols. In theory they're all in the libtgap.so file, which as you correctly noted are from the g/* directory. What system are you building on?

    I see the link line is:

    LD_LIBRARY_PATH=/root/soft/staden-2.0.0b4-src/stad-build/lib:$LD_LIBRARY_PATH gcc -g -L/root/soft/staden-2.0.0b4-src/stad-build/lib -o convert list.o main.o dapIO.o dapDB.o bapIO.o bapDB.o gapDB.o process.o flat_sd.o -lgfortran -ldl -lgap
    

    Ie no mention of -ltgap. In theory this isn't necessary as when libgap.so was linked it will have been linked against -ltgap. However on some operating systems following a chain of dependencies during dynamic linking isn't too well supported. (I think Windows may fall under this category.) It's worth testing by editing the convert/Makefile to explicitly add "-ltgap"  to see if this resolves the problem. If so I need to be more explicit in the link lines.

    James

     
  • Hello,

    Thanks for your answer, The system is a Fedora Core 8, 64bit.

    I don't know if I'm confused or I missed something. The library that complains is libgap not the libtgap, in fact I can't see any libtgap in the lib directory that is created under the build directory… ;(
    BTW i added the flag with the new library but as expected the compiler complains because it can't find the library…
    Where are those libraries created in the Makeile (libgap, libg,libspin…)? I was searching for it in order to check how libgap is created to add this information to this convert folder but I couldn't find it..
    If I can provide some more information let me know!
    My configure line looks like this:
    ../configure -prefix=<non_local_install_dir>/staden-2.0.0b4 -with-lzma=<non_local_install_dir>l/xz-4.999.9b/ -with-io-lib=<non_local_install_dir>l/io-lib-1.12.2/ -with-tklib=<non_local_install_dir>//tklib-0.5/lib/tklib0.5/ LIBS=-lgfortran -enable-64bit  -with-tk=/usr/lib64/  -with-tcl=/usr/lib64/  -with-itcl=/usr/lib64 -with-itk=/usr/lib64 -with-samtools=<non_local_install_dir>/samtools-0.1.7a

    Thanks again for your help!
    j

     
  • More info:
    I noticed that the tgap directory that in the source has plenty of files, in the build is empty, in fact I checked the 2.0.0b2 version of staden and after configuring it with same line and I didn't even got a tgap directory…
    I don't know if it helps in some way…
    j

     
  • I missed that it was libgap and not libgap5, however the complaints here are still due to another library not being linked against - libg.so. (Gap4 is libgap.so and libg.so, while Gap5 is libgap5.so and libtgap.so - a bit confusing)

    My guess is there is something odd about resolving libraries on fedora compared to other linux distributions, but it may be possible to resolve it by explicitly listing all the libraries instead of relying on automatically pulling in dependencies of dependencies. The convert/Makefile contains:

      DEPS = $(GAP_LIB)

    Try changing this to:

      DEPS = $(GAP_LIB) $(G_LIB)

    to see if it resolves the problem. If so I can make the change to the master version.

     
  • Hello,
    Thanks for your reply, putting this in the convert Makefile I can see that the tgap librarie tries to get compiled but then I got this:

    main.c:(.text+0xb3): warning: the `gets' function is dangerous and should not be used.
    make: Leaving directory `/root/soft/staden-2.0.0b4-src/stad-build/convert'
    cd tgap && make -f /root/soft/staden-2.0.0b4-src/stad-build/../tgap/Makefile   BUILD=/root/soft/staden-2.0.0b4-src/stad-build SRC=/root/soft/staden-2.0.0b4-src/stad-build/../tgap SUBDIR=tgap all
    make: Entering directory `/root/soft/staden-2.0.0b4-src/stad-build/tgap'
    gcc -I/usr/include -m64 -L/usr/lib64  -I/root/soft/staden-2.0.0b4-src/g -I/include -I/software/FC8-x86_64/general/xz-4.999.9b//include -I/software/FC8-x86_64/general/xz-4.999.9b//include -DUSE_NON_CONST  -I/root/soft/staden-2.0.0b4-src/stad-build/../tgap -I/root/soft/staden-2.0.0b4-src/stad-build/../Misc -I"/usr/include/tcl-private/generic" -I"/usr/include/tcl-private/unix" -I/root/soft/staden-2.0.0b4-src/stad-build/../tk_utils -I/root/soft/staden-2.0.0b4-src/stad-build/../seq_utils -I/software/FC8-x86_64/general/io-lib-1.12.2/include  -I/software/FC8-x86_64/general/xz-4.999.9b//include -I/root/soft/staden-2.0.0b4-src/stad-build  -fPIC  -o tg_iface_g.o -c /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c
    /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c: In function ���io_database_create_files���:
    /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c:1071: error: ���dheap_t��� undeclared (first use in this function)
    /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c:1071: error: (Each undeclared identifier is reported only once
    /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c:1071: error: for each function it appears in.)
    /root/soft/staden-2.0.0b4-src/stad-build/../tgap/tg_iface_g.c:1071: error: ���h��� undeclared (first use in this function)
    make: ***  Error 1
    make: Leaving directory `/root/soft/staden-2.0.0b4-src/stad-build/tgap'
    make: ***  Error 2

    Some other unresolved dependencie problem?
    Thanks again!
    j

     
  • James Bonfield
    James Bonfield
    2010-02-12

    There's some cryptic encoding in that error message!

    So dheap_t is defined in tgap/g-alloc.h, which is included from tgap/g.h, included from tgap/iface_g.c which is the file being compiled. I think the problem here is that Gap5 is a fork of Gap4 and shares some of the same underlying files, albeit modified.

    In this case g.h exists in both tgap and g directories. Your compile line contains "-I/root/soft/staden-2.0.0b4-src/g" forcing tgap to pick up the g directory header files in preference to the ones in its own directory, which causes the error. Did you modify more than just the convert/Makefile? If so back out those changes.

     
  • I didn't touch anything else, nor even the CFLAGS variable, I just started from a fresh new uncompressed version of staden and just did the configure <options> ; make  nothing more, at some point the compiler generates this -I…

    If I just copy the line and remove this include and it worked, but I don't know how to remove this within the Makefile, I tried to remove g.h from the tg_iface.o:g.h but those flags seems to be set somewhere else and I don't see how to do it without messing something else ;(
    Thanks!
    j

     
  • It worked out! I find it, it wasn't too difficult but since I didn't knew the code… I copied the CFLAGS variable from the system.mk and removed the part from the include of the g folder and it worked out flawlessly.
    Thanks a lot for your help, maybe you can add this information (both changes in DEPS and CFLAGS) in the install/readme file :)
    j

     
  • Just to let you know:
    On a fedora core 8 with gcc 4.1.2 I had all problems that I mention, but on a fedora core 12 with gcc  4.4.2 I manage to install staden without doing any change… just configure -options; make; make install
    Probably this is a problem with gcc and not with fedora…
    j

     
  • James Bonfield
    James Bonfield
    2010-02-12

    Glad it works. Thanks for working through the various experiments to help find the solution. It all helps to make the code more robust and easier to build for others.

     
  • Hello again,
    I just realized about something particular that could affect others.
    I saw that in the bin folder there is a convert binary, there's a powerful package named Imagemagik that usually comes with the system that has a binary also called convert, if all binaries are linked in such a way that appears in the path before system's binaries that causes unexpected results (since your convert is not able to deal with images ;))
    Just a point.
    j