On Sep 17, 2010, at 14:36, Michael Dickens wrote:
> On Sep 17, 2010, at 3:22 PM, Ryan Schmidt wrote:
>> AFAIK the differences do still exist and will always exist. The problem as I
>> understand it is if you try to compile library A with compiler X and compile
>> program B (which links with library A) with compiler Y, inexplicable
>> problems can surface, which is why all the science ports are supposed to be
>> standardized to use a single compiler. (All of MacPorts, really, uses a
>> single compiler -- Apple's, but with the science ports, they often need to
>> use fortran, which means non-Apple GCC, and if one port is doing that, then
>> its dependencies should have the option to use that same compiler too.)
>
> Ah; yes. What you're referring to is the case that:
>
> + library A required libgfortran (or libgcc)
>
> + library B required library A -and- libgfortran (or libgcc) as 1st order
> link libraries (meaning that symbols would end up undefined without linking
> to both of those libraries)
Actually, what I was referring to is the case that:
* library A requires fortran, and therefore specifies configure.compiler
macports-gcc-4.4 or some other MacPorts GCC
* this causes library A to not only use that compiler's fortran, but also use
that compiler's libgcc_s.1.dylib, for example:
$ otool -L /opt/local/lib/liblapack.dylib
/opt/local/lib/liblapack.dylib:
/opt/local/lib/liblapack.dylib (compatibility version 0.0.0, current
version 0.0.0)
/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
(compatibility version 1.0.0, current version 219.0.0)
/opt/local/lib/libatlas.dylib (compatibility version 0.0.0, current
version 0.0.0)
/opt/local/lib/gcc44/libgfortran.3.dylib (compatibility version 4.0.0,
current version 4.0.0)
/opt/local/lib/gcc44/libgcc_s.1.dylib (compatibility version 1.0.0,
current version 1.0.0) <---
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.0)
* program B wants to link with library A; it must then use the same compiler
otherwise it would link with a different libgcc_s.1.dylib which might not be
compatible
Now, in the specific case of py*-numpy and its dependency atlas, it seems that
py*-numpy doesn't link with any libgcc_s.1.dylib so it might not be affected by
this problem.
Bear in mind I have not actually experienced any of the issues we're talking
about here, but this is how it was explained to me.
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev