Skip to content

Add a clang-arm64 CI #323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
inkydragon opened this issue Mar 11, 2025 · 1 comment
Open

Add a clang-arm64 CI #323

inkydragon opened this issue Mar 11, 2025 · 1 comment
Labels
arm ARM-based architectures ci continuous integration

Comments

@inkydragon
Copy link
Member

inkydragon commented Mar 11, 2025

Add Clang-Arm64 CI to catch the following build error:

This fails to build on Windows, any ideas?

clang  -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wp,-D__USE_MINGW_ANSI_STDIO=1 -fno-builtin -fno-strict-aliasing  -std=c99 -Wall -I/c/M/B/src/build-CLANGARM64 -I/c/M/B/src/build-CLANGARM64/include -I/c/M/B/src/build-CLANGARM64/aarch64 -I/c/M/B/src/build-CLANGARM64/src -DASSEMBLER -D__BSD_VISIBLE -Wno-implicit-function-declaration -I/c/M/B/src/build-CLANGARM64/ld128 -c src/s_fma.c -o src/s_fma.c.o
In file included from src/s_fma.c:31:
In file included from C:/M/B/src/build-CLANGARM64/include/openlibm_fenv.h:6:
C:/M/B/src/build-CLANGARM64/include/openlibm_fenv_aarch64.h:39:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
   39 | typedef __uint64_t      fenv_t;
      |         ^~~~~~~~~~
      |         uint64_t

#319 (comment)


GitHub do not provide an arm based windows runner.
But there are arm based linux runners for Public preview.

See:

@inkydragon inkydragon added arm ARM-based architectures ci continuous integration labels Mar 11, 2025
@BjornTheProgrammer
Copy link

Seems like some of these build issues come from using __uint64_t as stated in PR #305

Firstly, replace non-standard __uint64_t with standard (but optional) uint64_t. __uint64_t is not a part of C standard; it is defined by some platforms but might not be present in every environment (e.g. in freestanding build). On the other hand, uint64_t is standard C. It is optional but virtually guaranteed to be present for any 32/64 bit machine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arm ARM-based architectures ci continuous integration
Projects
None yet
Development

No branches or pull requests

2 participants