El miércoles, 27 de abril de 2016, Ryan Schmidt <ryandes...@macports.org> escribió:
> > On Apr 26, 2016, at 5:11 PM, César wrote: > > > El martes, 26 de abril de 2016, Ryan Schmidt escribió: > > > >> On Apr 26, 2016, at 4:31 PM, César wrote: > >> > >> > After installing GCC 5.3.0 in Tiger, I realized that if I invoke ld > from the command line, I'm actually invoking /opt/local/bin/ld. I realize > that GCC 5.3.0 may require a newer linker than the default in Xcode for > Tiger, but even if I select GCC 4.0.1 as the current compiler, ld still > invokes /opt/local/bin/ld. > >> > > >> > Is there any way I can select /usr/bin/ld as the default linker when > I'm not using GCC 5.3.0? > >> > >> Tiger is so old that all the compilers included in its Xcode are too > old and buggy for MacPorts to use. So MacPorts installs and uses the > apple-gcc42 port and uses that compiler to build all ports on Tiger (unless > a port specifies otherwise). The apple-gcc42 port requires the ld64 port, > which is where /opt/local/bin/ld comes from. You should probably use > /opt/local/bin/ld and the gcc installed by the apple-gcc42 port, even for > things you compile on Tiger outside of MacPorts, rather than the ancient > versions that come in Tiger's Xcode. > > > > Yes, that's reasonable, but I like the flexibility of being able to use > the Tiger's Xcode tools versions if I need it for testing or for > comparisons. Isn't it possible to revert to the Xcode linker with the same > ease I can select the active GCC version? > > The "select" mechanism relies on the fact that no port installs the > program of the name that you will ultimately use. For example, no gcc port > installs /opt/local/bin/gcc. Instead, "port select" creates > /opt/local/bin/gcc as a symlink to whatever gcc program you wish. > > The ld64 port doesn't work like that. It directly installs > /opt/local/bin/ld so there is no opportunity for "port select" to put a > symlink there. > > We typically use "select" for situations where there is more than one port > providing an equivalent program, for example multiple versions of gcc. > There is only one ld64 port, no multiple versions, so we don't provide > "select" support in those cases. > > You can still call Apple's old ld by calling /usr/bin/ld. If you really > need to, you can deactivate the ld64 port, but expect some things to break > if you do so, so I wouldn't do that longer than just temporarily. Ok, thanks a lot. BTW, related to ld64, does anybody know what this error means, and the reasons that may cause it? It happens to me when linking (in Tiger) with some static libs I built with clang, and I didn't find anything by searching on the Internet: ld: in /Users/cesar/MiCarpeta/libim.a(im_attrib.o), can't find relocation for personality in CIE Thanks! César
_______________________________________________ macports-users mailing list macports-users@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-users