How to get rid of the conflict between /usr/local/lib/gcc49/libgcc_s.so.1 and /lib/libgcc_s.so.1

Yuri yuri at rawbw.com
Thu Apr 20 16:40:52 UTC 2017


Currently, FreeBSD can't run software that includes both fortran and 
clang-built parts that use exceptions.

The immediate reason is that /usr/local/lib/gcc49/libgfortran.so.3 
requires a newer version of libgcc, /usr/local/lib/gcc49/libgcc_s.so.1, 
but the older version /lib/libgcc_s.so.1 is used by the rest of the system.

The immediate message is: ImportError: /lib/libgcc_s.so.1: version 
GCC_4.6.0 required by /usr/local/lib/gcc49/libgfortran.so.3 not found

libgcc update us impossible due to the licensing change, libgcc is now GPL.


One or only thing that is used in libgcc is the low level Unwind 
functionality. There are some alternative unwind implementations, for 
example https://github.com/pathscale/libunwind with the MIT license.

Anybody has an idea how to solve this problem?


One example of failure is 
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217459, but most 
science software is affected.


Yuri



More information about the freebsd-hackers mailing list