[MacPorts] #64525: many ports fail to build for ppc on 10.6.8 (Rosetta) due to collect2: ld terminated with signal 6 [Abort trap]

MacPorts noreply at macports.org
Thu Jan 27 00:12:11 UTC 2022


#64525: many ports fail to build for ppc on 10.6.8 (Rosetta) due to collect2: ld
terminated with signal 6 [Abort trap]
-------------------------------+-------------------------------------------
  Reporter:  barracuda156      |      Owner:  (none)
      Type:  defect            |     Status:  new
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:  2.7.1
Resolution:                    |   Keywords:  powerpc, snowleopard, rosetta
      Port:  shared-mime-info  |
-------------------------------+-------------------------------------------

Comment (by kencu):

 Replying to [comment:4 barracuda156]:

 > Could you tell me, what options we basically have for linkers? Apple
 `ld`, Xcode `ld64`, Macports `ld64-97`, Macports `ld64-127`? (I know there
 were other versions, but it seems that mostly 97 and 127 are used with
 ppc.)

 You have, in MacPorts, the ld that comes with Xcode (which is usually also
 the one installed in the system at /usr) although with 10.6.8 that can be
 confused as there are several choices for Xcode.

 You have ld64-97, and ld64-127.

 After that, PowerPC support is not present in MacPorts linkers.

 We used to think that ld64-97 was best for Tiger, and ld64-127 was best
 for Leopard PPC, but explorations over the past month that we have done,
 as you know, show that ld64-97 is probably today the most reliable general
 linker for PowerPC code.

 It is still not 100% clear if there are cases where certain things will
 not build with ld64-97 but do build with ld64-127 that might mess that up,
 for example rpath support, etc, etc, etc.

 > And how can I switch between these? `--with-ld=` works sometimes, but
 often is not recognized by compiler or build system (or maybe I use it in
 a wrong way).

 That is not always simple to say. Each compiler has a default linker that
 it knows where to find. It can be hard to override that default linker by
 using build or configure lines, so what MacPorts did instead is change
 what that default linker points to by using the ld64 "shim" port that
 installs symlinks to the desired linker.

 But that is default linker for the whole system, and it's not simple to
 change on a build-by-build basis.

 If you want the compiler to use a linker other than a default linker, you
 need to explore what environment variables and build arguments that
 compiler is prepared to respond to. Some trial-and-error can be involved.

 See <https://stackoverflow.com/questions/40470931/how-to-specify-
 alternate-linker-command-when-linking-with-cc> for example, and
 <https://gcc.gnu.org/onlinedocs/gccint/Driver.html#Driver> and probably
 many other google hits that might well be better.

-- 
Ticket URL: <https://trac.macports.org/ticket/64525#comment:8>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list