USE_GCC doesn't set rpath

Matthias Andree matthias.andree at gmx.de
Thu Jan 23 20:47:05 UTC 2014


Am 23.01.2014 21:41, schrieb Bernhard Fröhlich:
> 
> Am 23.01.2014 21:00 schrieb "Matthias Andree" <matthias.andree at gmx.de
> <mailto:matthias.andree at gmx.de>>:

>> If the ABIs are not compatible, then linking should not work - for
>> instance, if I compile rawtherapee with GCC, it will not link against
>> requisites built with clang.
> 
> No the problems I mean are at runtime. An example is if you have a gcc
> programm that loads other components like Qt stuff that was compiled
> with clang them there are some subtile differences that will cause
> crashes. This might also be some strange bug in our old gcc toolchain
> but so far nobody had a clue what is going wrong there.
> 
> http://lists.freebsd.org/pipermail/freebsd-emulation/2013-September/010769.html

I understand that, but I still expect the link to fail when the ABI is
compatible.  If not, some part of the system has a bad design, and
requires fixing.  One of the fixes we do not have, but that we need, is
making linking libraries of incompatible ABIs fail at link-time, rather
than at run-time.  Rationale: If you can't get it built and installed,
it obviously won't fail at runtime.

I'd say the options are just two:

1. the canonical lang/gcc version (the one without version suffixes)

and

2. the base system compiler
   (which won't give you OpenMP, for instance, on 10.0
   - it uses a clang version that isn't OpenMP-enabled).

Anything else is going to blow up.

And to be really precise, it's down to the ABI and default libraries
rather than the compiler.  (Only it's so much easier to get clang to
link with libstdc++ than getting GCC to link with libc++.)


More information about the freebsd-ports mailing list