TestStrtod failing on windows/{386,arm64} after merging !26
Could you please take a look? I don't know much about Windows, less so about the architecture-specific peculiarities. In essence we need to factor out the func Xstrtod implementation from libc_windows.go to different implementations in libc_windows_amd64.go, libc_windows_arm64.go and libc_windows_386.go. Can you please help with it? Thanks.
Particularly the current implementation cannot work on 386, making a float64 from a 32 bit uintptr only. My fault for not realizing that in the review and my fault for testing on windows/amd64 before merging. I have mistakenly assumed the win API/ABI is uniform accross architectures, but that's clearly not the case. My apologies.
Builders: https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2flibc
go1.26.0 windows/386
2026-02-14T08:44:17+01:00 commit b70fb7ce24a7dd71057906ba7fe0731a2ce451d0, GOMAXPROCS 2, GOGC "", GOMEMLIMIT "", CC ""
--- FAIL: TestStrtod (0.00s)
all_non_musl_test.go:116: 1: "+1": 0 1
all_non_musl_test.go:116: 2: "+2": 0 2
all_non_musl_test.go:116: 4: "-1": 0 -1
all_non_musl_test.go:116: 5: "-2": 0 -2
all_non_musl_test.go:116: 6: ".5": 0 0.5
all_non_musl_test.go:116: 8: "1": 0 1
all_non_musl_test.go:116: 9: "1.": 0 1
all_non_musl_test.go:116: 10: "1.024e3": 0 1024
all_non_musl_test.go:116: 11: "16": 0 16
all_non_musl_test.go:116: 12: "2": 0 2
all_non_musl_test.go:116: 13: "32": 0 32
FAIL
exit status 1
FAIL modernc.org/libc 0.044s
FAIL err=exit status 1
and
go1.26.0 windows/arm64
2026-02-13T22:42:13+01:00 commit b70fb7ce24a7dd71057906ba7fe0731a2ce451d0, GOMAXPROCS 4, GOGC "", GOMEMLIMIT "", CC ""
--- FAIL: TestStrtod (0.00s)
all_non_musl_test.go:116: 1: "+1": 0 1
all_non_musl_test.go:116: 2: "+2": 0 2
all_non_musl_test.go:116: 4: "-1": 0 -1
all_non_musl_test.go:116: 5: "-2": 0 -2
all_non_musl_test.go:116: 6: ".5": 0 0.5
all_non_musl_test.go:116: 8: "1": 0 1
all_non_musl_test.go:116: 9: "1.": 0 1
all_non_musl_test.go:116: 10: "1.024e3": 0 1024
all_non_musl_test.go:116: 11: "16": 0 16
all_non_musl_test.go:116: 12: "2": 0 2
all_non_musl_test.go:116: 13: "32": 0 32
FAIL
exit status 1
FAIL modernc.org/libc 0.098s
FAIL err=exit status 1