Skip to content

esp32 emulator: float output still missing (and struczero timeout) for alias/multiret/cpkgimp/struczero #1685

@luoliwoshang

Description

@luoliwoshang

Summary

On current main, running the same float-related cases from #1664 on esp32 (xtensa emulator) still fails.

esp32c3-basic now passes these cases, but esp32 does not.

Reproduction

Run cases one by one with ESP32 emulator target:

llgo run -a -target=esp32 -emulator ./cl/_testgo/alias
llgo run -a -target=esp32 -emulator ./cl/_testgo/multiret
llgo run -a -target=esp32 -emulator ./cl/_testgo/struczero
llgo run -a -target=esp32 -emulator ./cl/_testdata/cpkgimp

Actual behavior (esp32)

  1. ./cl/_testgo/alias

    • got: blank output line
    • expect: +5.000000e+00 +8.000000e+00
  2. ./cl/_testgo/multiret

    • got: 1
    • expect: 1 +2.000000e+00
  3. ./cl/_testgo/struczero

    • got: no expected output; run did not finish within 240s in local check
    • expect:
      • 0x0 +0.000000e+00 notOk: true
      • 0x0 +0.000000e+00 true
  4. ./cl/_testdata/cpkgimp

    • got: 3
    • expect: 3 +6.280000e+00

Comparison

With the same environment and same cases, esp32c3-basic outputs are correct and the runs finish.

Notes

A local quick test with temporary target override --undefined=_printf_float on esp32 led to link error:

undefined symbol: __fpclassifyd
referenced by nano-vfprintf_float.c ... in libc-xtensa.a

which suggests xtensa-side float printf support is still not fully wired.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions