Root as a conda package on an older computer

Dear community,

I tried to use miniconda3 to install ROOT:

; conda create -n our_root root -c conda-forge

and it seemed to have finished with no errors. Then activation also worked:

; conda activate our_root

However, running

(our_root) [conda@void ~]$ python
Python 3.8.10 | packaged by conda-forge | (default, May 11 2021, 07:01:05) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ROOT

 *** Break *** <TUnixSystem::DispatchSignals>: illegal instruction
 Generating stack trace...
 0x00007f30d932b666 in ROOT::Internal::GetROOT1() + 0x66 from /opt/miniconda3/envs/our_root/bin/../lib/libCore.so.6.24
 0x00007f30d931e214 in <unknown> from /opt/miniconda3/envs/our_root/bin/../lib/libCore.so.6.24
 0x00007f30d9fc1f2e in <unknown> from /lib64/ld-linux-x86-64.so.2
 0x00007f30d9fc2010 in <unknown> from /lib64/ld-linux-x86-64.so.2
 0x00007f30d9d983bd in _dl_catch_exception at /builddir/glibc-2.32/elf/dl-error-skeleton.c:184 from /usr/lib/libc.so.6
 0x00007f30d9fc62a4 in <unknown> from /lib64/ld-linux-x86-64.so.2
 0x00007f30d9d98360 in _dl_catch_exception at /builddir/glibc-2.32/elf/dl-error-skeleton.c:209 from /usr/lib/libc.so.6
 0x00007f30d9fc5b2a in <unknown> from /lib64/ld-linux-x86-64.so.2
 0x00007f30d9f7c258 in <unknown> from /usr/lib/libdl.so.2
 0x00007f30d9d98360 in _dl_catch_exception at /builddir/glibc-2.32/elf/dl-error-skeleton.c:209 from /usr/lib/libc.so.6
 0x00007f30d9d9841f in _dl_catch_error at /builddir/glibc-2.32/elf/dl-error-skeleton.c:228 from /usr/lib/libc.so.6
 0x00007f30d9f7ca65 in <unknown> from /usr/lib/libdl.so.2
 0x00007f30d9f7c2e4 in dlopen at /builddir/glibc-2.32/dlfcn/dlopen.c:87 from /usr/lib/libdl.so.2
 0x00005609676557a7 in _PyImport_FindSharedFuncptr + 0x87 from python
 0x000056096765a1e3 in _PyImport_LoadDynamicModuleWithSpec + 0x163 from python
 0x000056096765bf64 in <unknown> from python
 0x000056096751a88b in <unknown> from python
 0x000056096752581e in PyVectorcall_Call + 0x6e from python
 0x00005609675cb2da in _PyEval_EvalFrameDefault + 0x5c4a from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad818 in _PyFunction_Vectorcall + 0x378 from python
 0x00005609675ca3c3 in _PyEval_EvalFrameDefault + 0x4d33 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c60f3 in _PyEval_EvalFrameDefault + 0xa63 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad818 in _PyFunction_Vectorcall + 0x378 from python
 0x00005609675ca3c3 in _PyEval_EvalFrameDefault + 0x4d33 from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad818 in _PyFunction_Vectorcall + 0x378 from python
 0x00005609675ca3c3 in _PyEval_EvalFrameDefault + 0x4d33 from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad499 in PyEval_EvalCodeEx + 0x39 from python
 0x0000560967648ecb in PyEval_EvalCode + 0x1b from python
 0x0000560967669c4e in <unknown> from python
 0x000056096751a88b in <unknown> from python
 0x000056096752581e in PyVectorcall_Call + 0x6e from python
 0x00005609675cb2da in _PyEval_EvalFrameDefault + 0x5c4a from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad818 in _PyFunction_Vectorcall + 0x378 from python
 0x00005609675ca3c3 in _PyEval_EvalFrameDefault + 0x4d33 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c60f3 in _PyEval_EvalFrameDefault + 0xa63 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x000056096752f310 in <unknown> from python
 0x00005609675b1a8f in _PyObject_CallMethodIdObjArgs + 0x25f from python
 0x000056096750576e in PyImport_ImportModuleLevelObject + 0x84e from python
 0x00005609675c8d37 in _PyEval_EvalFrameDefault + 0x36a7 from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad499 in PyEval_EvalCodeEx + 0x39 from python
 0x0000560967648ecb in PyEval_EvalCode + 0x1b from python
 0x0000560967669c4e in <unknown> from python
 0x000056096751a88b in <unknown> from python
 0x000056096752581e in PyVectorcall_Call + 0x6e from python
 0x00005609675cb2da in _PyEval_EvalFrameDefault + 0x5c4a from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad818 in _PyFunction_Vectorcall + 0x378 from python
 0x00005609675ca3c3 in _PyEval_EvalFrameDefault + 0x4d33 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c60f3 in _PyEval_EvalFrameDefault + 0xa63 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x00005609675c5fd7 in _PyEval_EvalFrameDefault + 0x947 from python
 0x00005609675ad646 in _PyFunction_Vectorcall + 0x1a6 from python
 0x000056096752f310 in <unknown> from python
 0x00005609675b1a8f in _PyObject_CallMethodIdObjArgs + 0x25f from python
 0x000056096750576e in PyImport_ImportModuleLevelObject + 0x84e from python
 0x00005609675c8d37 in _PyEval_EvalFrameDefault + 0x36a7 from python
 0x00005609675ac433 in _PyEval_EvalCodeWithName + 0x2c3 from python
 0x00005609675ad499 in PyEval_EvalCodeEx + 0x39 from python
 0x0000560967648ecb in PyEval_EvalCode + 0x1b from python
 0x0000560967648f63 in <unknown> from python
 0x0000560967665033 in <unknown> from python
 0x00005609674ea72b in <unknown> from python
 0x00005609674ea8d6 in PyRun_InteractiveLoopFlags + 0xeb from python
 0x00005609674ea973 in <unknown> from python
 0x00005609674eab2a in <unknown> from python
 0x000056096766a939 in Py_BytesMain + 0x39 from python
 0x00007f30d9c87e0a in __libc_start_main at /builddir/glibc-2.32/csu/../csu/libc-start.c:314 from /usr/lib/libc.so.6
 0x00005609675def39 in <unknown> from python
Illegal instruction

ends apparently unsuccessfully.

I have no hint about what I can do. This is the 1st time I use miniconda, ROOT is the only package I tried to install. The OS is current void linux (that’s why I opted for conda, since there are no packages for this system) running on old hardware:

 (our_root) [conda@void ~]$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 47
model name      : AMD Athlon(tm) 64 Processor 3800+
stepping        : 2
cpu MHz         : 1000.000
cache size      : 512 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl cpuid pni lahf_lm 3dnowprefetch vmmcall
bugs            : fxsave_leak sysret_ss_attrs null_seg swapgs_fence spectre_v1 spectre_v2
bogomips        : 4822.05
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

NB. no avx et friends.

Can anybody help? I didn’t find explicit relevant requirements that perhaps need to be met but our system fulfil.

Thank you
Rudolf Sykora

Hello,

What happens if you run root (the ROOT prompt) and type some C++ there, does it work? Is it a PyROOT only issue?

My guess is that the conda ROOT was compiled with AVX support and this causes the illegal instruction error on your machine. Mentioning @chrisburr in case he wants to comment.

The issue will be with SSE 4.2 not AVX. It’s caused a few issues for people so I should roll back that change and stick to plain x86_64. I’ll do this in the next couple of days and follow up here.

1 Like

@etejedor

Hello,

when I run

root

from a command prompt, seemingly nothing happens. I get the shell prompt back, ie., not ROOT prompt. I do not see any error message, either.

Best regards
Ruda

Hello, please, is there anything new regarding this issue? (Or should we rather try and recompile ourselves?) Thanks for the information.

Ok, I am giving up with this. Just do not promise next time that you would do something “within couple of days”; I am fine with saying one has no time or whatever. But we’ve been waiting 14 days just to see, this will probably not work (and noone reacts…)

@rudolfII could you please add issue here: Issues · conda-forge/root-feedstock · GitHub
(it is definitely easiest way to track issues through GH issues)

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

“Illegal instruction” likely means that conda built for a different architecture than what your CPU can consume. Maybe your CPU cannot handle SSE 4.1 but the Conda build has that instruction set enabled. You could - if that’s an option for you - resort to using pre-built binaries, e.g from the latest release. See Installing ROOT - ROOT