[Bug 275404] databases/mysql80-server build error on old cpu - always_inline function '_mm_crc32_u16' requires target feature 'crc32'

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 28 Nov 2023 10:24:01 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275404

            Bug ID: 275404
           Summary: databases/mysql80-server build error on old cpu -
                    always_inline function '_mm_crc32_u16' requires target
                    feature 'crc32'
           Product: Ports & Packages
           Version: Latest
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: joneum@FreeBSD.org
          Reporter: viktor.stujber+freebsd-bugs_v4CCPfay@gmail.com
             Flags: maintainer-feedback?(joneum@FreeBSD.org)
          Assignee: joneum@FreeBSD.org

mysql80-server 8.0.35 source build fails on freshly built FreeBSD 14.0-RELEASE
on an intel atom (2010) cpu. My first guess is that it's force-targeting a
newer cpu, or it's using cpu intrinsics directly without checking first.
Leaving CPUTYPE unset has no effect. Previously I have built 8.0.32 on 13.1
without any issues.

--- storage/innobase/CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o ---
[ 37%] Building CXX object
storage/innobase/CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o
cd
/tmp/build/work/usr/ports/databases/mysql80-server/work/.build/storage/innobase
&& /usr/bin/c++ -DBOOST_NO_CXX98_FUNCTION_BASE -DCOMPILER_HINTS
-DDISABLE_PSI_MEMORY -DHAVE_CONFIG_H -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1
-DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_LZ4=1 -DHAVE_NANOSLEEP=1
-DHAVE_SCHED_GETCPU=1 -DLOG_SUBSYSTEM_TAG=\"InnoDB\"
-DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -DPFS_DIRECT_CALL
-DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0
-DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -DUNIV_LIBRARY -DUNIV_NO_ERR_MSGS
-D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/.build
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/.build/include
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/include
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/include
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/handler
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/sql
-I/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/sql/auth
-isystem
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/extra/protobuf/protobuf-3.19.4/src
-isystem /usr/local/include/editline -isystem
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/extra/rapidjson/include
-isystem
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/extra/zlib/zlib-1.2.13
-isystem
/tmp/build/work/usr/ports/databases/mysql80-server/work/.build/extra/zlib/zlib-1.2.13
-std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -O2 -pipe  -fPIC
-fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  
-malign-double -isystem /usr/local/include -std=c++17 -Wall -Wextra
-Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual
-Wcast-qual -Wno-null-conversion -Wno-unused-private-field
-Wconditional-uninitialized -Wdeprecated -Wextra-semi -Wheader-hygiene
-Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis
-Winconsistent-missing-destructor-override -Winconsistent-missing-override
-Wshadow-field -Wno-unused-parameter -Wno-cast-qual -ffunction-sections
-fdata-sections -O2 -pipe  -fPIC -fstack-protector-strong -isystem
/usr/local/include -fno-strict-aliasing   -malign-double -isystem
/usr/local/include -std=c++17  -DNDEBUG -fPIC -MD -MT
storage/innobase/CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o -MF
CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o.d -o
CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o -c
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/ut/crc32.cc

/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/ut/crc32.cc:448:10:
error: always_inline function '_mm_crc32_u16' requires target feature 'crc32',
but would be inlined into function 'update' that is compiled without support
for 'crc32'
  return _mm_crc32_u16(crc, data);
         ^
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/ut/crc32.cc:452:10:
error: always_inline function '_mm_crc32_u32' requires target feature 'crc32',
but would be inlined into function 'update' that is compiled without support
for 'crc32'
  return _mm_crc32_u32(crc, data);
         ^
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/ut/crc32.cc:456:10:
error: always_inline function '_mm_crc32_u64' requires target feature 'crc32',
but would be inlined into function 'update' that is compiled without support
for 'crc32'
  return _mm_crc32_u64(crc, data);
         ^
/tmp/build/work/usr/ports/databases/mysql80-server/work/mysql-8.0.35/storage/innobase/ut/crc32.cc:444:10:
error: always_inline function '_mm_crc32_u8' requires target feature 'crc32',
but would be inlined into function 'update' that is compiled without support
for 'crc32'
  return _mm_crc32_u8(crc, data);
         ^
4 errors generated.
*** [storage/innobase/CMakeFiles/innodb_zipdecompress.dir/ut/crc32.cc.o] Error
code 1

-- 
You are receiving this mail because:
You are the assignee for the bug.