Fork me on GitHub
#datalevin
<
2021-10-24
>
ericdallo14:10:40

I was trying to compile clojure-lsp statically with musl instead of glibc to be real static binary using the --libc=musl --static (https://github.com/clj-kondo/clj-kondo/blob/master/script/compile#L23-L30how kondo does), and found it doesn't work with datalevin, probably because of the C files compiled with glibc (?) is it possible to make datalevin work with musl?

ericdallo14:10:01

This is the exception I got when compiling:

[clojure-lsp:593189]   (typeflow):   8,789.21 ms,  3.87 GB
[clojure-lsp:593189]    (objects): 1,195,767.98 ms,  3.87 GB
[clojure-lsp:593189]   (features):  41,926.76 ms,  3.87 GB
[clojure-lsp:593189]     analysis: 1,268,514.58 ms,  3.87 GB
[clojure-lsp:593189]     universe:  51,157.14 ms,  3.87 GB
[clojure-lsp:593189]      (parse):  18,796.06 ms,  3.59 GB
[clojure-lsp:593189]     (inline):  14,831.82 ms,  3.13 GB
[clojure-lsp:593189]    (compile):  75,749.50 ms,  3.62 GB
[clojure-lsp:593189]      compile: 114,331.75 ms,  3.62 GB
[clojure-lsp:593189]        image:  13,465.33 ms,  3.30 GB
[clojure-lsp:593189]        write:   1,184.38 ms,  3.30 GB
Fatal error:java.lang.RuntimeException: There was an error linking the native image: Linker command exited with 1

Linker command executed:
/nix/store/k93bgq7nipgwj3j22044w6n20amrxxjv-x86_64-linux-musl-gcc/bin/x86_64-linux-musl-gcc -Wl,-z,stack-size=2097152 -z noexecstack -Wl,--gc-sections -Wl,-x -o /home/greg/dev/clojure-lsp/clojure-lsp clojure-lsp.o /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64/liblibchelper.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libawt_headless.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libawt.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libnet.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libextnet.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libnio.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libjava.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libfdlibm.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libsunec.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libzip.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64/libjvm.a -static -v -L/tmp/SVM-13541431987437469615 -L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl -L/tmp/tmp.M1W3F8BCxT -L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64 -llmdb -ldtlv -lstdc++ -lstdc++ -lm -lpthread -ldl -lz -lrt

Linker command output:
Using built-in specs.
Reading specs from /nix/store/r6k260a3i780jy75kk33ijqgrqxmq6wd-musl-1.2.2-dev/lib/musl-gcc.specs
rename spec cpp_options to old_cpp_options
COLLECT_GCC=/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/bin/gcc
COLLECT_LTO_WRAPPER=/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with:
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.3.0 (GCC)
COMPILER_PATH=/nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib/:/nix/store/mij848h2x5wiqkwhg027byvmf9x3gx7y-glibc-2.33-50/lib/:/nix/store/s5hkav7whndbfz0szshpb46h4idqdq9a-gcc-wrapper-10.3.0/bin/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/
LIBRARY_PATH=/nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib/:/nix/store/mij848h2x5wiqkwhg027byvmf9x3gx7y-glibc-2.33-50/lib/:/nix/store/s5hkav7whndbfz0szshpb46h4idqdq9a-gcc-wrapper-10.3.0/bin/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/../../../../lib64/:/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/../../../
COLLECT_GCC_OPTIONS='-z' 'noexecstack' '-o' '/home/greg/dev/clojure-lsp/clojure-lsp' '-static' '-v' '-L/tmp/SVM-13541431987437469615' '-L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl' '-L/tmp/tmp.M1W3F8BCxT' '-L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64' '-specs=/nix/store/r6k260a3i780jy75kk33ijqgrqxmq6wd-musl-1.2.2-dev/lib/musl-gcc.specs' '-B' '/nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib' '-B' '/nix/store/mij848h2x5wiqkwhg027byvmf9x3gx7y-glibc-2.33-50/lib/' '-idirafter' '/nix/store/f1r94qx7a8m8iz7fxvlq655gbawql7xf-glibc-2.33-50-dev/include' '-idirafter' '/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/include-fixed' '-B' '/nix/store/s5hkav7whndbfz0szshpb46h4idqdq9a-gcc-wrapper-10.3.0/bin/' '-L/nix/store/mij848h2x5wiqkwhg027byvmf9x3gx7y-glibc-2.33-50/lib' '-L/nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib' '-mtune=generic' '-march=x86-64' '-fcommon'
 /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/collect2 -plugin /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/liblto_plugin.so -plugin-opt=/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/libexec/gcc/x86_64-unknown-linux-gnu/10.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccNdEX7T.res -plugin-opt=-pass-through=/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/libgcc.a -plugin-opt=-pass-through=/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/libgcc_eh.a -plugin-opt=-pass-through=-lc -dynamic-linker /nix/store/9qkg55b0sa8m29mfwpn1ag7xsparny3m-musl-1.2.2/lib/ld-musl-x86_64.so.1 -nostdlib -static -o /home/greg/dev/clojure-lsp/clojure-lsp -z noexecstack /nix/store/9qkg55b0sa8m29mfwpn1ag7xsparny3m-musl-1.2.2/lib/Scrt1.o /nix/store/9qkg55b0sa8m29mfwpn1ag7xsparny3m-musl-1.2.2/lib/crti.o /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtbeginS.o -L/tmp/SVM-13541431987437469615 -L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl -L/tmp/tmp.M1W3F8BCxT -L/nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64 -L/nix/store/mij848h2x5wiqkwhg027byvmf9x3gx7y-glibc-2.33-50/lib -L/nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib -L/nix/store/9qkg55b0sa8m29mfwpn1ag7xsparny3m-musl-1.2.2/lib -L /nix/store/7fv9v6mnlkb4ddf9kz1snknbvbfbcbx0-gcc-10.3.0-lib/lib/. -z stack-size=2097152 --gc-sections -x clojure-lsp.o /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64/liblibchelper.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libawt_headless.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libawt.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libnet.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libextnet.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libnio.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libjava.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libfdlibm.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libsunec.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/static/linux-amd64/musl/libzip.a /nix/store/9jhdk8lbvgypgv2kjxyj7myv2klwvhak-graalvm11-ce/lib/svm/clibraries/linux-amd64/libjvm.a -llmdb -ldtlv -lstdc++ -lstdc++ -lm -lpthread -ldl -lz -lrt --start-group /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/libgcc.a /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/libgcc_eh.a -lc --end-group /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtendS.o /nix/store/9qkg55b0sa8m29mfwpn1ag7xsparny3m-musl-1.2.2/lib/crtn.o
/nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/ld: /tmp/tmp.M1W3F8BCxT/liblmdb.a(mdb.o): in function `sprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36: undefined reference to `__sprintf_chk'
/nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/ld: /tmp/tmp.M1W3F8BCxT/liblmdb.a(mdb.o): in function `fprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:100: undefined reference to `__fprintf_chk'
/nix/store/a4mmjm3bblxwp8h53bcfx3dly80ib0ba-binutils-2.35.1/bin/ld: /tmp/tmp.M1W3F8BCxT/liblmdb.a(mdb.o): in function `sprintf':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36: undefined reference to `__sprintf_chk'
collect2: error: ld returned 1 exit status
        at com.oracle.svm.hosted.image.NativeImageViaCC.handleLinkerFailure(NativeImageViaCC.java:502)
        at com.oracle.svm.hosted.image.NativeImageViaCC.write(NativeImageViaCC.java:449)
        at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:657)
        at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:488)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:403)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:569)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:122)
        at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:599)
[clojure-lsp:593189]      [total]: 1,459,457.23 ms,  3.30 GB
# Printing build artifacts to: /home/greg/dev/clojure-lsp/clojure-lsp.build_artifacts.txt
Error: Image build request failed with exit status 1
com.oracle.svm.driver.NativeImage$NativeImageError: Image build request failed with exit status 1
        at com.oracle.svm.driver.NativeImage.showError(NativeImage.java:1762)
        at com.oracle.svm.driver.NativeImage.build(NativeImage.java:1473)
        at com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1434)
        at com.oracle.svm.driver.NativeImage.main(NativeImage.java:1421)