On 2018-2-10 06:14 , David Strubbe wrote:
> Hello all,
> I have a question about the muniversal port group, motivated by
> examining what happens with its usage in the fftw-3 port. If the
> +universal variant is selected, then appropriate values of
> configure.args are set for different architectures via
> merger_configure_args, which in the case of fftw-3 includes flags about
> whether support for certain vector intrinsics like SSE2 and AVX will be
> compiled. However, if +universal is not selected, then these flags are
> simply not used, rather than selecting the appropriate flag for the
> single architecture we are building for. As a result, currently in
> fftw-3, we are only enabling appropriate intrinsics for the architecture
> when doing +universal, and otherwise we have no intrinsics support.
> How is this supposed to work with the muniversal port group? Are flags
> needed when not +universal not expected to be set in this merger array?
> Is this a limitation of the port group that should be extended? Is there
> some option to set in the port group which I have missed?
The muniversal portgroup is not involved at all if you're not building
with +universal. If you need to set certain flags in the non-universal
case, just do it.
Just be aware that binary packages need to be built for the lowest
common denominator. Using newer CPU features unconditionally means the
binary won't work on someone's older machine.
We only build binaries of the default variants currently. A non-default
variant that enables all the bells and whistles available on the user's
CPU is OK, since it will always build from source.