[MacPorts] #50894: Perl packages needing compilation do not install

MacPorts noreply at macports.org
Sat Mar 19 00:57:19 PDT 2016


#50894: Perl packages needing compilation do not install
---------------------------------+---------------------
  Reporter:  matthew-macports@…  |      Owner:  mojca@…
      Type:  defect              |     Status:  new
  Priority:  Normal              |  Milestone:
 Component:  ports               |    Version:  2.3.4
Resolution:                      |   Keywords:
      Port:  perl5.22            |
---------------------------------+---------------------

Comment (by mojca@…):

 Weird. I don't have `-fstack-protector-strong` in
 `/opt/local/lib/perl5/5.22/darwin-thread-multi-2level/Config_heavy.pl`.

 I see it in `Configure` though and clang defines "GCC" variable that
 resolve to true in the code below:
 {{{
         # on x86_64 (at least) we require an extra library (libssp) in the
         # link command line. This library is not named, so I infer that it
 is
         # an implementation detail that may change. Hence the safest
 approach
         # is to add the flag to the flags passed to the compiler at link
 time,
         # as that way the compiler can do the right implementation
 dependant
         # thing. (NWC)
         case "$gccversion" in
         ?*)     set stack-protector-strong -fstack-protector-strong
                 eval $checkccflag
                 case "$dflt" in
                 *-fstack-protector-strong*) ;; # It got added.
                 *) # Try the plain/older -fstack-protector.
                    set stack-protector -fstack-protector
                    eval $checkccflag
                    ;;
                 esac
                 ;;
         esac
         ;;
 }}}
 {{{
 # See note above about -fstack-protector
 case "$ccflags" in
 *-fstack-protector-strong*)
         case "$dflt" in
         *-fstack-protector-strong*) ;; # Don't add it again
         *) dflt="$dflt -fstack-protector-strong" ;;
         esac
         ;;
 *-fstack-protector*)
         case "$dflt" in
         *-fstack-protector*) ;; # Don't add it again
         *) dflt="$dflt -fstack-protector" ;;
         esac
         ;;
 esac
 }}}
 {{{
         case "$ldflags" in
             *-fstack-protector-strong*)
                 case "$dflt" in
                     *-fstack-protector-strong*) ;; # Don't add it again
                     *) dflt="$dflt -fstack-protector-strong" ;;
                 esac
                 ;;
             *-fstack-protector*)
                 case "$dflt" in
                     *-fstack-protector*) ;; # Don't add it again
                     *) dflt="$dflt -fstack-protector" ;;
                 esac
                 ;;
         esac
 }}}

 It would probably be helpful to talk to upstream developers once we
 investigate what exactly is going on (to make it easier for them to
 reproduce the problem).

 First of all I would like to understand why I didn't get the same flags
 defined as you did (with a slightly older OS).

-- 
Ticket URL: <https://trac.macports.org/ticket/50894#comment:3>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list