[MacPorts] #60740: perl5.28: fails on Tiger Intel : ld: library not found for -lssp_nonshared

MacPorts noreply at macports.org
Tue Jun 30 03:45:54 UTC 2020


#60740: perl5.28: fails on Tiger Intel : ld: library not found for -lssp_nonshared
--------------------------------+----------------------
  Reporter:  kencu              |      Owner:  mojca
      Type:  defect             |     Status:  assigned
  Priority:  Normal             |  Milestone:
 Component:  ports              |    Version:
Resolution:                     |   Keywords:  Tiger
      Port:  perl5.28 perl5.30  |
--------------------------------+----------------------
Description changed by kencu:

Old description:

> the {{{perl}}} ports all have a [https://github.com/macports/macports-
> ports/blob/master/lang/perl5/files/5.28/fix-miniperl-linking-
> PR36438.patch patch] to strip out linking against anything in {{{
> ${prefix}/lib }}}. This apparently was causing errors in the past (a
> number of tickets with various ports) due to MacPorts libraries being
> called in instead of system libraries, and that would have
> inconsistencies, be non-universal, etc.
>
> However, when building with the standard {{{apple-gcc42}}} compiler on
> Tiger i386, the build fails due to this:
> {{{
> :info:build unset LIBRARY_PATH && /opt/local/bin/gcc-apple-4.2
> -Wl,-headerpad_max_install_names -arch i386 -fstack-protector
> -force_flat_namespace -o miniperl \
> :info:build     opmini.o perlmini.o  gv.o toke.o perly.o pad.o regcomp.o
> dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o
> pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o
> utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o
> mathoms.o locale.o pp_pack.o pp_sort.o caretx.o dquote.o time64.o
> miniperlmain.o  -lpthread -ldl -lm -lc
> :info:build ld: library not found for -lssp_nonshared
> }}}
>
> That library exists only in {{{${prefix}/lib}}} and so when the path is
> stripped out, the build fails.
>
> {{{
> $ locate libssp_nonshared
> /opt/local/lib/gcc48/libssp_nonshared.a
> /opt/local/lib/gcc48/libssp_nonshared.la
> /opt/local/lib/gcc6/libssp_nonshared.a
> /opt/local/lib/gcc6/libssp_nonshared.la
> /opt/local/lib/gcc7/libssp_nonshared.a
> /opt/local/lib/gcc7/libssp_nonshared.la
> /opt/local/lib/libssp_nonshared.a
> }}}
>
> I don't know what {{{apple-gcc42}}} would be asking for that library at
> all. It doesn't seem to supply it:
> {{{
> $ port contents apple-gcc42 | grep libssp
> --nothing---
> }}}
>
> and this same error does not happen on TigerPPC, only on Intel.
>
> Of course, building with any {{{macports-gcc-N}}} compiler fails with a
> weird error too, due to that patch:
> {{{
> :info:build ld: library not found for /libgcc
> }}}
> because the path {{{/opt/local/lib/libgcc}}} is stripped down to
> {{{/libgcc}}}. So that is another independent issue with this patch, but
> building with a macports gcc compiler is not a fix.
>
> The only fix that works is to disable the patch completely, and then
> {{{per5.2X}}} will build. On Intel.
>
> I don't yet know about 10.5 Intel, or what happens to 10.6 to 10.8 if
> they are not set up to use {{{libc++}}} , which I guess is where the
> errors were seen in the first place.
>
> For now - unless we sort out why that library is being asked for in the
> first place and fix that, we might just restrict the patch to -- 10.6+?

New description:

 the {{{perl}}} ports all have a [https://github.com/macports/macports-
 ports/blob/master/lang/perl5/files/5.28/fix-miniperl-linking-PR36438.patch
 patch] to strip out linking against anything in {{{ ${prefix}/lib }}}.
 This apparently was causing errors in the past (a number of tickets with
 various ports) due to MacPorts libraries being called in instead of system
 libraries, and that would have inconsistencies, be non-universal, etc.

 However, when building with the standard {{{apple-gcc42}}} compiler on
 Tiger i386, the build fails due to this:
 {{{
 :info:build unset LIBRARY_PATH && /opt/local/bin/gcc-apple-4.2
 -Wl,-headerpad_max_install_names -arch i386 -fstack-protector
 -force_flat_namespace -o miniperl \
 :info:build     opmini.o perlmini.o  gv.o toke.o perly.o pad.o regcomp.o
 dump.o util.o mg.o reentr.o mro_core.o keywords.o hv.o av.o run.o pp_hot.o
 sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o
 deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o
 locale.o pp_pack.o pp_sort.o caretx.o dquote.o time64.o  miniperlmain.o
 -lpthread -ldl -lm -lc
 :info:build ld: library not found for -lssp_nonshared
 }}}

 That library exists only in {{{${prefix}/lib}}} and so when the path is
 stripped out, the build fails.

 {{{
 $ locate libssp_nonshared
 /opt/local/lib/gcc48/libssp_nonshared.a
 /opt/local/lib/gcc48/libssp_nonshared.la
 /opt/local/lib/gcc6/libssp_nonshared.a
 /opt/local/lib/gcc6/libssp_nonshared.la
 /opt/local/lib/gcc7/libssp_nonshared.a
 /opt/local/lib/gcc7/libssp_nonshared.la
 /opt/local/lib/libssp_nonshared.a
 }}}

 I don't know why {{{apple-gcc42}}} would be asking for that library at
 all. It doesn't seem to supply it:
 {{{
 $ port contents apple-gcc42 | grep libssp
 --nothing---
 }}}

 and this same error does not happen on TigerPPC, only on Intel.

 Of course, building with any {{{macports-gcc-N}}} compiler fails with a
 weird error too, due to that patch:
 {{{
 :info:build ld: library not found for /libgcc
 }}}
 because the path {{{/opt/local/lib/libgcc}}} is stripped down to
 {{{/libgcc}}}. So that is another independent issue with this patch, but
 building with a macports gcc compiler is not a fix.

 The only fix that works is to disable the patch completely, and then
 {{{per5.2X}}} will build. On Intel.

 I don't yet know about 10.5 Intel, or what happens to 10.6 to 10.8 if they
 are not set up to use {{{libc++}}} , which I guess is where the errors
 were seen in the first place.

 For now - unless we sort out why that library is being asked for in the
 first place and fix that, we might just restrict the patch to -- 10.6+?

--

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


More information about the macports-tickets mailing list