[MacPorts] #62639: rust 1.51.0 on Mac OS 10.7.5?

MacPorts noreply at macports.org
Fri Dec 3 20:36:17 UTC 2021


#62639: rust 1.51.0 on Mac OS 10.7.5?
-----------------------+-----------------------------------------
  Reporter:  lemzwerg  |      Owner:  g5pw
      Type:  defect    |     Status:  closed
  Priority:  Normal    |  Milestone:
 Component:  ports     |    Version:
Resolution:  fixed     |   Keywords:  lion mountainlion mavericks
      Port:  rust      |
-----------------------+-----------------------------------------
Changes (by catap):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"8f43fdc08107e2f7fa6527eaae8ba0ea3f35b6c0/macports-ports"
 8f43fdc08107e2f7fa6527eaae8ba0ea3f35b6c0/macports-ports] (master):
 {{{
 #!ConfigurableCommitTicketReference repository="macports-ports"
 revision="8f43fdc08107e2f7fa6527eaae8ba0ea3f35b6c0"
 rust: fix build on macOS 10.7

 This commit contains two fixes.

 The first fix runtime fails of bootstrap's `cargo`:
 ```
 dyld: lazy symbol binding failed: Symbol not found:
 _CCDigestGetOutputSizeFromRef
 ```

 This symbol is required to verify cargo crates' signature, because cargo
 is linked against 10.8, not 10.7.

 Details: https://github.com/rust-lang/cargo/issues/4813

 The nice overstep is moving to MacPorts's verification of crates by
 using `cargo.crates` which also allows to fetch everything by `fetch`
 stage.

 Anyway, this fix need to be used inside crates which => I've added a
 small dynamic patch to `cargo_fetch` PG which prevents from producing
 bad binaries. Upstream issue is opened and as soon as fix is introduced,
 we may remove this hack.

 The second fix for runtime fails is related to dynamic loading of
 `___muloti4` which is usually a part of System's compiler-rt aka
 compiler-binutils. macOS 10.7 is too old and hasn't got `_muloti4`
 function. This fails was introduced by https://github.com/rust-
 lang/rust/commit/8a6ff90a3a41e6ace18aeb089ea0a0eb3726dd08

 Anyway, MacPorts ships macports-libcxx which is linked agains new
 LLVM/Clang version of compiler-binutils and which can be used as a donor
 for this function.

 Here I've created a simple `dylib` which I've forced to load via
 `DYLD_INSERT_LIBRARIES` which is untouched by rust's build. Anyway, it
 also forces to switch to flat name space which seems ok.

 Closes: https://trac.macports.org/ticket/62639
 }}}

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


More information about the macports-tickets mailing list