Summary: | dev-db/mariadb-10.3.8: build failure on ppc64 - xtra/crc32-vpmsum/vec_crc32.c:113:71: error: vector undeclared (first use in this function) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | ernsteiswuerfel <erhard_f> |
Component: | Current packages | Assignee: | Gentoo Linux MySQL bugs team <mysql-bugs> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | ||
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | PPC64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 649038 | ||
Attachments: |
build.log
emerge --info build.log (mariadb-10.3.9) build.log (mariadb-10.3.10) Remove "extra crc32" module from MariaDB 10.x |
Created attachment 550802 [details]
emerge --info
Created attachment 550804 [details]
build.log (mariadb-10.3.9)
mariadb-10.3.9 fails too, but at a slightly later stage:
[...]
Scanning dependencies of target gen_lex_token
make[2]: Leaving directory '/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build'
make -f sql/CMakeFiles/gen_lex_token.dir/build.make sql/CMakeFiles/gen_lex_token.dir/build
make[2]: Entering directory '/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build'
[ 13%] Building CXX object sql/CMakeFiles/gen_lex_token.dir/gen_lex_token.cc.o
cd /var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build/sql && /usr/bin/powerpc-unknown-linux-gnu-g++ -DHAVE_CONFIG_H -DHAVE_EVENT_SCHEDULER -DHAVE_OPENSSL -DHAVE_POOL_OF_THREADS -DHAVE_SYSTEMD -DMYSQL_SERVER -D_FILE_OFFSET_BITS=64 -I/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build/include -I/var/tmp/portage/dev-db/mariadb-10.3.9/work/mysql/include -I/var/tmp/portage/dev-db/mariadb-10.3.9/work/mysql/sql -I/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build/sql -O2 -mcpu=powerpc -pipe -felide-constructors -fno-strict-aliasing -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -fno-rtti -DNDEBUG -DDBUG_OFF -o CMakeFiles/gen_lex_token.dir/gen_lex_token.cc.o -c /var/tmp/portage/dev-db/mariadb-10.3.9/work/mysql/sql/gen_lex_token.cc
[ 13%] Linking CXX executable gen_lex_token
cd /var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build/sql && /usr/bin/cmake -E cmake_link_script CMakeFiles/gen_lex_token.dir/link.txt --verbose=1
/usr/bin/powerpc-unknown-linux-gnu-g++ -O2 -mcpu=powerpc -pipe -felide-constructors -fno-strict-aliasing -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -fno-rtti -DNDEBUG -DDBUG_OFF -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu CMakeFiles/gen_lex_token.dir/gen_lex_token.cc.o -o gen_lex_token -lpthread
make[2]: Leaving directory '/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build'
[ 13%] Built target gen_lex_token
make[1]: Leaving directory '/var/tmp/portage/dev-db/mariadb-10.3.9/work/mariadb-10.3.9_build'
make: *** [Makefile:163: all] Error 2
* ERROR: dev-db/mariadb-10.3.9::gentoo failed (compile phase):
* emake failed
Created attachment 554252 [details]
build.log (mariadb-10.3.10)
Same build failure on mariadb-10.3.10.
This isn't a ppc64 failure. It may be on 64-bit hardware, but from the toolchain triplet and the failure, it's 32-bit PowerPC. We're hitting this on Adélie as well, in 32-bit PowerPC. It seems to be something with AltiVec. Still investigating. Created attachment 582082 [details, diff]
Remove "extra crc32" module from MariaDB 10.x
Okay.
First, if you are building for 32-bit PowerPC, ensure you 'setarch ppc' before running builds. Not doing this will break a lot of build systems, but *especially* MariaDB. That would fix the issue that the reporter is facing, as then MariaDB doesn't try to do POWER8 VMX things on 32-bit PowerPC.
However, the real bug is that MariaDB uses POWER8 VMX instructions unconditionally when CMAKE_SYSTEM_PROCESSOR is ppc64. This will break any system that isn't a POWER8 (970/970fx, P5/P6/P7, etc).
Apply the patch I've attached to fix *that*.
|
Created attachment 550800 [details] build.log /usr/bin/powerpc-unknown-linux-gnu-ar qc libstrings.a CMakeFiles/strings.dir/bchange.c.o CMakeFiles/strings.dir/bmove_upp.c.o CMakeFiles/strings.dir/ctype-big5.c.o CMakeFiles/strings.dir/ctype-bin.c.o CMakeFiles/strings.dir/ctype-cp932.c.o CMakeFiles/strings.dir/ctype-czech.c.o CMakeFiles/strings.dir/ctype-euc_kr.c.o CMakeFiles/strings.dir/ctype-eucjpms.c.o CMakeFiles/strings.dir/ctype-extra.c.o CMakeFiles/strings.dir/ctype-gb2312.c.o CMakeFiles/strings.dir/ctype-gbk.c.o CMakeFiles/strings.dir/ctype-latin1.c.o CMakeFiles/strings.dir/ctype-mb.c.o CMakeFiles/strings.dir/ctype-simple.c.o CMakeFiles/strings.dir/ctype-sjis.c.o CMakeFiles/strings.dir/ctype-tis620.c.o CMakeFiles/strings.dir/ctype-uca.c.o CMakeFiles/strings.dir/ctype-ucs2.c.o CMakeFiles/strings.dir/ctype-ujis.c.o CMakeFiles/strings.dir/ctype-utf8.c.o CMakeFiles/strings.dir/ctype-win1250ch.c.o CMakeFiles/strings.dir/ctype.c.o CMakeFiles/strings.dir/decimal.c.o CMakeFiles/strings.dir/dtoa.c.o CMakeFiles/strings.dir/int2str.c.o CMakeFiles/strings.dir/is_prefix.c.o CMakeFiles/strings.dir/llstr.c.o CMakeFiles/strings.dir/longlong2str.c.o CMakeFiles/strings.dir/my_strtoll10.c.o CMakeFiles/strings.dir/my_vsnprintf.c.o CMakeFiles/strings.dir/str2int.c.o CMakeFiles/strings.dir/strcend.c.o CMakeFiles/strings.dir/strend.c.o CMakeFiles/strings.dir/strfill.c.o CMakeFiles/strings.dir/strmake.c.o CMakeFiles/strings.dir/strmov.c.o CMakeFiles/strings.dir/strnmov.c.o CMakeFiles/strings.dir/strxmov.c.o CMakeFiles/strings.dir/strxnmov.c.o CMakeFiles/strings.dir/xml.c.o CMakeFiles/strings.dir/strmov_overlapp.c.o CMakeFiles/strings.dir/my_strchr.c.o CMakeFiles/strings.dir/strcont.c.o CMakeFiles/strings.dir/strappend.c.o CMakeFiles/strings.dir/json_lib.c.o /usr/bin/powerpc-unknown-linux-gnu-ranlib libstrings.a make[2]: Leaving directory '/var/tmp/portage/dev-db/mariadb-10.3.8/work/mariadb-10.3.8_build' [ 13%] Built target strings make[1]: Leaving directory '/var/tmp/portage/dev-db/mariadb-10.3.8/work/mariadb-10.3.8_build' make: *** [Makefile:163: all] Error 2 * ERROR: dev-db/mariadb-10.3.8::gentoo failed (compile phase): * emake failed