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

Raphael Kubo da Costa kubito at gmail.com
Sat Feb 23 13:42:56 GMT 2019


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.


More information about the kde-freebsd mailing list