What version of binutils are you using? Sounds like it may be too old? Also, this is during compilation of MPFR (one of Julia dependencies), so you may want to direct your question to its developers.
That’s again a question for MPFR for this specific problem.
Pass USE_SYSTEM_MPFR=1 to make. I’m assuming you’re already doing something like USE_BINARYBUILDER=0 or USE_BINARYBUILDER_MPFR=0, since you’re compiling MPFR in the first place. Note that we do expect a minimum version for MPFR (if anything that’s the version that has been tested), for example for Julia v1.11 that’s MPFR v4.2.1:
But I’m still not making it through a whole build.
CC /work2/00434/eijkhout/stampede3/julia/build-git-stampede3-gcc13.2/src/runtime_intrinsics.o
{standard input}: Assembler messages:
{standard input}:7548: Error: no such instruction: `vmovw %xmm0,%edx'
{standard input}:7833: Error: no such instruction: `vmovw %eax,%xmm0'
{standard input}:8046: Error: no such instruction: `vmovw %eax,%xmm0'
{standard input}:8218: Error: no such instruction: `vmovw %eax,%xmm0'
{standard input}:8229: Error: no such instruction: `vmovw .LC9(%rip),%xmm0'
{standard input}:8333: Error: no such instruction: `vmovw %eax,%xmm0'
{standard input}:8346: Error: no such instruction: `vmovw .LC9(%rip),%xmm0'
make[2]: *** [/work2/00434/eijkhout/stampede3/julia/julia-git/src/Makefile:237: runtime_intrinsics.o] Error 1
is at version “17.5.0+1” from Sept (not marked as security update, and LTS has a year old version), but I do see for 7-zip, though not p7zip: 7-Zip - Wikipedia
Versions prior to 23.0 also contained an arbitrary code execution vulnerability, fixed on 7 May 2023. A year later, a severe Remote code execution vulnerability was found on versions prior to 24.07 (CVE-2024-11477), it was fixed on 20 November 2024.
a malicious backdoor was introduced to the Linux build of the xz utility within the liblzma library in versions 5.6.0 and 5.6.1 by an account using the name “Jia Tan”
What matters is what Julia decoding methods Julia supports, XZ/liblzma or whatever. What does Julia need and use for itself? It likely should disable everything else if not done already.
Good advice for those building. For those using precompiled Julia, I think the compression method can actually be chosen at runtime, I’m not sure if it applies in all cases, but I think I saw something like that.
Nothing wrong with doing that if you need to (or do not trust Julia builds…) but why? Do you need to, assuming Julia’s build is secure?
A few years ago a user reported that the precompiled binary was several times slower than a build from source. And at the time the build from source was a press of the button. For some reason this time it isn’t.
Another reason for wanting to build it from source is that want to integrate it with my custom MPI. But that’s the next step.
That’s a bit surprising. Julia is a compiler, compiling it from source instead of using pre-built binaries won’t change the code it generates. Also, official binaries use function multiversioning for different ISAs, to provide efficient cached code for different CPUs (a from-source build by default would target only the native host CPU).
Compiling Julia from source can affect the performance of the runtime (e.g. garbage collector), but that’s shouldn’t in principle be a bottleneck, or if it is that’s a problem on its own: ideally you’d like an application to spend most of its time in doing number crunching.
I don’t see the way how you compile Julia affects in any way the integration with MPI.