#45949 closed defect (fixed)
pinentry-mac @0.8.1: error: -fobjc-arc is not supported on platforms using the legacy runtime
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | Ionic (Mihai Moldovan) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.99 |
Keywords: | Cc: | ||
Port: | pinentry-mac |
Description
pinentry-mac fails to build for me on Yosemite:
error: -fobjc-arc is not supported on platforms using the legacy runtime
Attachments (1)
Change History (14)
Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
comment:1 Changed 10 years ago by Ionic (Mihai Moldovan)
comment:2 Changed 10 years ago by Ionic (Mihai Moldovan)
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
If this is going to be the solution, then you will also have to disable the universal variant of every port that has a library dependency on pinentry-mac, and every port that has a library dependency on those ports, and so on.
comment:4 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
In addition, if pinentry-mac requires x86_64, then you should add this line to the portfile:
supported_archs x86_64
There should also be a comment above this line and the one that disables the universal variant, explaining why. For example for pinentry-mac, it would be:
# error: -fobjc-arc is not supported on platforms using the legacy runtime supported_archs x86_64 universal_variant no
In gpg-agent, which depends on pinentry-mac, it would be:
# pinentry-mac is not universal universal_variant no
Note, there was no reason to increase the revision when you disabled pinentry-mac's universal variant, and should not do so on other ports either.
comment:5 follow-up: 6 Changed 10 years ago by Ionic (Mihai Moldovan)
I can't change that, ARC is x86_64-only and pinentry-mac is utilizing that feature.
Currently, the only port depending on pinentry-mac
under certain circumstances (variant pinentry_mac
, may be set by default on supported systems and if the pinentry
port or variant are not installed/enabled) is gpg-agent
. I will add depends_skip_archcheck
to it.
supported_archs
is r128371
comment:6 follow-up: 8 Changed 10 years ago by Ionic (Mihai Moldovan)
Replying to ionic@…:
Currently, the only port depending on
pinentry-mac
under certain circumstances (variantpinentry_mac
, may be set by default on supported systems and if thepinentry
port or variant are not installed/enabled) isgpg-agent
. I will adddepends_skip_archcheck
to it.
If that's even possible... can a 32bit binary spawn a 64bit one? If not, I'm in for some trouble.
comment:7 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
You were responding while I was writing this, so some is redundant:
Replying to ryandesign@…:
In gpg-agent, which depends on pinentry-mac, it would be:
# pinentry-mac is not universal universal_variant no
In the case of gpg-agent, this should occur in the pinentry_mac variant only. And that leads us to a somewhat crappy situation: gpg-agent can be universal with the pinentry variant, but cannot be universal with the pinentry_mac variant. Should dependencies of gpg-agent offer a universal variant? We don't have a way to handle this situation in MacPorts. We can either leave the universal variants in gpg-agent dependents, with the understanding that they will not work if gpg-agent is installed with the pinentry_mac variant, or remove them, unnecessarily depriving users who have selected the pinentry variant of universal variants that would work fine.
comment:8 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to ionic@…:
Replying to ionic@…:
Currently, the only port depending on
pinentry-mac
under certain circumstances (variantpinentry_mac
, may be set by default on supported systems and if thepinentry
port or variant are not installed/enabled) isgpg-agent
. I will adddepends_skip_archcheck
to it.If that's even possible... can a 32bit binary spawn a 64bit one? If not, I'm in for some trouble.
If we are only spawning an executable, then there's no problem. If so, then pinentry-mac should declare:
installs_libs no
Then gpg-agent and dependents should still be able to be universal.
comment:9 Changed 10 years ago by Ionic (Mihai Moldovan)
Yes, it doesn't install any libraries, merely the executable which is spawned by gpg-agent. Still... I have no idea if a i386 binary can (v)fork and exec an x86_64 binary. That's the point I'm worried about.
comment:10 Changed 10 years ago by Ionic (Mihai Moldovan)
ionic@nopileos/tmp/exec-test% ./x86 running in 32bit mode. forking. running in 64bit mode.
OK, that's a relief. I'll add installs_libs no
right away.
Related to
universal
variant. Will remove it.