Revert our fix for bug 803865 / bug 878022 and add #error if make_atomic_cas_body64 is being compiled
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.1 |
Won't Fix
|
Low
|
Unassigned | |||
5.5 |
Triaged
|
Low
|
Unassigned | |||
5.6 |
Fix Released
|
Low
|
Unassigned | |||
5.7 |
Fix Released
|
Low
|
Unassigned |
Bug Description
If 64-bit atomic ops are unavailable (i.e. 32-bit platform with -march=i486 or less), then MySQL will use an inline asm implementation. I believe that the upstream implementation is buggy due to incorrect asm constraints (http://
But the fixed version starves the compiler from registers and compilations might ICE, depending on the code context. Also it's still hard to reason about it whether the fix is really complete and correct.
We should revert all the fixes and add #error in front of make_atomic_
description: | updated |
Got
======= ======= ======= ======= ======= ======= ======= workspace/ percona- xtradb- cluster- 5.6-debs/ label_exp/ ubuntu- lucid-32bit/ target/ Percona- XtraDB- Cluster- 5.6.15/ include/ my_atomic. h: In function ‘int my_atomic_ cas64(volatile int64*, int64*, int64)’: workspace/ percona- xtradb- cluster- 5.6-debs/ label_exp/ ubuntu- lucid-32bit/ target/ Percona- XtraDB- Cluster- 5.6.15/ include/ my_atomic. h:203: error: can't find a register in class ‘GENERAL_REGS’ while reloading ‘asm’ workspace/ percona- xtradb- cluster- 5.6-debs/ label_exp/ ubuntu- lucid-32bit/ target/ Percona- XtraDB- Cluster- 5.6.15/ include/ my_atomic. h:203: error: ‘asm’ operand has impossible constraints
/home/jenkins/
/home/jenkins/
/home/jenkins/
======= ======= ======= ======= ======= ======= ======= ======= ====
with PXC build on ubuntu-lucid-32bit (so an old 32 bit gcc)
Using workaround of " -march=i686 " for now.