Hi, STASH error with staden 1.7 on x86_64

  • Nobody/Anonymous

    hi everybody.
    wgen i try execute trev gap or other in console:
    [root@localhost etc]# trev
    stash: error while loading shared libraries: libtk_utils.so: cannot open shared object file: No such file or directory
    [root@localhost etc]# find / -name libtk_utils.so
    I have perl tcl itcl itk tk where is my pbm i search but no answer :&
    Thanks for your help

    • Nobody/Anonymous

      I also have tried to install staden in a amd64 it's been impossible. I have tried to compile it from 1.7.0 and from cvs but no luck. i have also tried to run it in a chroot and with the ubuntu ia32 emul libraries, but no luck again.
      Has anyone a 64 binary for linux?
      Thank you

    • Nobody/Anonymous

      On Solaris 8 (sparc64), 1.7.0 can be built with 32-bit compiler options (-xO2 -xtarget=ultra -xarch=v7), but not with 64-bit compiler options (-xO2 -xtarget=ultra -xarch=v9). Of cource, one also needs 32-bit versions of libcurl etc.  I forget what the error message said with the 64-bit compiler options, but it seemed to imply that 64-bit was not an option without a significant re-write.  Perhaps this applies to x86_64 as well.

    • Nobody/Anonymous

      Thanks, I will try it out.

    • Nobody/Anonymous

      I give up, impossible to get rid of the stash error. It's a pity because I do need a software like staden. But I also need the 64 environment.

    • Sven Klages

      Sven Klages - 2007-07-26


      i have some (stupid?) questions,

      - what system are you using ? Linux, distribution ?

      - you could compile the package but ran into trouble when executing the applications ?

      - when you say 'console', do you really mean 'console' without a X server running (doubt) ?

      - have you sourced staden.profile ? Maybe LD_LIBRARY_PATH can help ?

      - do you really need staden in 64bit ? Or are you just dependent on a 64bit linux system ?
        That could natively execute 32bit code ..


    • Nobody/Anonymous

      - I'm using ubuntu feisty, the 64 flavor.
      - I can't compile the packages. In fact I can't even compile the external libraries using Makefile.thirdparty. I have tried the 1.6.0, 1.7.0 and cvs versions.
      - By console I mean konsole, inside kde.
      - I have not sourced staden.profile for the compilacion. I don't think LD_LIBRARY_PATH could help. I have check that binaries are able to found the libraries using ldd.
      - I can execute 32bit code but for some unknown reason I can't execute Staden. I have 32 software installed, like the flash plugin and I have also installed a complete 32 chroot, but without any luck with Staden.
      Thank you for your help.
      Best regards,


    • Nobody/Anonymous

      Hi Jose,

      well, I was just asking  because many people do not need the 64bit version of staden, but are just running
      a 64bit linux system.

      I mentioned the LD_LIBRAY_PATH because in your above example you try to execute 'trev' which itself
      complains about a missing shared library, here 'libtk_utils.so'. As you have found the library in
      /usr/local/share/applications/staden-linux-1-7-0/lib/linux-binaries you should set the LD_LIBRAY_PATH

      $ export LD_LIBRAY_PATH=/usr/local/share/applications/staden-linux-1-7-0/lib/linux-binaries

      (though such libraries should reside in 'lib').

      Then see what happens if you retype 'trev'.

      To reproduce your problem I :

      - downloaded the x86 package
      - deflated the tar being logged in on a 64bit Opteron server
      - corrected the link in 'lib' pointing to the correct loction of iwidgets
      - set the LD_LIBRAY_PATH
      - typed 'gap4' ... and GUI started ...


    • Nobody/Anonymous

      Thanks for the reply.
      Following your tips I have tried it again with no luck.
      Donwload and unpack staden
      ~/ tar -xvzf staden-linux-x86-1-7-0.tar.gz

      prepare the environment
      ~/ export LD_LIBRARY_PATH=/home/jose/personal/software/staden/staden-linux-x86-1-7-0/lib/linux-binaries
      source staden.profile
      ~/ /home/jose/personal/software/staden/staden-linux-x86-1-7-0/linux-bin/trev
      exec: 83: stash: not found
      No luck.

      I have to fix the iwidgets bug.
      I don't know where to get the iwidgets4 32bit binaries. I have tried with my chroot environment. I don't know if this could work.
      Install the iwidgets4 package in a 32 chroot environment
      ~/ sudo chroot /chroot/
      ~/ sudo apt-get install iwidgets4
      ~/ exit
      ~/ cp -r /chroot/usr/lib/iwidgets4.0.1/ /home/jose/personal/software/staden/staden-linux-x86-1-7-0/lib/
      ~/ ln -sf iwidgets4.0.1/ iwidgets

      But again, no luck.
      ~/ /home/jose/personal/software/staden/staden-linux-x86-1-7-0/linux-bin/trev
      exec: 83: stash: not found

      I have also tried to install the io-lib but in my 32 environment I get an error.
      gcc  -g -O2   -o ztr_dump  ztr_dump.o ../read/libread.a   -lm
      ../read/libread.a(libread_a-open_trace_file.o): In function `find_file_url':
      /tmp/io_lib-1.10.2/read/../utils/open_trace_file.c:349: warning: the use of `tempnam' is dangerous, better use `mkstemp'
      ../read/libread.a(libread_a-compression.o): In function `zlib_dehuff':
      /tmp/io_lib-1.10.2/read/../ztr/compression.c:136: undefined reference to `inflateInit_'

      It's not trivial to install staden.
      Thanks for your help, if you have an idea on what could be the problem i will be glad to try it out.
      Best regards,


    • Nobody/Anonymous


      A stupid question... Is stash in your path?


    • Nobody/Anonymous

      I am rather late in this thread but I may some some useful info.
      I have recently tackled once again the challenge of building a true 64 bit Staden to run on several AMD64 machines. This isn't the first time I've attempted this and it has been, and still is, a very frustrating and laborious exercise.
      First, the OP's original problem:
      "stash: error while loading shared libraries: libtk_utils.so: cannot open shared object file: No such file or directory"
      is not what it seems to be. The error is probably not that 'libtk_utils.so' can't be found but rather that it was built for a 32 bit 'libc' (and 'stash' needs that library to run). However a 64 bit OS normally only has a 64 bit 'libc' (on newer Ubuntu/Kubuntu distros it is in '/lib', and '/lib64' is symlinked to that directory) and the link/loader looks for a compatible libc and can't find it. Now certainly with Kubuntu you can optionally install a 32 bit libc (it will go in '/lib32') by doing some searching and installing using the Synaptic package manager. So you should be able to run the prebuilt 32 bit Staden binary in a 64 bit OS if you get the 32 bit system libraries. You will have to do some editing to the 'staden.profile' file and manually set  the environmental variable 'MACHINE', assigning it to 'linux', because on AMD64 machines running 64 bit OSs it will normally be given the value 'linux-x86_64' by that script, but the critical subdirectories in the x86 Staden package have the name 'linux-bin' or 'linux-binaries'.
      If you must really have a 64 bit Staden then you are pretty much out of luck (I am not aware of any prebuilt 1.7 binaries for that environment) unless you want to tackle building the program suite yourself. That isn't at all straightforward. First, the 'Makefile.thirdparty' fails after only a few libraries so you have to do that all manually yourself. There is a good chance that you already have the tcl and tk libraries installed anyway, but you may not have the itcl and itk libraries. You can get these prebuilt for most distros, and for the libz as well, but the iwidgets is a bit more of a challenge. However, in my experience even getting these libraries doesn't really solve all of your problems. I was finally able to get compiled a 64 bit Staden that is apparently fully functional but a number of its critical libraries have dependencies on installed system libraries so it won't necessarily transfer easily to other OSs (even on the multiboot machine I am working on) and certainly not reliably to other computers. The is an appropriate 'mk' file in 'src/mk' (it is 'linux-x86_64.mk') so the people maintaining the package intend Staden to be usable in 64 bit OSs, but the Staden package source has become a rather unwieldy collection of Makefiles and directories and I'm afraid needs a good overhaul/streamlining.
      Obviously Staden is a great package and it would be nice to get it working on as many platforms as possible but, boy, it sure isn't a joy to work with the source code in its current state.



Log in to post a comment.