Sun Jun 27 06:41:56 2021 UTC ()
mysql80: use __builtin_ffsll where ffsll is missing

mysql80 uses some inline asm on x86_64, but falls back to the
function on non-x86_64. netbsd does not have a ffsll function.
helps build on non-x86_64.


(nia)
diff -r1.2 -r1.3 pkgsrc/databases/mysql80-client/distinfo
diff -r0 -r1.1 pkgsrc/databases/mysql80-client/patches/patch-sql_join__optimizer_bit__utils.h

cvs diff -r1.2 -r1.3 pkgsrc/databases/mysql80-client/distinfo (expand / switch to unified diff)

--- pkgsrc/databases/mysql80-client/distinfo 2021/06/22 10:12:36 1.2
+++ pkgsrc/databases/mysql80-client/distinfo 2021/06/27 06:41:55 1.3
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1$NetBSD: distinfo,v 1.2 2021/06/22 10:12:36 nia Exp $ 1$NetBSD: distinfo,v 1.3 2021/06/27 06:41:55 nia Exp $
2 2
3SHA1 (mysql-boost-8.0.24.tar.gz) = e640d9851c1721a0550bdca38f03cb8681d61862 3SHA1 (mysql-boost-8.0.24.tar.gz) = e640d9851c1721a0550bdca38f03cb8681d61862
4RMD160 (mysql-boost-8.0.24.tar.gz) = 2577eb94d5b8651f3520706be9c40c3e924980d4 4RMD160 (mysql-boost-8.0.24.tar.gz) = 2577eb94d5b8651f3520706be9c40c3e924980d4
5SHA512 (mysql-boost-8.0.24.tar.gz) = ad8510614251c056f0963f8e51b9ed5e75452ccbf2728254d662fcc3a7ee1bdc177d1d34e958ddc31c7e6b5b3af9377ef2d9cbdc0353676b3026619673447deb 5SHA512 (mysql-boost-8.0.24.tar.gz) = ad8510614251c056f0963f8e51b9ed5e75452ccbf2728254d662fcc3a7ee1bdc177d1d34e958ddc31c7e6b5b3af9377ef2d9cbdc0353676b3026619673447deb
6Size (mysql-boost-8.0.24.tar.gz) = 290263082 bytes 6Size (mysql-boost-8.0.24.tar.gz) = 290263082 bytes
7SHA1 (patch-CMakeLists.txt) = 16ca9bcbcaefdc8bd1bc0e8dc89ca7a347d14675 7SHA1 (patch-CMakeLists.txt) = 16ca9bcbcaefdc8bd1bc0e8dc89ca7a347d14675
8SHA1 (patch-client_CMakeLists.txt) = f96d0d2e5ad8c1c8f5d6a9eabbd1c706bee852c0 8SHA1 (patch-client_CMakeLists.txt) = f96d0d2e5ad8c1c8f5d6a9eabbd1c706bee852c0
9SHA1 (patch-client_mysqladmin.cc) = e3459bd009ef7ac0b7acece6bbcb82777a384db3 9SHA1 (patch-client_mysqladmin.cc) = e3459bd009ef7ac0b7acece6bbcb82777a384db3
10SHA1 (patch-cmake_boost.cmake) = 7452d5ef84c63bb0bd34313aa0cedafee5f41618 10SHA1 (patch-cmake_boost.cmake) = 7452d5ef84c63bb0bd34313aa0cedafee5f41618
11SHA1 (patch-cmake_os_SunOS.cmake) = 15cf67c136c2b6e608d9379290d235d71d6b769e 11SHA1 (patch-cmake_os_SunOS.cmake) = 15cf67c136c2b6e608d9379290d235d71d6b769e
12SHA1 (patch-cmake_readline.cmake) = fb79ed969240ae2984098f72c2d3fb501154902c 12SHA1 (patch-cmake_readline.cmake) = fb79ed969240ae2984098f72c2d3fb501154902c
13SHA1 (patch-config.h.cmake) = e6debea316c5bb8338afb693d704007d45b3941f 13SHA1 (patch-config.h.cmake) = e6debea316c5bb8338afb693d704007d45b3941f
14SHA1 (patch-configure.cmake) = b03de49ecb8d6ce58ef24f5dcd8f0a8c95eab592 14SHA1 (patch-configure.cmake) = b03de49ecb8d6ce58ef24f5dcd8f0a8c95eab592
@@ -21,15 +21,16 @@ SHA1 (patch-libmysql_CMakeLists.txt) = c @@ -21,15 +21,16 @@ SHA1 (patch-libmysql_CMakeLists.txt) = c
21SHA1 (patch-mysys_kqueue__timers.cc) = 837474b779c24dd0af67444c2adbcf07b73e0d36 21SHA1 (patch-mysys_kqueue__timers.cc) = 837474b779c24dd0af67444c2adbcf07b73e0d36
22SHA1 (patch-mysys_stacktrace.cc) = 6792ceaae3c3b0d70bd8b6c848a128d50397e6f4 22SHA1 (patch-mysys_stacktrace.cc) = 6792ceaae3c3b0d70bd8b6c848a128d50397e6f4
23SHA1 (patch-router_CMakeLists.txt) = 9bfd1278c42070ada0606dfff34a66b8b95d0413 23SHA1 (patch-router_CMakeLists.txt) = 9bfd1278c42070ada0606dfff34a66b8b95d0413
24SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_impl_netif.h) = 4daf0b2a9e92eb6ffe8a00eb0bfb37db7a8638ee 24SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_impl_netif.h) = 4daf0b2a9e92eb6ffe8a00eb0bfb37db7a8638ee
25SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_internet.h) = 29e019236423aaa77b71b273d009404e4fbafe73 25SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_internet.h) = 29e019236423aaa77b71b273d009404e4fbafe73
26SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_local.h) = d2149f9840dc8b65a4d9d8332bcd5088b4f9b919 26SHA1 (patch-router_src_harness_include_mysql_harness_net_ts_local.h) = d2149f9840dc8b65a4d9d8332bcd5088b4f9b919
27SHA1 (patch-router_src_harness_include_mysql_harness_tty.h) = ca883b2ed83b623922b58cf96f896de9847d37cb 27SHA1 (patch-router_src_harness_include_mysql_harness_tty.h) = ca883b2ed83b623922b58cf96f896de9847d37cb
28SHA1 (patch-router_src_harness_src_stdx_io_file_handle.cc) = 5349b05663179e4ef049cfb1532514e48a3885c9 28SHA1 (patch-router_src_harness_src_stdx_io_file_handle.cc) = 5349b05663179e4ef049cfb1532514e48a3885c9
29SHA1 (patch-scripts_CMakeLists.txt) = 15be14619275f0dc39c216901b2cabc6ee517300 29SHA1 (patch-scripts_CMakeLists.txt) = 15be14619275f0dc39c216901b2cabc6ee517300
30SHA1 (patch-scripts_mysqld_safe.sh) = 0784314227657aa0bc3f4a0b4e21c173a86fa94b 30SHA1 (patch-scripts_mysqld_safe.sh) = 0784314227657aa0bc3f4a0b4e21c173a86fa94b
31SHA1 (patch-sql_CMakeLists.txt) = 84af2f2e58a17bde292a665a726489b8f56f4132 31SHA1 (patch-sql_CMakeLists.txt) = 84af2f2e58a17bde292a665a726489b8f56f4132
32SHA1 (patch-sql_conn__handler_socket__connection.cc) = b414e0d499f51750e1aa6e9dd7b4e7006456a079 32SHA1 (patch-sql_conn__handler_socket__connection.cc) = b414e0d499f51750e1aa6e9dd7b4e7006456a079
33SHA1 (patch-sql_item_geofunc_relchecks_bgwrap.h) = d20896bfe2391d30aa9e95834c77e7de03377d76 33SHA1 (patch-sql_item_geofunc_relchecks_bgwrap.h) = d20896bfe2391d30aa9e95834c77e7de03377d76
 34SHA1 (patch-sql_join__optimizer_bit__utils.h) = 3e75331da6b50935f082b2f738e6c6964afef5f7
34SHA1 (patch-sql_resourcegroups_platform_thread__attrs__api__apple.cc) = e08ed53790ac8b03b38d566fee3a2688ca6065b3 35SHA1 (patch-sql_resourcegroups_platform_thread__attrs__api__apple.cc) = e08ed53790ac8b03b38d566fee3a2688ca6065b3
35SHA1 (patch-vio_viosocket.cc) = 15dcc0dee88e736a844aacc02e9dbc6beeb915e4 36SHA1 (patch-vio_viosocket.cc) = 15dcc0dee88e736a844aacc02e9dbc6beeb915e4

File Added: pkgsrc/databases/mysql80-client/patches/patch-sql_join__optimizer_bit__utils.h
$NetBSD: patch-sql_join__optimizer_bit__utils.h,v 1.1 2021/06/27 06:41:55 nia Exp $

NetBSD has no ffsll, but GCC does.

--- sql/join_optimizer/bit_utils.h.orig	2021-03-22 08:44:50.000000000 +0000
+++ sql/join_optimizer/bit_utils.h
@@ -82,6 +82,8 @@ static inline size_t FindLowestBitSet(ui
   size_t idx;
   asm("bsfq %1,%q0" : "=r"(idx) : "rm"(x));
   return idx;
+#elif defined(__GNUC__) && !defined(HAVE_FFSLL)
+  return static_cast<unsigned>(__builtin_ffsll(x)) - 1u;
 #else
   // The cast to unsigned at least gets rid of the sign extension.
   return static_cast<unsigned>(ffsll(x)) - 1u;