openethereum / parity-ethereum

The fast, light, and robust client for Ethereum-like networks.
Other
6.83k stars 1.69k forks source link

Illegal instruction (core dumped) on Ubuntu 20.4 #11799

Closed winf3 closed 4 years ago

winf3 commented 4 years ago

I built openethereum on Linux according to readme section 3.2 and 3.3. It compiled without error. When I executed ./target/release/openethereum I immediately got the message "illegal instruction (core dumped)"

How do I get a running openethereum on Ubuntu 20.4 ? (I also got the same message when I previously ran the precompiled linux version 3.0.1)

winf3 commented 4 years ago

Found solution in #11667 :+1:

Looks like 11395 might have a clue...

11395

I'm afraid the new versions require the aes-ni CPU feature. You could try to build the binary from source and remove this and perhaps enable target-cpu=native.

"this" links to https://github.com/openethereum/openethereum/blob/be5db14160e2aa04a64f1a8fe027ad58c2f42c44/.cargo/config

But no details on where/how to "enable target-cpu=native". @ldeffenb Author ldeffenb commented on Apr 30

That worked. The key for me was to edit .cargo/config and remove the +aes from the rustflags setting in the [target.x86_64-unknown-linux-gnu] section.

Before: rustflags = ["-Ctarget-feature=+aes,+sse2,+ssse3"] After: rustflags = ["-Ctarget-feature=+sse2,+ssse3"]

I change the config file as above, compiled according to readme.md and voila - it runs now ! Thanks for leaving your comments in the #11667 , ldeffenb !

ldeffenb commented 4 years ago

Glad it helped!