[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