Ensure USE_AVX... symbols are not defined if not building for x86_64. Various code assumed this was true already, and usually it is. However, it emerges that in a "universal" (multi-architecture) macOS build, configure will define USE_AVX2_WITH_RUNTIME_CHECK if the build host is x86_64, and then the arm64 half of the build fails.
Ideally we'd get pg_config.h to define this symbol conditionally depending on defined(__x86_64__), but I don't see any way to persuade Autoconf to do that. Instead, clean up the mess by #undef'ing it again in c.h for not-x86_64 builds. For consistency I made c.h also #undef the USE_AVX512... symbols. Those are not actively broken, but it seems only happenstance that configure's tests for them fail in a universal build. Down the road we may have occasion to add more #undef's here. This problem is new in v19, so no need for back-patch. Reported-by: Sandeep Thakkar <[email protected]> Reported-by: Tobias Bussmann <[email protected]> Author: Tom Lane <[email protected]> Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/e88bd2736f86d66dc75ad8b2f7edd799d20b7d53 Modified Files -------------- src/include/c.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
