Friday, April 30, 2010

AU compilation Issues - part II

AU compilation for TS 1.3 PL10 solved : 

Even though DRX499 was running only a 32 bit distro, au compilation was failing even after I installed the latest glibc.   The failure was occurring with the linker binary i.e. ld. The Bruker's stock 'ld' did not work for some reason.  The kludge I found in the web is one of two types :

  • Edit the /usr/lib/libc.so.  Change the following phrase : GROUP ( /lib/libc.so.6  /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.2 ) ) to  GROUP ( /lib/libc.so.6  /usr/lib/libc_nonshared.a  ). I could confirm indeed that this works.  People out there add a warning to change the phrase back to the original after you are done, since some other application will need this original configuration of libc.so
  • Alternatively, link the /usr/bin/ld  script to the appropriate location within your application.  In my case it is :  $TSHOME/gnu/i686-pc-linux-gnu/bin.  This too does the job. 
But it turns out that Bruker itself provides an elegant alternative to this without messing with the system or the application's distribution.   Here it is :

  • Edit the file $TSHOME/exp/stan/nmr/au/makeau

  • Uncomment the # $opt_native = 1; 

This perl script, which is responsible for handling the 'au' program compilation, then sources  'gcc' as well as the linker scripts from the system's own distro rather than from the $TSHOME/gnu tree.  I could confirm that the compilation proceeds without any issues now.

Tuesday, April 20, 2010

Topspin Display issues and Fedora - in General

I am revisiting a topic that has been already touched upon, but since this seems to be a recurring theme, I am summarizing the remedy to these problems in this post.
For example, look at this xwinplot related post earlier.

The common problem with xwinplot, nmrsim or similar is the fact that, missing display libraries make the said program die quietly.  This makes it impossible either to display a pulse program or start up the plot editor and do your thing.   I had referred to this Bruker bug post earlier, which captures the content of the problem.   The simple take home message that will help us solve this display related problem is this.  In a shell window, run the following (I am using the example of nmrsim here):

/opt/topspin/topspin -e ldd /opt/topspin/prog/mod/nmrsim.mod

You can substitute plot in place of nmrsim.mod if you are trying to troubleshoot the failure of plot module.

Now,  you get a listing of all the shared object libraries that are required and found in your distro. example : libXt.so.6 => /usr/lib/libXt.so.6

If one or more libraries are missing, on the other hand, you see something like this:

libXmu.so.6 => not found
libXpm.so.4 => not found

Your job now is to simply install these missing libraries. In case of Fedora you can simply search for libXpm or libXmu using yum and install them.  Tip:  Just install the i386 or i686.  For Topspin, you don't need the x86_64 libraries any way.  

Now fire up the respective program withing TS viz. nmrsim or plot and confirm that it works.  It did, for me.    You can iterate this procedure for any other modules with which you might have trouble later on.  The message is the same.  You are missing some important shared libraries.  Go find them !