[MacPorts] #54364: p5.24-io-socket-ssl: failed to build on Snow Leopard (with libc++) (was: p5.24-io-socket-ssl failed to build on Snow Leopard)
MacPorts
noreply at macports.org
Thu Jun 22 09:08:23 UTC 2017
#54364: p5.24-io-socket-ssl: failed to build on Snow Leopard (with libc++)
----------------------------+----------------------------------------------
Reporter: rlhamil | Owner:
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords: snowleopard LibcxxOnOlderSystems
Port: p5.24-io- |
socket-ssl |
----------------------------+----------------------------------------------
Changes (by mojca):
* cc: dbevans, mojca (added)
* keywords: => snowleopard LibcxxOnOlderSystems
* version: 2.4.1 =>
Old description:
> :info:configure dyld: Symbol not found: _perl_tsa_mutex_lock
> :info:configure Referenced from: /opt/local/lib/perl5/vendor_perl/5.24
> /darwin-thread-multi-2level/auto/Net/SSLeay/SSLeay.bundle
> :info:configure Expected in: flat namespace
> :info:configure sh: line 1: 68230 Trace/BPT trap
> /opt/local/bin/perl5.24 Makefile.PL INSTALLDIRS=vendor CC="/opt/local/bin
> /clang-mp-3.7" LD="/opt/local/bin/clang-mp-3.7"
>
> Workaround: re-install perl5.24 with +universal, works then. When built
> correctly, symbol is defined in
> /opt/local/lib/perl5/5.24/darwin-thread-multi-2level/CORE/libperl.dylib
New description:
{{{
:info:configure dyld: Symbol not found: _perl_tsa_mutex_lock
:info:configure Referenced from: /opt/local/lib/perl5/vendor_perl/5.24
/darwin-thread-multi-2level/auto/Net/SSLeay/SSLeay.bundle
:info:configure Expected in: flat namespace
:info:configure sh: line 1: 68230 Trace/BPT trap
/opt/local/bin/perl5.24 Makefile.PL INSTALLDIRS=vendor CC="/opt/local/bin
/clang-mp-3.7" LD="/opt/local/bin/clang-mp-3.7"
}}}
Workaround: re-install `perl5.24` with `+universal`, works then. When
built correctly, symbol is defined in
`/opt/local/lib/perl5/5.24/darwin-thread-multi-2level/CORE/libperl.dylib`
--
Comment:
I'm not sure if my theory is correct, but I strongly suspect there's a
problem in (lack of) flags to set the stdlib.
Perl devs pointed me to:
> try https://metacpan.org/pod/ExtUtils::MakeMaker#PERL_MM_OPT for EUMM
installers
> and https://metacpan.org/pod/Module::Build#PERL_MB_OPT for M::B
installers
> the latter is also honored by Module::Build::Tiny
https://metacpan.org/pod/Module::Build::Tiny#CONFIG-FILE-AND-ENVIRONMENT
Maybe the perl PortGroup could always set the stdlib in the `PERL_MM_OPT`
and `PERL_MB_OPT` environmental variables. Untested theory.
I fail to understand why exactly the universal build would fix the issue,
but it could be that one module is not installed as i386 and then the
package being built would link against perl5.24 rather than against
another existing `p5.24-*` module and this would work (since perl was
built with the right flags).
The `mutex` keyword smells like C++11 in any case.
--
Ticket URL: <https://trac.macports.org/ticket/54364#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list