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.

1 comment:

  1. As I write this, it is Sept. 2018 and I built a CentOS 7 system and installed TS1.3 in there. I encountered the same issue of AU compilation and the $opt_native=1; indeed took care of the problem.

    Rajan

    ReplyDelete