[MacPorts] #52739: perl5 @5.22.2: build_arch and universal not fully respected

MacPorts noreply at macports.org
Sat Oct 29 08:35:44 CEST 2016


#52739: perl5 @5.22.2: build_arch and universal not fully respected
----------------------------------+----------------------
  Reporter:  MarcusCalhoun-Lopez  |      Owner:  mojca@…
      Type:  defect               |     Status:  new
  Priority:  Normal               |  Milestone:
 Component:  ports                |    Version:
Resolution:                       |   Keywords:  haspatch
      Port:  perl5                |
----------------------------------+----------------------
Changes (by mojca):

 * cc: larryv, dbevans (added)
 * version:  2.3.4 =>


Comment:

 Thansk a lot for explanation. So basically you don't care which of the
 three patches is used if I understand correctly?

 > `Portfile2.diff` and `Portfile3.diff` just add
 `"-Alddlflags=\"[get_canonical_archflags ld]\""` to `configure.post_args`.
 Extra code, however, is required to make `get_canonical_archflags` work
 correctly. `get_canonical_archflags` determines if universal flags are
 required using the following code:
 > {{{
 > if {![variant_exists universal] || ![variant_isset universal]} {
 > }}}
 > When `configure.post_args-append` is run, however, the universal variant
 has not yet been created.
 > I assume this is to give the `Portfile` a chance to create its own.

 I would imagine that a more logical solution than to create a variant
 manually or to put the code inside the `pre-configure {}` block would be
 to use
 {{{
 if {[variant_isset universal]} {
     configure.post_args-append "-Alddlflags=\"[get_canonical_archflags
 ld]\""
 }
 }}}
 Does that work properly?

 Just curious, what's the difference (if any) between `configure`'s `post-
 args` and `args`? Why not appending it simply to `args`?

 Regarding the `MACOSX_DEPLOYMENT_TARGET`:
 > The perl port already handles it in a much better way with:
 > {{{
 > -Dld="env MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET $CC”
 > }}}
 > Sorry for not seeing this earlier.

 Well, no, I just removed it in r154367 because I thought it was handled
 properly by the new patches. I wouldn't mind filing another "bug report"
 with a patch upstream though that would fix this for older OSes in case
 it's broken there. What's the easiest way to test?

 A few bonus questions:
 * I would be grateful for a hint how to test building `.bundle` files.
 * Do any of those patches address #52290?
 * Unrelated: We've been asked to test whether perl built specifically on
 10.12 with `MACOSX_DEPLOYMENT_TARGET` set to support an earlier OS
 actually works on that older OS. If anyone is eager to test that, I would
 be grateful.

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



More information about the macports-tickets mailing list