all those c++ ABI variations in ports

Diane Bruce db at db.net
Sun Jun 28 23:02:13 UTC 2015


The problem is now known. 
It's a lack of quad math support in our libcompiler_rt.
gfortran requires quad math support which our clang compiler does not
support yet, since Fortran itself needs quad math by the standard.
Normally this is never a problem if rpath is used and the local/lib
libgcc is used, but it does become a problem if a core program is
used which loads a module compiled with gfortran. The module loaded
expects quad math and will fail against our version of libgcc. Actually
it will fail in rtld.c code complaining that our version of libgcc
is not compatible with the version the gfortran code was compiled
against.



On Mon, Apr 27, 2015 at 12:56:36PM -0700, Don Lewis wrote:
> On 27 Apr, Diane Bruce wrote:
> > A problem I have not seen noted here are ports that load run time modules.
> > 
> > gnuradio is a case in point. The dependancies are all built (by default)
> > with stock clang++ & system libs but some of the runtime code it loads
> > for operation has modules compiled with gfortran. 
> 
> That should be a valid combination.  Fortran is part of ports gcc, but
> code compiled with it doesn't link to libstdc++, so there should not be
> a conflict with code compiled with clang++ and linked to libc++.  I
> haven't run into any issues with octave built with openblas, which is
> the combo that you describe.
> 
> % ldd /usr/local/bin/octave
> /usr/local/bin/octave:
> 	libX11.so.6 => /usr/local/lib/libX11.so.6 (0x800823000)
> 	libutil.so.9 => /lib/libutil.so.9 (0x800b5c000)
> 	libm.so.5 => /lib/libm.so.5 (0x800d6e000)
> 	libc++.so.1 => /usr/lib/libc++.so.1 (0x800f96000)
> 	libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x801255000)
> 	libgcc_s.so.1 => /usr/local/lib/gcc48/libgcc_s.so.1 (0x801471000)
> 	libthr.so.3 => /lib/libthr.so.3 (0x801687000)
> 	libc.so.7 => /lib/libc.so.7 (0x8018ab000)
> 	libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x801c57000)
> 	librpcsvc.so.5 => /usr/lib/librpcsvc.so.5 (0x801e76000)
> 	libXau.so.6 => /usr/local/lib/libXau.so.6 (0x80207f000)
> 	libpthread-stubs.so.0 => /usr/local/lib/libpthread-stubs.so.0 (0x802281000)
> 	libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x802482000)
> 
> 
> % ldd /usr/local/lib/octave/3.8.2/liboctave.so 
> /usr/local/lib/octave/3.8.2/liboctave.so:
> 	libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x802341000)
> 	libumfpack.so.1 => /usr/local/lib/libumfpack.so.1 (0x8025aa000)
> 	libsuitesparseconfig.so.1 => /usr/local/lib/libsuitesparseconfig.so.1 (0x802858000)
> 	libcholmod.so.1 => /usr/local/lib/libcholmod.so.1 (0x802a59000)
> 	libamd.so.1 => /usr/local/lib/libamd.so.1 (0x802d43000)
> 	libcamd.so.1 => /usr/local/lib/libcamd.so.1 (0x802f4a000)
> 	libcolamd.so.1 => /usr/local/lib/libcolamd.so.1 (0x803152000)
> 	libccolamd.so.1 => /usr/local/lib/libccolamd.so.1 (0x803359000)
> 	libcxsparse.so.1 => /usr/local/lib/libcxsparse.so.1 (0x803564000)
> 	libarpack.so.1 => /usr/local/lib/libarpack.so.1 (0x80378f000)
> 	libqrupdate.so.1 => /usr/local/lib/libqrupdate.so.1 (0x803a27000)
> 	libfftw3_threads.so.3 => /usr/local/lib/libfftw3_threads.so.3 (0x803c3d000)
> 	libfftw3.so.3 => /usr/local/lib/libfftw3.so.3 (0x803e43000)
> 	libfftw3f_threads.so.3 => /usr/local/lib/libfftw3f_threads.so.3 (0x8041a8000)
> 	libfftw3f.so.3 => /usr/local/lib/libfftw3f.so.3 (0x8043ae000)
> 	libopenblasp.so => /usr/local/lib/libopenblasp.so (0x804800000)
> 	libreadline.so.8 => /lib/libreadline.so.8 (0x806576000)
> 	libncurses.so.8 => /lib/libncurses.so.8 (0x8067b9000)
> 	libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x806a06000)
> 	libgfortran.so.3 => /usr/local/lib/gcc48/libgfortran.so.3 (0x806c79000)
> 	libquadmath.so.0 => /usr/local/lib/gcc48/libquadmath.so.0 (0x806f90000)
> 	libutil.so.9 => /lib/libutil.so.9 (0x8071cb000)
> 	libc++.so.1 => /usr/lib/libc++.so.1 (0x8073dd000)
> 	libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x80769c000)
> 	libm.so.5 => /lib/libm.so.5 (0x8078b8000)
> 	libthr.so.3 => /lib/libthr.so.3 (0x807ae0000)
> 	libc.so.7 => /lib/libc.so.7 (0x800821000)
> 	libgcc_s.so.1 => /usr/local/lib/gcc48/libgcc_s.so.1 (0x807d04000)
> 	libssl.so.7 => /usr/lib/libssl.so.7 (0x807f1a000)
> 	libheimntlm.so.11 => /usr/lib/libheimntlm.so.11 (0x808186000)
> 	libhx509.so.11 => /usr/lib/libhx509.so.11 (0x80838c000)
> 	libcom_err.so.5 => /usr/lib/libcom_err.so.5 (0x8085d6000)
> 	libcrypto.so.7 => /lib/libcrypto.so.7 (0x8087d8000)
> 	libasn1.so.11 => /usr/lib/libasn1.so.11 (0x808bce000)
> 	libwind.so.11 => /usr/lib/libwind.so.11 (0x808e6b000)
> 	libheimbase.so.11 => /usr/lib/libheimbase.so.11 (0x809093000)
> 	libroken.so.11 => /usr/lib/libroken.so.11 (0x809297000)
> 	libcrypt.so.5 => /lib/libcrypt.so.5 (0x8094a9000)
> 	libz.so.6 => /lib/libz.so.6 (0x8096c9000)
> 	libkrb5.so.11 => /usr/lib/libkrb5.so.11 (0x8098df000)
> 	libgssapi.so.10 => /usr/lib/libgssapi.so.10 (0x809b57000)
> 	libgssapi_krb5.so.10 => /usr/lib/libgssapi_krb5.so.10 (0x809d60000)
> 	libheimipcc.so.11 => /usr/lib/private/libheimipcc.so.11 (0x809f7e000)
> 
> _______________________________________________
> freebsd-ports at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"
> 

-- 
- db at FreeBSD.org db at db.net http://www.db.net/~db


More information about the freebsd-gnome mailing list