Hi Dave, AFAIK, the linker itself (let's call it "ld") is too simplistic to handle more complex scenarios, e.g. the presence of both (and incompatible ...) 32bit and 64bit shared libraries of one and the same "functionality" in the system.
OTOH, the "gcc" script (resp. the "g++" script) "knows" these issues. And, silently in the background, includes (or not) the correct compiler specific libraries, links to the correct C Runtimes, and so on. That has nothing to do with the job of ld, but with setting up the necessary prerequisites ("rpath" path inclusion of "/usr/lib/..." versus "/usr/lib64/..." and such things) This is comparable to the GCC (GNU Compiler Collection) compile process, the actual compiling is done by some "cc1" --- and "gcc" resp. "g++" is a wrapper, that cares for some administrative bookkeeping. Or dirty hacks and crappy workarounds, if you wish ... Put the other way around: Either you run for linking "gcc -m64 ...", and then quite some magic happens behind the scenes --- the ld ultimately called will never see the "-m64" option explicitly, but implicitly care has been taken for the "right" things to happen. Or you run for linking "ld ...", but then you'll have to add manually a lot of stuff like specific paths to precisely the correct compiler specific "internal" libraries, like libstdc++ and so on. On Mac OS X, a nightmare ... Cheers, Georg
-- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org