Bug #102288 mysql 5.7.33 build failure
Submitted: 19 Jan 2021 5:05 Modified: 21 Jan 2021 13:57
Reporter: Rui Chen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.7.33 OS:MacOS
Assigned to: CPU Architecture:x86

[19 Jan 2021 5:05] Rui Chen
Description:
mysql 5.7.33 does not build successfully due to the following bug.

```
/tmp/mysql-5.7-20210118-72493-1ebpnc3/mysql-5.7.33/sql/locks/shared_spin_lock.cc:242:3: error: no matching function for call to 'my_atomic_store64'
  my_atomic_store64(&this->m_exclusive_owner, self);
  ^~~~~~~~~~~~~~~~~
/tmp/mysql-5.7-20210118-72493-1ebpnc3/mysql-5.7.33/include/atomic/gcc_atomic.h:91:20: note: candidate function not viable: no known conversion from 'my_thread_t' (aka '_opaque_pthread_t *') to 'int64' (aka 'long long') for 2nd argument
static inline void my_atomic_store64(int64 volatile *a, int64 v)
                   ^
1 error generated.
```

How to repeat:
See build details in https://github.com/Homebrew/homebrew-core/runs/1723735978
PR reference: https://github.com/Homebrew/homebrew-core/pull/69290
[21 Jan 2021 9:40] Tor Didriksen
Fixed in 5.7.34 :
Author: Tor Didriksen <tor.didriksen@oracle.com>
Date:   Thu Dec 17 10:01:10 2020 +0100

    BUG#30519928 INTERMEDIATE MASTER WITH SEMISYNC SHOWS HIGH CPU USAGE DUE TO MUTEX SPINNING
    
    Post-push fix for 5.7: unbreak the build on macOS
    sql/locks/shared_spin_lock.cc:242:3: error: no matching
          function for call to 'my_atomic_store64'
      my_atomic_store64(&this->m_exclusive_owner, self);
    
    Change-Id: I374d9893d0c37d58ef5786e1ccad34b5c85d1383

diff --git a/sql/locks/shared_spin_lock.cc b/sql/locks/shared_spin_lock.cc
index 7cbb948e0ac..de8becb1a62 100644
--- a/sql/locks/shared_spin_lock.cc
+++ b/sql/locks/shared_spin_lock.cc
@@ -239,7 +239,11 @@ lock::Shared_spin_lock &lock::Shared_spin_lock::try_or_spin_exclusive_lock(
   {
     this->spin_exclusive_lock();
   }
+#if defined(__APPLE__)
+  my_atomic_store64(&this->m_exclusive_owner, reinterpret_cast<int64>(self));
+#else
   my_atomic_store64(&this->m_exclusive_owner, self);
+#endif
   return (*this);
 }
[21 Jan 2021 13:57] MySQL Verification Team
Thank you, Tor.

Since this bug is fixed, status of this report is changed to the correct one.
[28 May 10:40] MySQL Verification Team
Sorry Mr. Aliyu,

Your link is totally unreadable.