MySQL is failing to build from source on a ppc64 system. I had initially built MariaDB from source, and that worked fine, but needed to switch. Initially, I thought it might have been leftover deps that weren't depcleaned, but after a depclean, it still fails. Reproducible: Always Steps to Reproduce: 1. emerge -av dev-db/mariadb Actual Results: See attached build log files (it's quite large) Expected Results: successful build # emerge --info '=dev-db/mysql-8.0.32-r2::gentoo' Portage 3.0.66.1 (python 3.12.7-final-0, default/linux/ppc64/23.0/systemd, gcc-14, glibc-2.40-r5, 6.6.62-gentoo-ppc ppc64) ================================================================= System Settings ================================================================= System uname: Linux-6.6.62-gentoo-ppc-ppc64-POWER8_-architected-,_altivec_supported-with-glibc2.40 KiB Mem: 131949756 total, 118732400 free KiB Swap: 134217724 total, 134217724 free Timestamp of repository gentoo: Sun, 22 Dec 2024 17:00:00 +0000 Head commit of repository gentoo: e0ed6567a24152a378baa9673f681ebb3ff5e88e sh bash 5.2_p37 ld GNU ld (Gentoo 2.43 p3) 2.43.1 app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.30.6::gentoo dev-build/libtool: 2.4.7-r4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.5.2::gentoo dev-lang/perl: 5.40.0::gentoo dev-lang/python: 3.12.7_p1::gentoo, 3.13.1::gentoo llvm-core/clang: 17.0.6::gentoo llvm-core/llvm: 17.0.6-r3::gentoo, 19.1.4::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/sandbox: 2.39::gentoo sys-apps/systemd: 256.7::gentoo sys-devel/binutils: 2.43-r2::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/gcc: 14.2.1_p20241116::gentoo sys-devel/gcc-config: 2.11::gentoo sys-kernel/linux-headers: 6.6-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r5::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 volatile: False sync-rsync-extra-opts: sync-rsync-verify-max-age: 3 sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 localrepo location: /var/db/repos/localrepo masters: gentoo volatile: False Binary Repositories: gentoobinhost priority: 1 sync-uri: https://gentoo.osuosl.org/releases/ppc/binpackages/23.0/ppc64 ACCEPT_KEYWORDS="ppc64" ACCEPT_LICENSE="@FREE" CBUILD="powerpc64-unknown-linux-gnu" CFLAGS="-O2 -mcpu=power8 -mtune=power8 -pipe" CHOST="powerpc64-unknown-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/sandbox.d" CXXFLAGS="-O2 -mcpu=power8 -mtune=power8 -pipe" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-O2 -mcpu=power8 -mtune=power8 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -mcpu=power8 -mtune=power8 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" SHELL="/bin/bash" USE="acl big-endian bzip2 crypt gdbm ibm iconv ipv6 ncurses nls openmp pam pcre ppc64 readline seccomp ssl systemd test-rust udev unicode xattr zlib" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="fbdev mga r128 radeon dummy" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS # emerge -pqv '=dev-db/mysql-8.0.32-r2::gentoo' [ebuild N ] dev-db/mysql-8.0.32-r2 USE="perl server -cjk -cracklib -debug -jemalloc -latin1 -numa -profiling -router (-selinux) -tcmalloc -test" * IMPORTANT: 1 news items need reading for repository 'gentoo'. * Use eselect news read to view new items.
Created attachment 916102 [details] build log (xz compressed)
Created attachment 916103 [details] environment
``` d /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/plugin/x/tests/driver && /usr/bin/powerpc64-unknown-linux-gnu-g++ -D NGS_DISABLE_LOGGING -D USE_MYSQLX_FULL_PROTO -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_CONFIG_H -DHAVE_TLSv13 -DLOG_COMPONENT_TAG=\"mysqlx\" -DLZ4_DISABLE_DEPRECATE_WARNINGS -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/include -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/include -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/plugin/x/protocol/protobuf -I/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver -isystem /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/extra/rapidjson/include -isystem /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/extra/libedit/libedit-20210910-3.1/src/editline -isystem /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/plugin/x/generated -isystem /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/client -isystem /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/plugin/x/generated/protobuf -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -O2 -mcpu=power8 -mtune=power8 -pipe -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op -DNDEBUG -g1 -fPIE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-unused-parameter -Wno-undef -Wno-unused-but-set-parameter -Wno-extra-semi -Wno-suggest-override -Wno-unused-but-set-parameter -MD -MT plugin/x/tests/driver/CMakeFiles/mysqlxtest.dir/connector/connection_manager.cc.o -MF CMakeFiles/mysqlxtest.dir/connector/connection_manager.cc.o.d -o CMakeFiles/mysqlxtest.dir/connector/connection_manager.cc.o -c /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:36:19: error: ‘LogHandler’ in namespace ‘google::protobuf’ does not name a type 36 | google::protobuf::LogHandler *g_lh = nullptr; | ^~~~~~~~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc: In constructor ‘Connection_manager::Connection_manager(const Connection_options&, Variable_container*, const Console&, const Console&)’: /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:3: error: ‘g_lh’ was not declared in this scope 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:28: error: ‘SetLogHandler’ is not a member of ‘google::protobuf’ 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^~~~~~~~~~~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:45: error: ‘google::protobuf::LogLevel’ has not been declared 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^~~~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc: In lambda function: /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:49:9: error: ‘g_lh’ is not captured 49 | if (g_lh) g_lh(level, filename, line, message); | ^~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:43: note: the lambda has no capture-default 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:3: note: ‘<typeprefixerror>g_lh’ declared here 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:49:15: error: ‘g_lh’ is not captured 49 | if (g_lh) g_lh(level, filename, line, message); | ^~~~ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:43: note: the lambda has no capture-default 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^ /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql/plugin/x/tests/driver/connector/connection_manager.cc:46:3: note: ‘<typeprefixerror>g_lh’ declared here 46 | g_lh = google::protobuf::SetLogHandler([](google::protobuf::LogLevel level, | ^~~~ make[2]: *** [plugin/x/tests/driver/CMakeFiles/mysqlxtest.dir/build.make:132: plugin/x/tests/driver/CMakeFiles/mysqlxtest.dir/connector/connection_manager.cc.o] Error 1 make[2]: Leaving directory '/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build' make[2]: *** Waiting for unfinished jobs.... make[2]: Entering directory '/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build' ```
Looks like it might be related to changes in protobuf? Unfortunately, going back a version to dev-libs/protobuf-27.2 doesn't help much: [ 18%] Linking CXX executable ../../../../runtime_output_directory/xprotocol_plugin make[2]: Leaving directory '/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build' make[2]: Entering directory '/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build' cd /var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build/plugin/x/protocol/plugin && /usr/bin/cmake -E cmake_link_script CMakeFiles/xprotocol_plugin.dir/link.txt --verbose=1 /usr/bin/powerpc64-unknown-linux-gnu-g++ -O2 -mcpu=power8 -mtune=power8 -pipe -std=c++17 -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wimplicit-fallthrough=5 -Wstringop-truncation -Wsuggest-override -Wmissing-include-dirs -Wextra-semi -Wlogical-op -DNDEBUG -g1 -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--build-id=sha1 -Wl,--no-as-needed -lpthread CMakeFiles/xprotocol_plugin.dir/message_field_chain.cc.o CMakeFiles/xprotocol_plugin.dir/messages_used_by_server.cc.o CMakeFiles/xprotocol_plugin.dir/xprotocol_plugin.cc.o -o ../../../../runtime_output_directory/xprotocol_plugin ../protobuf/libmysqlxmessages.a /usr/lib64/libprotoc.so /usr/lib64/libprotobuf.so /usr/lib/gcc/powerpc64-unknown-linux-gnu/14/../../../../powerpc64-unknown-linux-gnu/bin/ld: CMakeFiles/xprotocol_plugin.dir/message_field_chain.cc.o: undefined reference to symbol '_ZN4absl12lts_2024072213base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE' /usr/lib/gcc/powerpc64-unknown-linux-gnu/14/../../../../powerpc64-unknown-linux-gnu/bin/ld: /usr/lib64/libabsl_spinlock_wait.so.2407.0.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [plugin/x/protocol/plugin/CMakeFiles/xprotocol_plugin.dir/build.make:132: runtime_output_directory/xprotocol_plugin] Error 1 make[2]: Leaving directory '/var/tmp/portage/dev-db/mysql-8.0.32-r2/work/mysql_build' make[1]: *** [CMakeFiles/Makefile2:7497: plugin/x/protocol/plugin/CMakeFiles/xprotocol_plugin.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....