Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

mips64 / mips64el CI: spurious FPU exception flags under qemu-user

Aperta
#347 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
c, github-actions, ubuntu

Direzione di ricerca

Inizia da .github/workflows/cross.yml e riproduci make test, inclusi test/test-float e test/test-double, nella configurazione fissata Ubuntu 24.04 qemu-user. Confronta il comportamento dei flag delle eccezioni su bare metal o con qemu-system-mips64 e verifica se una versione più recente di qemu lo modifica. Il lavoro è completato quando si determina se le voci CI possono essere riabilitate oppure si documenta e implementa uno skip equivalente del test delle eccezioni.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The mips64 and mips64el entries in .github/workflows/cross.yml are disabled because the in-tree test suite fails under qemu-user on Ubuntu 24.04. Disabled in #346.

Symptom

make test (which runs test/test-float and test/test-double) reports ~1600 failures, all of the form:

```
Failure: yn (1, 1.5) == -0.41230862697391129595: Exception "Invalid operation" set
Failure: yn (1, 2.0) == -0.10703243154093754689: Exception "Divide by zero" set
```

The computed value is correct in each case — the test fails only because the FPU exception flag is unexpectedly set after the call. No numeric disagreement.

Failing run (mips64): https://github.com/JuliaMath/openlibm/actions/runs/27987699090/job/82832967366
Failing run (mips64el): https://github.com/JuliaMath/openlibm/actions/runs/27987699090/job/82832967387

32-bit mips and mipsel pass under the same qemu / toolchain combination, which strongly suggests this is qemu-user mishandling MIPS64 FPU status register semantics rather than an openlibm bug. Possibly related: qemu's softfloat IEEE flag mapping for the n64 ABI.

To investigate

  • Reproduce on bare metal or under qemu-system-mips64 (full-system) and compare flag behavior.
  • Check whether qemu-user >= <some version> fixes it (current pin is Ubuntu 24.04's qemu).
  • If qemu-user is unfixable here, decide whether to keep mips64 CI entirely or run only with exception-flag assertions skipped (the openlibm-test suite has SKIP_FP_EXCEPT_TEST=1; the in-tree suite would need an equivalent knob).

How to re-enable

In .github/workflows/cross.yml, uncomment the two matrix entries:

```yaml

  • { arch: mips64, triple: mips64-linux-gnuabi64 }
  • { arch: mips64el, triple: mips64el-linux-gnuabi64 }
    ```
Lingua principale
C
Stelle
632
Fork
163
Merge medio
4m
PR unite (30g)
1

Preparare l'ambiente

Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di JuliaMath/openlibm

Tutte le issue di JuliaMath/openlibm

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.