magick wrote:It may be failing in a system call. Do you have MAGICKCORE_HAVE_TIMES defined in magick/magick-baseconfig.h? If so its calling times() @ magick/timer.c/198. Otherwise its calling clock(). This assumes your stack trace is accurate. Pop some debug statements around this code block to trace the failure.
So, it does go through that bit of code at line 198. The issue is in the .so, since using the previous ones with the new convert binary works.
But the plot thickens: when I build it on my test machine, still the exact same recipe, same compiler, same optimization, then it works. When it's built on the packaging machine, it works on the packaging machine, but I get that SIGILL if I move the binary on the test machine.
The packaging machine supports more recent instruction sets:
Code: Select all
$ isainfo -v
64-bit amd64 applications
avx xsave pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 sse3 sse2
sse fxsr mmx cmov amd_sysc cx8 tsc fpu
Old test machine:
Code: Select all
$ isainfo -v
64-bit amd64 applications
sse4.1 ssse3 cx16 sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
I'm a bit puzzled. Could there be some build-time optimization done? I don't see anything that would match in the changelog.
Thanks,
Laurent