Open eschnett opened 5 years ago
Ah, sorry, it's because --cpu-target=x86-64
is incompatible with self-built julia. You can either:
cpu_target="native"
in build_app_bundle(). But If you do this, then your app will be significantly less portable to other machines (it will only run on other machines with identical cpus).@NHDaly Thanks to the above information, I was finally able to build an executable with PackageCompiler.jl
, (within a singularity container) that could run on our computing cluster. Both the cpu_target="x86_64"
(seems to work with underscore, as in the output of gcc -dumpmachine
) and the "is incompatible with self-built julia" pieces of information were crucial to make this work.
Indeed, I had initially tried to use the cpu_target
option with the julia version present in my workstation, and I got the error message that lead me to this issue. When done during the %post phase of the singularity container build, this worked, likely because the official docker image on which my container is based contains a "shipped julia binary".
Definitely worth adding these important pieces information in the README of PackageCompiler.jl
, in my opinion.
Now, I shoud try ApplicationBuilder.jl
to see if I can make something able to run without a container.
Thanks.
(The deps/build.jl
and the singularity definition file are available at commit 09c31ab0 of https://gitlab.pasteur.fr/bli/qaf_demux/tree/master/Julia/QafDemux)
Note that using the same CPU target that Julia itself uses is likely a good idea: https://github.com/KristofferC/PackageCompilerX.jl/blob/1aedf81497fe195cca28d7e6287a189e1fb26518/src/PackageCompilerX.jl#L13
I am trying to build the example on MacOS with Julia 1.1 (self-built). This does not work: