I'm on a fresh installation of ubuntu 20 on an OCI VM.Standard.A1.Flex (aarch64).
task clientwasm, "client-wasm":
exec "nim c -d:danger -d:emscripten --cpu:wasm32 --cc:clang --os:linux src/nimstcorepkg/client.nim"
I haven't written any code yet, I'm just trying to get a fresh nimble init hybrid project to compile nim -> wasm.
$ nimble clientwasm
Executing task clientwasm in /home/ubuntu/code/nimstcore/nimstcore.nimble
Hint: used config file '/opt/nim/nim-1.6.6/config/nim.cfg' [Conf]
Hint: used config file '/opt/nim/nim-1.6.6/config/config.nims' [Conf]
..........................................................
CC: stdlib_digitsutils.nim
CC: stdlib_io.nim
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_digitsutils.nim.c:7:
/opt/nim/nim-1.6.6/lib/nimbase.h:550:1: error: static_assert failed due to requirement 'sizeof(int) == sizeof(void *) && 32 == sizeof(int) * 8' ""
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/nim/nim-1.6.6/lib/nimbase.h:276:35: note: expanded from macro 'NIM_STATIC_ASSERT'
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^ ~
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_io.nim.c:7:
/opt/nim/nim-1.6.6/lib/nimbase.h:550:1: error: static_assert failed due to requirement 'sizeof(int) == sizeof(void *) && 32 == sizeof(int) * 8' ""
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/nim/nim-1.6.6/lib/nimbase.h:276:35: note: expanded from macro 'NIM_STATIC_ASSERT'
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^ ~
1 error generated.
1 error generated.
Error: execution of an external compiler program 'clang -c -w -ferror-limit=3 -O3 -I/opt/nim/nim-1.6.6/lib -I/home/ubuntu/code/nimstcore/src/nimstcorepkg -o /home/ubuntu/.cache/nim/client_r/stdlib_digitsutils.nim.c.o /home/ubuntu/.cache/nim/client_r/stdlib_digitsutils.nim.c' failed with exit code: 1
stack trace: (most recent call last)
/tmp/nimblecache-347138583/nimscriptapi_1549487787.nim(187, 16)
/home/ubuntu/code/nimstcore/nimstcore.nimble(28, 8) clientwasmTask
/opt/nim/nim-1.6.6/lib/system/nimscript.nim(273, 7) exec
/opt/nim/nim-1.6.6/lib/system/nimscript.nim(273, 7) Error: unhandled exception: FAILED: nim c -d:danger -d:emscripten --cpu:wasm32 --cc:clang --os:linux src/nimstcorepkg/client.nim [OSError]
Error: Exception raised during nimble script execution
lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: ARM
Model: 1
Model name: Neoverse-N1
Stepping: r3p1
BogoMIPS: 50.00
NUMA node0 CPU(s): 0,1
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Mitigation; CSV2, BHB
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
$ nim c -d:danger -d:emscripten --cpu:wasm32 --passC:-m32 --cc:clang --os:linux src/nimstcorepkg/client.nim
Hint: used config file '/opt/nim/nim-1.6.6/config/nim.cfg' [Conf]
Hint: used config file '/opt/nim/nim-1.6.6/config/config.nims' [Conf]
..........................................................
CC: stdlib_digitsutils.nim
CC: stdlib_io.nim
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_io.nim.c:7:
In file included from /opt/nim/nim-1.6.6/lib/nimbase.h:269:
In file included from /usr/lib/llvm-10/lib/clang/10.0.0/include/limits.h:21:
/usr/include/limits.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_digitsutils.nim.c:7:
In file included from /opt/nim/nim-1.6.6/lib/nimbase.h:269:
In file included from /usr/lib/llvm-10/lib/clang/10.0.0/include/limits.h:21:
/usr/include/limits.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
1 error generated.
Error: execution of an external compiler program 'clang -c -w -ferror-limit=3 -m32 -O3 -I/opt/nim/nim-1.6.6/lib -I/home/ubuntu/code/nimstcore/src/nimstcorepkg -o /home/ubuntu/.cache/nim/client_r/stdlib_io.nim.c.o /home/ubuntu/.cache/nim/client_r/stdlib_io.nim.c' failed with exit code: 1
this person https://stackoverflow.com/a/68117826 said to:
sudo apt install gcc-multilib-arm-linux-gnueabihf
cd /usr/include/aarch64-linux-gnu
sudo cp -r . ..
which lead to:
$ nim c -d:danger -d:emscripten --cpu:wasm32 --passC:-m32 --cc:clang --os:linux src/nimstcorepkg/client.nim
Hint: used config file '/opt/nim/nim-1.6.6/config/nim.cfg' [Conf]
Hint: used config file '/opt/nim/nim-1.6.6/config/config.nims' [Conf]
..........................................................
CC: stdlib_system.nim
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_system.nim.c:13:
In file included from /usr/include/signal.h:291:
In file included from /usr/include/bits/sigcontext.h:30:
/usr/include/asm/sigcontext.h:77:2: error: unknown type name '__uint128_t'
__uint128_t vregs[32];
^
In file included from /home/ubuntu/.cache/nim/client_r/stdlib_system.nim.c:13:
In file included from /usr/include/signal.h:306:
In file included from /usr/include/sys/ucontext.h:36:
In file included from /usr/include/sys/procfs.h:35:
/usr/include/sys/user.h:32:3: error: unknown type name '__uint128_t'
__uint128_t vregs[32];
^
2 errors generated.
Error: execution of an external compiler program 'clang -c -w -ferror-limit=3 -m32 -O3 -I/opt/nim/nim-1.6.6/lib -I/home/ubuntu/code/nimstcore/src/nimstcorepkg -o /home/ubuntu/.cache/nim/client_r/stdlib_system.nim.c.o /home/ubuntu/.cache/nim/client_r/stdlib_system.nim.c' failed with exit code: 1