https://surfer.nmr.mgh.harvard.edu/fswiki/Build_Issues_Solutions?action=edit

Build Issues and Solutions.

Freesurfer is a large complex software package with multiple developers and dependencies on many 3rd party libraries. Getting Freesurfer to build can be difficult and the slightest change can have a domino effect creating errors and that break the build. The following is a list of issues that have been encountered that break the build and my attempt at solving them. It is meant as a source of documention so that I do not have remember all this stuff and well as a guide to fix future, similar issues.


Error message:

/usr/lib/libGL.so: could not read symbols: File in wrong format

Synopsis:
This error was a doozy and cause me all kinds of headaches. After spending much time isolating the issue on my own, me and Nick were able to overcome the final hurdle together.

Turns out that NVIDIA's update installer had a bug. When upgrading to NVIDIA's OpenGL libs to the 319.* series and using libtool to build, one will get the error above. This is because NVIDIA's update installer has a bug that causes it to install the 32-bit compatibility libGL.la into the wrong location. See the following thread:

https://devtalk.nvidia.com/default/topic/606774/linux/autools-build-fails-with-libgl-so-319-due-to-change-in-libgl-la/

Solution/Workaround:
The way to get the libtool to use the /usr/lib64/libGL.so file instead of /usr/lib/libGL.so is to modify the file /usr/lib64/libGL.la and make the following change on the last line of the file:

< libdir='/usr/lib'
---
> libdir='/usr/lib64'