Friday, July 03, 2026

Building and testing MySQL 8.0.46 / 8.4.9 / 9.7.0 under macOS

Oracle MySQL 8.0.46, 8.4.9, and 9.7.0 are out (while I was drafting this, 8.4.10 and 9.7.1 came out too - based on them being security hotfixes and on source diff review I assume they build and test the same), thus I did my usual testing of compiling (Release, Debug, and Debug with ASan and UBSan) and running the testsuite under macOS 26.5.2 on Apple Silicon, with Xcode 26.6, and a range of Homebrew-packaged LLVM versions. Previous blog posts in the series: 9.7.0 early access; 8.0.45 / 8.4.8 / 9.6.0.

Builds

No need to use the bundled 3rd party libraries as the Homebrew ones suffice—good. LLVM 14-17 inclusive fail at CMake time due to what looks like newer macOS / older LLVM incompatibility. As usual, newer compilers uncover previously hidden defects.

8.0.46 builds hit:

8.4.9 shares most of the bugs with 8.0.46 as noted above, and

9.7.0 shares Bug #119246 as noted above, gets a new one for LLVM 18, and keeps an existing Xcode one:

What the above means is that there is no way to enable MySQL maintainer mode (making warnings fatal) without some -Wno- compiler flags, which I have been adding to my build script.

Tests

Bad news:

No news:

Good news:

One-off issues that I couldn't reliably reproduce:

  • perfschema.memory_aggregate_no_a_no_u failed once under each of 8.0.46 and 8.4.9 debug with sanitizers build
  • main.join_cache_bka_nobnl failed once under 8.0.46 debug with sanitizers build
  • runtime_output_directory/gcs_xcom_control_interface-t failed once under 8.4.9 release build
  • innodb_undo.purge_on_replica, main.join_cache_bka_nobnl failed once under 8.4.9 debug build
  • innodb_zip.16k failed once under 8.4.9 debug with sanitizers build
  • perfschema.system_events_plugin, innodb.trigger_function_lock_compare, main.join_cache_nojb, routertest_integration_routing_sharing_constrained_pools failed once under 9.7.0 debug build
  • main.join_cache_bnl, innodb_undo.purge_on_replica failed once under 9.7.0 debug with sanitizers build

Test totals

To summarize, 3 new (and 1 got worse), 20 unchanged, and 7 fixed (3 of them tentatively) bugs. The total number of test failures is too high for my comfort, but there is a positive trend of fixed bugs outnumbering new ones. 8.0.46 is also the last 8.0-series release, thus the next time (if there is a next time) I'll do a farewell post for the bugs that die with it.

No comments: