[debian-mysql] Bug#933151: mariadb-10.3: FTBFS on riscv64

Otto Kekäläinen otto at debian.org
Sun Aug 23 11:39:49 BST 2020


Hello!

Following up on the MariaDB riscv64 build issue.

In MariaDB 10.3.24 the libatomic on RocksDB patch at
https://github.com/mariadb/server/commit/715beee46abb4c29bffd6f9c5fd5ee95da55bf4f
was applied and thus MariaDB issue
https://jira.mariadb.org/browse/MDEV-23051 was closed.

Conversation was at https://github.com/MariaDB/server/pull/1617 and
related libatomics PR for MariaDB in
https://github.com/MariaDB/server/pull/979

Upstream RocksDB issue https://github.com/facebook/rocksdb/issues/7051
and PR https://github.com/facebook/rocksdb/pull/7060 which is still
open.

Ubuntu had workarounds that are now removed and thus
https://bugs.launchpad.net/ubuntu/+source/mariadb-10.3/+bug/1876814
and https://salsa.debian.org/mariadb-team/mariadb-10.3/-/merge_requests/28
are closed.

The MariaDB 10.3.23 with patches in Debian (1:10.3.23-1) migrated to
Ubuntu and built at
https://launchpad.net/ubuntu/+source/mariadb-10.3/1:10.3.23-1/+build/19854446

The MariaDB 1:10.3.23-1 release however failed to build on Debian
riscv64 at https://buildd.debian.org/status/fetch.php?pkg=mariadb-10.3&arch=riscv64&ver=1%3A10.3.23-1&stamp=1594031756&raw=0


The MariaDB 10.3.24 release is verified to build on riscv64 at
https://launchpad.net/~otto/+archive/ubuntu/mariadb/+builds?build_text=&build_state=all

However, when I uploaded it to Debian yesterday the Debian riscv64
build still fails at
https://buildd.debian.org/status/package.php?p=mariadb-10.3



The .23 version failed on Debian with:

https://buildd.debian.org/status/fetch.php?pkg=mariadb-10.3&arch=riscv64&ver=1%3A10.3.23-1&stamp=1594031756&raw=0

cd /<<PKGBUILDDIR>>/builddir/storage/rocksdb && /usr/bin/cmake -E
cmake_link_script CMakeFiles/mysql_ldb.dir/link.txt --verbose=1
/usr/bin/riscv64-linux-gnu-g++  -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie
-fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4
-fno-rtti -O2 -g -static-libgcc -fno-omit-frame-pointer
-fno-strict-aliasing -Wno-uninitialized -D_FORTIFY_SOURCE=2 -DDBUG_OFF
-Wall -Wextra -Wformat-security -Wno-format-truncation -Wno-init-self
-Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual
-Wnon-virtual-dtor -Wvla -Wwrite-strings  -Wl,-z,relro -Wl,-z,now
CMakeFiles/mysql_ldb.dir/tools/mysql_ldb.cc.o  -o mysql_ldb  -lpthread
librocksdb_tools.a librocksdb_aux_lib.a ../../dbug/libdbug.a
librocksdblib.a -llz4 -lsnappy -lzstd -lrt -latomic
../../mysys/libmysys.a ../../dbug/libdbug.a ../../mysys/libmysys.a -lz
../../strings/libstrings.a -lpthread -lm -ldl
/usr/bin/ld: librocksdblib.a(memtable.cc.o): in function
`rocksdb::SpinMutex::lock()':
./builddir/storage/rocksdb/./storage/rocksdb/rocksdb/util/mutexlock.h:117:
undefined reference to `__atomic_compare_exchange_1'
/usr/bin/ld: librocksdblib.a(memtable.cc.o): in function
`std::__atomic_base<bool>::compare_exchange_weak(bool&, bool,
std::memory_order, std::memory_order)':
/usr/include/c++/9/bits/atomic_base.h:457: undefined reference to
`__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/9/bits/atomic_base.h:457: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/9/bits/atomic_base.h:457: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/9/bits/atomic_base.h:457: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: librocksdblib.a(memtable.cc.o):/usr/include/c++/9/bits/atomic_base.h:457:
more undefined references to `__atomic_compare_exchange_1' follow
collect2: error: ld returned 1 exit status
make[4]: *** [storage/rocksdb/CMakeFiles/sst_dump.dir/build.make:89:
storage/rocksdb/sst_dump] Error 1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/builddir'
make[3]: *** [CMakeFiles/Makefile2:7909:
storage/rocksdb/CMakeFiles/sst_dump.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....


The new .24 failed on Debian builders now with:

https://buildd.debian.org/status/fetch.php?pkg=mariadb-10.3&arch=riscv64&ver=1%3A10.3.24-1&stamp=1598114515&raw=0

cd /<<PKGBUILDDIR>>/builddir/storage/spider &&
/usr/bin/riscv64-linux-gnu-g++  -DDBUG_TRACE -DHAVE_CONFIG_H
-DMYSQL_DYNAMIC_PLUGIN -D_FILE_OFFSET_BITS=64 -Dspider_EXPORTS
-I/<<PKGBUILDDIR>>/builddir/include
-I/<<PKGBUILDDIR>>/storage/spider/hs_client -I/<<PKGBUILDDIR>>/include
-I/<<PKGBUILDDIR>>/sql -I/<<PKGBUILDDIR>>/extra/yassl/include
-I/<<PKGBUILDDIR>>/extra/yassl/taocrypt/include  -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie
-fPIC -fstack-protector --param=ssp-buffer-size=4 -fno-rtti
-DHAVE_HANDLERSOCKET -O2 -g -static-libgcc -fno-omit-frame-pointer
-fno-strict-aliasing -Wno-uninitialized -D_FORTIFY_SOURCE=2 -DDBUG_OFF
-Wall -Wextra -Wformat-security -Wno-format-truncation -Wno-init-self
-Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual
-Wnon-virtual-dtor -Wvla -Wwrite-strings -fPIC   -Wdate-time
-D_FORTIFY_SOURCE=2 -o CMakeFiles/spider.dir/spd_db_conn.cc.o -c
/<<PKGBUILDDIR>>/storage/spider/spd_db_conn.cc
/usr/bin/ld: librocksdblib.a(memtable.cc.o): in function
`rocksdb::ConcurrentArena::ApproximateMemoryUsage() const':
./builddir/storage/rocksdb/./storage/rocksdb/rocksdb/memory/concurrent_arena.h:67:
undefined reference to `__atomic_compare_exchange_1'
/usr/bin/ld: librocksdblib.a(memtable.cc.o): in function
`std::__atomic_base<bool>::compare_exchange_weak(bool&, bool,
std::memory_order, std::memory_order)':
/usr/include/c++/10/bits/atomic_base.h:464: undefined reference to
`__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/10/bits/atomic_base.h:464: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/10/bits/atomic_base.h:464: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: /usr/include/c++/10/bits/atomic_base.h:464: undefined
reference to `__atomic_compare_exchange_1'
/usr/bin/ld: librocksdblib.a(memtable.cc.o):/usr/include/c++/10/bits/atomic_base.h:464:
more undefined references to `__atomic_compare_exchange_1' follow
[ 71%] Building CXX object storage/spider/CMakeFiles/spider.dir/spd_conn.cc.o
cd /<<PKGBUILDDIR>>/builddir/storage/spider &&
/usr/bin/riscv64-linux-gnu-g++  -DDBUG_TRACE -DHAVE_CONFIG_H
-DMYSQL_DYNAMIC_PLUGIN -D_FILE_OFFSET_BITS=64 -Dspider_EXPORTS
-I/<<PKGBUILDDIR>>/builddir/include
-I/<<PKGBUILDDIR>>/storage/spider/hs_client -I/<<PKGBUILDDIR>>/include
-I/<<PKGBUILDDIR>>/sql -I/<<PKGBUILDDIR>>/extra/yassl/include
-I/<<PKGBUILDDIR>>/extra/yassl/taocrypt/include  -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie
-fPIC -fstack-protector --param=ssp-buffer-size=4 -fno-rtti
-DHAVE_HANDLERSOCKET -O2 -g -static-libgcc -fno-omit-frame-pointer
-fno-strict-aliasing -Wno-uninitialized -D_FORTIFY_SOURCE=2 -DDBUG_OFF
-Wall -Wextra -Wformat-security -Wno-format-truncation -Wno-init-self
-Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual
-Wnon-virtual-dtor -Wvla -Wwrite-strings -fPIC   -Wdate-time
-D_FORTIFY_SOURCE=2 -o CMakeFiles/spider.dir/spd_conn.cc.o -c
/<<PKGBUILDDIR>>/storage/spider/spd_conn.cc
[ 71%] Building CXX object
storage/perfschema/CMakeFiles/perfschema_embedded.dir/table_file_instances.cc.o
cd /<<PKGBUILDDIR>>/builddir/storage/perfschema &&
/usr/bin/riscv64-linux-gnu-g++  -DDBUG_TRACE -DHAVE_CONFIG_H
-DMYSQL_SERVER -D_FILE_OFFSET_BITS=64
-I/<<PKGBUILDDIR>>/builddir/include -I/<<PKGBUILDDIR>>
-I/<<PKGBUILDDIR>>/include -I/<<PKGBUILDDIR>>/sql
-I/<<PKGBUILDDIR>>/builddir/sql -I/<<PKGBUILDDIR>>/extra/yassl/include
-I/<<PKGBUILDDIR>>/extra/yassl/taocrypt/include  -g -O2
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong
-Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -pie
-fPIC -fstack-protector --param=ssp-buffer-size=4 -fno-rtti -O2 -g
-static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing
-Wno-uninitialized -D_FORTIFY_SOURCE=2 -DDBUG_OFF -Wall -Wextra
-Wformat-security -Wno-format-truncation -Wno-init-self
-Wno-nonnull-compare -Wno-unused-parameter -Woverloaded-virtual
-Wnon-virtual-dtor -Wvla -Wwrite-strings   -Wdate-time
-D_FORTIFY_SOURCE=2 -fPIC -fvisibility=hidden -o
CMakeFiles/perfschema_embedded.dir/table_file_instances.cc.o -c
/<<PKGBUILDDIR>>/storage/perfschema/table_file_instances.cc
collect2: error: ld returned 1 exit status
make[4]: *** [storage/rocksdb/CMakeFiles/sst_dump.dir/build.make:89:
storage/rocksdb/sst_dump] Error 1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/builddir'
make[3]: *** [CMakeFiles/Makefile2:7909:
storage/rocksdb/CMakeFiles/sst_dump.dir/all] Error 2
make[3]: *** Waiting for unfinished jobs....



More information about the pkg-mysql-maint mailing list