Re: qt5-core - Detecting and Compiling AES Support on Build System
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
(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.