The wpa_supplicant Makefile assumes that you have a 64-bit output capable compiler if you have the ps3 use flag set. If you just have a 32-bit compiler, then the build will fail, as -m64 is appended to the CFLAGS and LDFLAGS, causing a: config.c:1: sorry, unimplemented: 64-bit mode not compiled in ../src/utils/common.c:1: sorry, unimplemented: 64-bit mode not compiled in ../src/utils/wpa_debug.c:1: sorry, unimplemented: 64-bit mode not compiled in set of errors to be generated. Reproducible: Always Steps to Reproduce: 1. Build standard x86 (32-bit) Gentoo system, with no 64-bit cross-compile capability 2. USE="ps3" emerge wpa_supplicant 3. Watch the b0rkage...
The description for the ps3 USE flag is as follows (quse -D ps3): local:ps3:net-wireless/wpa_supplicant: Add support for ps3 hypervisor driven gelic wifi Under what circumstances would you expect that to work on an x86 machine without the ps3 hypervisor running? If you were attempting to cross-compile for a PS3, you'd still need an appropriate compiler installed. Given that this is the only use of the ps3 flag, I'm going to mark this as INVALID, since if the user isn't willing to read the description for a USE flag to figure out what it will do, they probably won't read any warning telling them not to set it when they're not on a PS3. If you really want to push for a warning to be added, do please reopen this bug and we'll assign it properly...
Reopening, as I think that the real solution to this is a use.mask entry under the x86 profile that masks out the ps3 USE flag - since, unless you really know what you're doing (in which case you should also know how to unmask USE flags), all this does is create breakage on x86-32...
It doesn't "create breakage" IMO. All that happens is you setting a USE flag you shouldn't be setting and then seeing the build fail. The only thing that would be broken is your configuration. :)
Fair enough. :) It would, however, make sense to use.mask ps3 out for x86 - it's established practice to do this with other use flags that don't apply to a particular platform (such as ppcsha1, aqua, coreaudio, etc.).
That would be a package.mask in the base profile and an unmask in the ppc64 profiles, I reckon.
(In reply to comment #5) > That would be a package.mask in the base profile and an unmask in the ppc64 > profiles, I reckon. > ppc users would need to be unmasked as well, for those running a 32bit ul. I'm not sure of the logic necessary for the ebuild to run the cross compiler.
(In reply to comment #6) > ppc users would need to be unmasked as well, for those running a 32bit ul. I'm > not sure of the logic necessary for the ebuild to run the cross compiler. > Digging deeper, the gelic wireless driver has been included in the mainline kernel since 2.6.27. Adding a note should suffice for ppc users.
Is it ok to mask the ps3 USE flag so we can resolve this bug?
There's another ps3 USE flag with a ppc64-specific dependency in libsdl now. Can we get this bloody USE flag masked? Thank-you, your local QA goon.
yes, i did the libsdl because i was lazy and didnt want to fix all the profiles when they should have all been fixed in the first place then again, i also didnt do it because it's conceivable (although probably doesnt exist today) that there would be optional PS3 support in an app unrelated to the arch ...
That's why we got package.use.mask (which unmasks as well as mask).
I masked the ps3 USE flag now in profiles/base and unmasked it in profiles/arch/powerpc/ppc64.