compiler-explorer / compiler-explorer/gcc-cross-builder
The default ABIs among mips64{,el} GCC are inconsistent
- Dominant language
- Python
- Stars
- 10
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
```console
$ cd build/latest
$ grep CT_ARCH_mips_ABI mips64*
mips64-11.2.0.config:CT_ARCH_mips_ABI="64"
mips64-12.1.0.config:CT_ARCH_mips_ABI="64"
mips64-12.2.0.config:CT_ARCH_mips_ABI="64"
mips64-12.3.0.config:CT_ARCH_mips_ABI="64"
mips64-13.1.0.config:CT_ARCH_mips_ABI="64"
mips64-13.2.0.config:CT_ARCH_mips_ABI="64"
mips64-4.9.4.config:CT_ARCH_mips_ABI="n32"
mips64-5.5.0.config:CT_ARCH_mips_ABI="n32"
mips64-9.5.0.config:CT_ARCH_mips_ABI="n32"
mips64el-12.1.0.config:CT_ARCH_mips_ABI="32"
mips64el-12.2.0.config:CT_ARCH_mips_ABI="32"
mips64el-12.3.0.config:CT_ARCH_mips_ABI="32"
mips64el-13.1.0.config:CT_ARCH_mips_ABI="32"
mips64el-13.2.0.config:CT_ARCH_mips_ABI="32"
mips64el-4.9.4.config:CT_ARCH_mips_ABI="n32"
mips64el-5.5.0.config:CT_ARCH_mips_ABI="n32"
mips64el-9.5.0.config:CT_ARCH_mips_ABI="n32"
```
Is this intended? In theory, all 64-bit MIPS targets should default to the N64 ABI, which should set `CT_ARCH_mips_ABI="64"`.
If not, I am willing to open a PR and fix it.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the generated configuration files under build/latest and compare the CT_ARCH_mips_ABI values for the mips64 and mips64el targets across GCC versions. Check the target configuration that supplies these defaults and verify the intended ABI for 64-bit MIPS. Done means the generated defaults are consistent with that decision and the affected configurations are validated.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100