Package: julia Version: 0.7.0-2 Severity: normal Hi,
I've noticed that the package currently builds a single sysimage for the baseline CPU target (i.e. pentium4 and x86-64). Recent Julia versions allow specifying multiple targets via JULIA_CPU_TARGET. This allows building one image for the baseline which works on all machines, and one or more additional images which are optimized for recent CPUs. This can make a significant difference in code which can use e.g. AVX2. Below is the code I use for the Fedora RPM package. The targets are those used by upstream currently: %ifarch %{ix86} %global march MARCH=pentium4 %global cpu_target JULIA_CPU_TARGET="pentium4;sandybridge,-xsaveopt,clone_all" %endif %ifarch x86_64 %global march MARCH=x86-64 %global cpu_target JULIA_CPU_TARGET="generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" %endif %ifarch %{arm} # gcc and LLVM do not support the same targets %global march MARCH=$(echo %optflags | grep -Po 'march=\\K[^ ]*') %global cpu_target JULIA_CPU_TARGET="generic" %endif %ifarch armv7hl %global march MARCH=$(echo %optflags | grep -Po 'march=\\K[^ ]*') %global cpu_target JULIA_CPU_TARGET="armv7-a;armv7-a,neon;armv7-a,neon,vfp4" %endif %ifarch aarch64 %global march MARCH=armv8-a %global cpu_target JULIA_CPU_TARGET="generic" %endif %ifarch ppc64le %global march %{nil} %global cpu_target JULIA_CPU_TARGET="pwr8" %endif