Closed refacto closed 4 years ago
Tested with Alpine Linux edge, updated on 2020-08-31.
Ouch. Guess we need to statically link with glibc and/or musl.
So, musl isn't working because libarchive cannot work with it:
/home/dom/.cache/nim/nimterop/nimarchive/libarchive/LibArchive/lib/libarchive.a(archive_entry.o): In function `archive_entry_devmajor':
... /workspace/srcdir/libarchive/libarchive/archive_entry.c:344: undefined reference to `gnu_dev_major'
It's the error I got when I tried to compile with musl-gcc which is the same error you are seeing.
That's good, choosenim now works, but it installs an incompatible nim:
thermi:~$ ldd ./.nimble/bin/nim
/lib64/ld-linux-x86-64.so.2 (0x7fdf85ddc000)
librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7fdf85ddc000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fdf85ddc000)
Error relocating ./.nimble/bin/nim: __memcpy_chk: symbol not found
Error relocating ./.nimble/bin/nim: __longjmp_chk: symbol not found
Looks like I missed compiling the proxyexe files with musl.
The same problem like @refacto to up the problem
As in the title, trying to run
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
on a musl based Linux distro results in:This is because choosenim is linked against glibc: