[MacPorts] #62252: rust @1.47.0_0: Failed to build rust: command execution failed
MacPorts
noreply at macports.org
Thu Apr 8 07:25:19 UTC 2021
#62252: rust @1.47.0_0: Failed to build rust: command execution failed
------------------------+--------------------
Reporter: macdeport | Owner: g5pw
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version: 2.6.4
Resolution: fixed | Keywords:
Port: rust |
------------------------+--------------------
Comment (by cjones051073):
Replying to [comment:19 kencu]:
> Replying to [comment:11 herbygillot]:
> > {{{
> > :info:build Undefined symbols for architecture x86_64:
> > :info:build "_macports_legacy_sysconf", referenced from:
> > :info:build
llvm::sys::commandLineFitsWithinSystemLimits(llvm::StringRef,
llvm::ArrayRef<char const*>) in libLLVMSupport.a(Program.cpp.o)
> > :info:build
llvm::sys::commandLineFitsWithinSystemLimits(llvm::StringRef,
llvm::ArrayRef<llvm::StringRef>) in libLLVMSupport.a(Program.cpp.o)
> > :info:build ld: symbol(s) not found for architecture x86_64
> > :info:build clang: error: linker command failed with exit code 1 (use
-v to see invocation)
> > }}}
> >
> > My guess is that this may have to do with the `legacysupport` added in
this commit: [e4c13e2baf252842c5702dcfed2fca79c4e8fc14/macports-ports]
> >
>
> FYI the reason this occurs is:
>
> the legacy support library is built, showing no need for the
macports_legacy_sysconf wrap based on the system version being built
against.
>
> later, software tries to build against an older deployment target. The
legacysupport headers see the deployment target and so they think the
macports_legacy_sysconf wrap is needed, but when it goes to link, that
symbol doesn't exist in the library.
>
> I am trying to sort out how to elegantly handle this issue.
Maybe the thing to do is to always build the method
macports_legacy_sysconf in the c file, such that it will then always
appear in the dynamic and static libs, but to carry on only exposing its
use in the wrapped headers when required. That way with the scenario above
the symbols will still be found when an older deployment target is used.
--
Ticket URL: <https://trac.macports.org/ticket/62252#comment:20>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list