[MDEV-19696] Cleanup gcc sync builtins Created: 2019-06-05 Updated: 2019-11-16 Resolved: 2019-07-03 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Server |
| Fix Version/s: | 10.4.7 |
| Type: | Task | Priority: | Major |
| Reporter: | Sergey Vojtovich | Assignee: | Robert Bindar |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
Since 10.4 requires C++11 capable compiler, gcc sync builtins became dead code. Remove relevant cmake checks and cleanup include files. |
| Comments |
| Comment by VVD [ 2019-11-16 ] |
|
This change broke build on FreeBSD i386 (12.0 and 12.1): Details are here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239981#c2 |
| Comment by Sergey Vojtovich [ 2019-11-16 ] |
|
VVD, no surprise if that's gcc 4.2. Wasn't clang default FreeBSD compiler? |
| Comment by VVD [ 2019-11-16 ] |
|
clang 8.0.1 is in 12.1, clang 6.0 is in 12.0. gcc 9.2.0 installed too. |
| Comment by Sergey Vojtovich [ 2019-11-16 ] |
|
VVD, we observed similar problem on CentOS 5 amd64 vs x86, where we had gcc 4.1. Could you identify which compiler version triggered this failure? |
| Comment by VVD [ 2019-11-16 ] |
|
– Running cmake version 3.15.5 $ /usr/bin/cc --version |
| Comment by Sergey Vojtovich [ 2019-11-16 ] |
|
Alright, it is something different. clang 7.0 is recent enough to support everything we need, but there was some change wrt atomic handling on 32bit systems. There're quite a few FreeBSD bug reports about it, e.g. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230888 It is unlikely, but I wonder if this change is going to help? Not sure how sync builtins worked in this case, but they're in no way less buggy than what was described in bug 230888. Even worse they lack atomic load/store, which are heavily used by MariaDB. Remember that famous data race of 64bit variable update on 32bit system... |