oxidecomputer / oxidecomputer/helios

gcc9 and 10 handle floats wrong on westmere

Open
#34 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
481
Forks
21
Avg merge
1d 17h
Merged PRs (30d)
2

Description

I'll add the deeper info later. The gist is, gcc9 and 10 from pkg install explode when they see float literals but only if you're executing the compiler on a westmere cpu.

if you execute it elsewhere, it generates executables that work. and those executables work on westmere. if you execute it on westmere, the executables are just broken. like it generates the wrong constant values. and it seems to specifically be the exponent bits that are incorrect, while the other bits are fine.

gcc7 is fine. also gcc9/10 from pkgsrc are fine.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names GCC 9 and 10 from pkg install, GCC 7, and GCC 9/10 from pkgsrc, but no repository files or tests. Start by reproducing the float-literal failure on a Westmere CPU and compare those compiler versions; done means generated float constants have correct exponent bits and executables work on Westmere.

Written by the indexing model from the issue text.

Assessment

Domain
compilers, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.