Re: qt5-core - Detecting and Compiling AES Support on Build System

2019-02-24 Thread Raphael Kubo da Costa

On 2/18/19 12:57 AM, Bryan Erickson wrote:
[...]

I have modified the make.conf of the build system to include the following:

CPUTYPE?=sandybridge
CFLAGS= -mno-aes

However, neither of the changes seem to impact the resulting error message.

Looking at the build logs, I can see the issue:

This is the Qt Open Source Edition.
You have already accepted the terms of the Open Source license.
Running configuration tests...
Checking for valid makespec... yes
Checking for target architecture... x86_64
Checking for SSE2 instructions... yes
Checking for AES new instructions... yes

[...]

But it does see my custom CFLAGS and CPUType:

[...]

Would you have any advice on how to proceed?

Is there an additional modification that I need to my make.conf or is there 
some method for the build process to override the checks if the CFLAGS state no 
AES or the CPUTYPE is of a processor which doesn't have AES support?


If I understood you correctly, you're building the packages on a machine 
that does support AES, but you have control over CPUTYPE and other flags 
on a per-target basis, so that you can set them to a different value for 
your SandyBridge machine that doesn't support AES, right?


You essentially need to pass -no-aesni to Qt's configure script. We 
already do something similar in spirit to disable SSE2 on i386 when it's 
not supported (see Mk/Uses/qt-dist.mk). I think the quickest option for 
you would be patching that file and adding a check for 
CPUTYPE=="sandybridge" and passing that extra argument in CONFIGURE_ARGS.


We could do that in the ports tree, but there doesn't seem to be an 
entry for aesni we could check in bsd.cpu.mk as far as I can see.


Re: qt5-core - Detecting and Compiling AES Support on Build System

2019-02-23 Thread Raphael Kubo da Costa

(re-sending from the right email address)

On 2/18/19 12:57 AM, Bryan Erickson wrote:
[...]
> I have modified the make.conf of the build system to include the 
following:

>
> CPUTYPE?=sandybridge
> CFLAGS= -mno-aes
>
> However, neither of the changes seem to impact the resulting error 
message.

>
> Looking at the build logs, I can see the issue:
>
> This is the Qt Open Source Edition.
> You have already accepted the terms of the Open Source license.
> Running configuration tests...
> Checking for valid makespec... yes
> Checking for target architecture... x86_64
> Checking for SSE2 instructions... yes
> Checking for AES new instructions... yes
[...]
> But it does see my custom CFLAGS and CPUType:
[...]
> Would you have any advice on how to proceed?
>
> Is there an additional modification that I need to my make.conf or is 
there some method for the build process to override the checks if the 
CFLAGS state no AES or the CPUTYPE is of a processor which doesn't have 
AES support?


If I understood you correctly, you're building the packages on a machine 
that does support AES, but you have control over CPUTYPE and other flags 
on a per-target basis, so that you can set them to a different value for 
your SandyBridge machine that doesn't support AES, right?


You essentially need to pass -no-aesni to Qt's configure script. We 
already do something similar in spirit to disable SSE2 on i386 when it's 
not supported (see Mk/Uses/qt-dist.mk). I think the quickest option for 
you would be patching that file and adding a check for 
CPUTYPE=="sandybridge" and passing that extra argument in CONFIGURE_ARGS.


We could do that in the ports tree, but there doesn't seem to be an 
entry for aesni we could check in bsd.cpu.mk as far as I can see.