Re: BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build
YunQiang Su <wzssyqa@gmail.com>
From: YunQiang Su <wzssyqa@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2019-06-16T01:46:08Z
Lists: pgsql-bugs
Tom Lane <tgl@sss.pgh.pa.us> 于2019年6月13日周四 下午10:07写道: > > PG Bug reporting form <noreply@postgresql.org> writes: > > MIPS r6 changes the encoding of LL/SC instruction, > > while the .set mips2 will force assembler to generate > > old encoding. > > This patch can fix this problem. > > So I have a bunch of questions about this patch. > > 1. What problem is this actually solving? We have what I think are > reasonably modern MIPS machines in the buildfarm (frogfish, > topminnow) and they aren't complaining. > Yes. The MIPS r6 is quite new, and the machine that you have should be pre-r6. > 2. What toolchains define __mips_isa_rev at all? Seems like we could > be trading one portability issue for another one. > It is defined by gcc/llvm. For gcc: https://github.com/gcc-mirror/gcc/blob/41d6b10e96a1de98e90a7c0378437c3255814b16/gcc/config/mips/mips.h#L527 > 3. If we actually need something here, don't we need a run-time probe > rather than a compile-time check? Distro packagers, for example, > can't assume that their packages will be run on exactly the hardware > they build on. We don't think run-time probe is a good idea, since we treat r6 as a new architectures. It has it own port of OS, like Debian. Runtime probe make none sense here. > > regards, tom lane -- YunQiang Su
Commits
-
Fix spinlock assembly code for MIPS so it works on MIPS r6.
- 9895e3a36a72 9.6.15 landed
- 40dde829070d 11.5 landed
- 36d2c3ad33f8 9.5.19 landed
- 2854e2ab6806 9.4.24 landed
- 1323bfce5510 12.0 landed
- 05399b14889e 10.10 landed