neovide: Error building on Fedora Linux: /usr/bin/ld: cannot find -lsndio

I’m attempting to build neovide on Fedora 31. I’ve installed all the devel packages I can think of, but I get the following error when building:

error: linking with `cc` failed: exit code: 1
<Trimmed, full output below>
  = note: /usr/bin/ld: cannot find -lsndio
          collect2: error: ld returned 1 exit status

Fedora uses PulseAudio for sound, so the package manager doesn’t have sndio (or libsndio). Do you know if there’s any way to build neovide without this dependency? I think it’s coming in through sdl2-sys. I’d be ok with no sound if that were the alternative.

Full build output:

$ cargo --version
cargo 1.41.0 (626f0f40e 2019-12-03)
$ cargo build --release
   Compiling libc v0.2.67
   Compiling cfg-if v0.1.10
   Compiling autocfg v1.0.0
   Compiling cc v1.0.50
   Compiling pkg-config v0.3.17
   Compiling lazy_static v1.4.0
   Compiling proc-macro2 v1.0.9
   Compiling unicode-xid v0.2.0
   Compiling memchr v2.3.3
   Compiling syn v1.0.16
   Compiling log v0.4.8
   Compiling byteorder v1.3.4
   Compiling adler32 v1.0.4
   Compiling regex-syntax v0.6.14
   Compiling crc32fast v1.2.0
   Compiling serde v1.0.104
   Compiling bitflags v1.2.1
   Compiling semver-parser v0.7.0
   Compiling glob v0.3.0
   Compiling version_check v0.1.5
   Compiling encoding_rs v0.8.22
   Compiling maybe-uninit v2.0.0
   Compiling scopeguard v1.1.0
   Compiling quick-error v1.2.3
   Compiling ryu v1.0.2
   Compiling unicode-width v0.1.7
   Compiling ansi_term v0.11.0
   Compiling termcolor v1.1.0
   Compiling curl v0.4.25
   Compiling proc-macro2 v0.4.30
   Compiling bindgen v0.52.0
   Compiling getrandom v0.1.14
   Compiling slab v0.4.2
   Compiling strsim v0.8.0
   Compiling vec_map v0.8.1
   Compiling proc-macro-nested v0.1.3
   Compiling peeking_take_while v0.1.2
   Compiling rustc-hash v1.1.0
   Compiling itoa v0.4.5
   Compiling openssl-probe v0.1.2
   Compiling shlex v0.1.1
   Compiling arrayvec v0.4.12
   Compiling unicode-xid v0.1.0
   Compiling unicode-segmentation v1.6.0
   Compiling same-file v1.0.6
   Compiling lazycell v1.2.1
   Compiling syn v0.15.44
   Compiling futures v0.1.29
   Compiling futures-sink v0.3.4
   Compiling futures-core v0.3.4
   Compiling nodrop v0.1.14
   Compiling rayon-core v1.7.0
   Compiling num-derive v0.2.5
   Compiling futures-io v0.3.4
   Compiling futures-task v0.3.4
   Compiling pin-utils v0.1.0-alpha.4
   Compiling autocfg v0.1.7
   Compiling smallvec v1.2.0
   Compiling either v1.5.3
   Compiling sdl2 v0.33.0 (https://github.com/Rust-SDL2/rust-sdl2#4e81db58)
   Compiling lzw v0.10.0
   Compiling arc-swap v0.4.4
   Compiling float-ord v0.2.0
   Compiling fnv v1.0.6
   Compiling bytes v0.5.4
   Compiling color_quant v1.0.1
   Compiling pin-project-lite v0.1.4
   Compiling anyhow v1.0.26
   Compiling scoped_threadpool v0.1.9
   Compiling cmake v0.1.42
   Compiling num-traits v0.2.11
   Compiling crossbeam-utils v0.7.2
   Compiling num-integer v0.1.42
   Compiling crossbeam-epoch v0.8.2
   Compiling num-rational v0.2.3
   Compiling num-iter v0.1.40
   Compiling servo-fontconfig-sys v4.0.9
   Compiling thread_local v1.0.1
   Compiling libz-sys v1.0.25
   Compiling openssl-sys v0.9.54
   Compiling libloading v0.5.2
   Compiling curl-sys v0.4.26
   Compiling harfbuzz-sys v0.3.4
   Compiling miniz_oxide v0.3.6
   Compiling inflate v0.4.5
   Compiling semver v0.9.0
   Compiling clang-sys v0.28.1
   Compiling nom v4.2.3
   Compiling lock_api v0.3.3
   Compiling humantime v1.3.0
   Compiling textwrap v0.11.0
   Compiling heck v0.3.1
   Compiling walkdir v2.3.1
   Compiling futures-channel v0.3.4
   Compiling unicode-normalization v0.1.12
   Compiling hashbrown v0.6.3
   Compiling gif v0.10.3
   Compiling servo-freetype-sys v4.0.5
   Compiling expat-sys v2.1.6
   Compiling rustc_version v0.2.3
   Compiling rust-embed-utils v5.0.0
   Compiling filetime v0.2.8
   Compiling xattr v0.2.2
   Compiling iovec v0.1.4
   Compiling atty v0.2.14
   Compiling num_cpus v1.12.0
   Compiling socket2 v0.3.11
   Compiling which v3.1.0
   Compiling net2 v0.2.33
   Compiling dirs-sys v0.3.4
   Compiling signal-hook-registry v1.2.0
   Compiling shared_library v0.1.9
   Compiling time v0.1.42
   Compiling raw-window-handle v0.3.3
   Compiling parking_lot_core v0.7.0
   Compiling aho-corasick v0.7.8
   Compiling quote v1.0.2
   Compiling deflate v0.7.20
   Compiling flate2 v1.0.13
   Compiling memoffset v0.5.3
   Compiling toml v0.5.6
   Compiling serde_json v1.0.48
   Compiling quote v0.6.13
   Compiling tar v0.4.26
   Compiling clap v2.33.0
   Compiling bytes v0.4.12
   Compiling dirs v2.0.2
   Compiling mio v0.6.21
   Compiling ash v0.29.0
   Compiling parking_lot v0.10.0
   Compiling crossbeam-queue v0.2.1
   Compiling euclid v0.20.7
   Compiling rmp v0.8.9
   Compiling regex v1.3.4
   Compiling png v0.15.3
   Compiling cexpr v0.3.6
   Compiling winres v0.1.11
   Compiling tokio-io v0.1.13
   Compiling mio-uds v0.6.7
   Compiling freetype v0.4.1
   Compiling chrono v0.4.10
   Compiling rmpv v0.4.4
   Compiling lyon_geom v0.14.1
   Compiling unidiff v0.3.2
   Compiling env_logger v0.7.1
   Compiling proc-macro-hack v0.5.11
   Compiling tokio-macros v0.2.4
   Compiling pin-project-internal v0.4.8
   Compiling rust-embed-impl v5.5.0
   Compiling async-trait v0.1.24
   Compiling derive-new v0.5.8
   Compiling neovide v0.4.0 (/home/chris/External/neovide)
   Compiling flexi_logger v0.14.8
   Compiling lyon_path v0.14.0
   Compiling servo-fontconfig v0.4.0
   Compiling sdl2-sys v0.33.0 (https://github.com/Rust-SDL2/rust-sdl2#4e81db58)
   Compiling const-random-macro v0.1.8
   Compiling futures-macro v0.3.4
   Compiling tokio v0.2.11
   Compiling rust-embed v5.5.0
   Compiling pin-project v0.4.8
   Compiling harfbuzz v0.3.1
   Compiling font-kit v0.5.0
   Compiling tiff v0.3.1
   Compiling const-random v0.1.8
   Compiling futures-util v0.3.4
   Compiling skia-bindings v0.26.1
   Compiling crossbeam-deque v0.7.3
   Compiling skribo v0.0.1 (https://github.com/linebender/skribo#f306037c)
   Compiling ahash v0.2.18
   Compiling futures-executor v0.3.4
   Compiling futures v0.3.4
   Compiling rayon v1.3.0
   Compiling lru v0.4.3
   Compiling nvim-rs v0.1.1-alpha.0 (https://github.com/kethku/nvim-rs#3abe58a5)
   Compiling skia-safe v0.26.1
   Compiling jpeg-decoder v0.1.18
   Compiling image v0.22.5
   Compiling skulpin v0.5.2 (https://github.com/Kethku/skulpin?branch=sdl2#9c62459e)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.0.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.1.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.10.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.11.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.12.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.13.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.14.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.15.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.2.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.3.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.4.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.5.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.6.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.7.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.8.rcgu.o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.neovide.9z5huwwm-cgu.9.rcgu.o" "-o" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e" "/home/chris/External/neovide/target/release/deps/neovide-21a263f9edd8447e.5bm8ivk88ka418oi.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/home/chris/External/neovide/target/release/deps" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/usr/lib64" "-L" "/home/chris/External/neovide/target/release/build/sdl2-sys-ba04f8f266837a87/out/lib" "-L" "/home/chris/External/neovide/target/release/build/skia-bindings-060a19e7394c557f/out/skia" "-L" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/chris/External/neovide/target/release/deps/libskribo-81e7007640aef58f.rlib" "/home/chris/External/neovide/target/release/deps/libunicode_normalization-de9eb3df3f893c2c.rlib" "/home/chris/External/neovide/target/release/deps/libharfbuzz-1cd7a7485d8cb712.rlib" "/home/chris/External/neovide/target/release/deps/libharfbuzz_sys-88dc8bc8a4864033.rlib" "/home/chris/External/neovide/target/release/deps/libfont_kit-33849c2162814f16.rlib" "/home/chris/External/neovide/target/release/deps/libfloat_ord-75ac75aef76c3ec4.rlib" "/home/chris/External/neovide/target/release/deps/libdirs-709502fe69201281.rlib" "/home/chris/External/neovide/target/release/deps/libdirs_sys-6a055fbbdf566308.rlib" "/home/chris/External/neovide/target/release/deps/libwalkdir-682e4bf84e0e861e.rlib" "/home/chris/External/neovide/target/release/deps/libsame_file-35080408719eb26a.rlib" "/home/chris/External/neovide/target/release/deps/libfontconfig-88dd0342458db916.rlib" "/home/chris/External/neovide/target/release/deps/libfontconfig_sys-f84276ddfe7129e6.rlib" "/home/chris/External/neovide/target/release/deps/libexpat_sys-8bce9da35c757ac0.rlib" "/home/chris/External/neovide/target/release/deps/libfreetype-875dbfad84799b5a.rlib" "/home/chris/External/neovide/target/release/deps/libfreetype_sys-16de1c526aa2516e.rlib" "/home/chris/External/neovide/target/release/deps/liblyon_path-fd854db5af8c9b11.rlib" "/home/chris/External/neovide/target/release/deps/liblyon_geom-083450daceeb0dc2.rlib" "/home/chris/External/neovide/target/release/deps/libarrayvec-60fcd51dbf46299c.rlib" "/home/chris/External/neovide/target/release/deps/libnodrop-c18d10a9aa69a770.rlib" "/home/chris/External/neovide/target/release/deps/libeuclid-b1391a47ad757023.rlib" "/home/chris/External/neovide/target/release/deps/liblru-83daaeb32e59e773.rlib" "/home/chris/External/neovide/target/release/deps/libhashbrown-f1a7dafd3eb052e9.rlib" "/home/chris/External/neovide/target/release/deps/libahash-be1adae0e3d80b9d.rlib" "/home/chris/External/neovide/target/release/deps/libconst_random-0da7025b20f9d5aa.rlib" "/home/chris/External/neovide/target/release/deps/libunicode_segmentation-8ed418f0e6c58df9.rlib" "/home/chris/External/neovide/target/release/deps/libskulpin-71c8cc2f09a6dab1.rlib" "/home/chris/External/neovide/target/release/deps/libskia_safe-802348bf307aaf9e.rlib" "/home/chris/External/neovide/target/release/deps/libskia_bindings-3b78a6dcf22b8ea5.rlib" "/home/chris/External/neovide/target/release/deps/libsdl2-17488c731203d430.rlib" "/home/chris/External/neovide/target/release/deps/libsdl2_sys-3e16463ea9f2ae96.rlib" "/home/chris/External/neovide/target/release/deps/libbitflags-71a495e0eea78baf.rlib" "/home/chris/External/neovide/target/release/deps/libash-67396e8a8feb0032.rlib" "/home/chris/External/neovide/target/release/deps/libshared_library-7855729a8b4b8ea9.rlib" "/home/chris/External/neovide/target/release/deps/libparking_lot-52568faa2ac36cfe.rlib" "/home/chris/External/neovide/target/release/deps/libparking_lot_core-aff4fa4323551b39.rlib" "/home/chris/External/neovide/target/release/deps/libsmallvec-47d435371451f4a1.rlib" "/home/chris/External/neovide/target/release/deps/liblock_api-6d482af423cad007.rlib" "/home/chris/External/neovide/target/release/deps/libscopeguard-e3bf792a7e923a6a.rlib" "/home/chris/External/neovide/target/release/deps/libflexi_logger-ed0af4ed5d4ca87a.rlib" "/home/chris/External/neovide/target/release/deps/libglob-c48317d530c48d80.rlib" "/home/chris/External/neovide/target/release/deps/libregex-6edb25b70dc14fa6.rlib" "/home/chris/External/neovide/target/release/deps/libthread_local-0bac6a75269f867b.rlib" "/home/chris/External/neovide/target/release/deps/libregex_syntax-997a2748946d53c4.rlib" "/home/chris/External/neovide/target/release/deps/libaho_corasick-f1f8bad71c648d60.rlib" "/home/chris/External/neovide/target/release/deps/libchrono-3c06e2b2073961ae.rlib" "/home/chris/External/neovide/target/release/deps/libnum_integer-2a4a8968e70f3344.rlib" "/home/chris/External/neovide/target/release/deps/libtime-8b5e103eca12c110.rlib" "/home/chris/External/neovide/target/release/deps/libnvim_rs-1e2f9f0313d7aa4b.rlib" "/home/chris/External/neovide/target/release/deps/libtokio-d9de94fb11b7d477.rlib" "/home/chris/External/neovide/target/release/deps/libsignal_hook_registry-7e7ec1d35a1d921b.rlib" "/home/chris/External/neovide/target/release/deps/libarc_swap-e813dca677212d67.rlib" "/home/chris/External/neovide/target/release/deps/libnum_cpus-9e5bbeec5cb6d396.rlib" "/home/chris/External/neovide/target/release/deps/libfnv-e2e4c0869e496bf7.rlib" "/home/chris/External/neovide/target/release/deps/libmio_uds-08c5d887fbe6a4b0.rlib" "/home/chris/External/neovide/target/release/deps/libmio-607e99568f1a389d.rlib" "/home/chris/External/neovide/target/release/deps/libnet2-ddbee00fb44f1373.rlib" "/home/chris/External/neovide/target/release/deps/libbytes-804e82ebb8276de9.rlib" "/home/chris/External/neovide/target/release/deps/libpin_project_lite-b3c4724ab1153312.rlib" "/home/chris/External/neovide/target/release/deps/libpin_project-255c6c499be91a9c.rlib" "/home/chris/External/neovide/target/release/deps/libfutures-82abb103a1db4762.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_executor-5298c6a9ded5664f.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_util-96aafe7d96b9bef1.rlib" "/home/chris/External/neovide/target/release/deps/libmemchr-2ccb7211af04d2f3.rlib" "/home/chris/External/neovide/target/release/deps/libproc_macro_nested-d25c42033288de95.rlib" "/home/chris/External/neovide/target/release/deps/libtokio_io-b047f48d897719ca.rlib" "/home/chris/External/neovide/target/release/deps/libbytes-6e5da74c9a988de7.rlib" "/home/chris/External/neovide/target/release/deps/libiovec-dd8574706aaf1ffd.rlib" "/home/chris/External/neovide/target/release/deps/liblibc-21390d94c01b5778.rlib" "/home/chris/External/neovide/target/release/deps/libfutures-fe757fdce74c1480.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_io-eaaeec20e1a57a1f.rlib" "/home/chris/External/neovide/target/release/deps/libslab-380677bbf421fce9.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_channel-7367024f360022f7.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_sink-7b7f108c84153771.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_task-fc720668dd23bdb2.rlib" "/home/chris/External/neovide/target/release/deps/libpin_utils-a447f0831faa7192.rlib" "/home/chris/External/neovide/target/release/deps/libfutures_core-61be92d8a15c3307.rlib" "/home/chris/External/neovide/target/release/deps/liblog-854ae8577cf6cbee.rlib" "/home/chris/External/neovide/target/release/deps/libcfg_if-0fd58a5d472cabdb.rlib" "/home/chris/External/neovide/target/release/deps/librmpv-38e93cd4b6ff9946.rlib" "/home/chris/External/neovide/target/release/deps/librmp-f2e977291e6da28e.rlib" "/home/chris/External/neovide/target/release/deps/libbyteorder-50fc91bc331ec4a3.rlib" "/home/chris/External/neovide/target/release/deps/libnum_traits-9e7553b94ece530f.rlib" "/home/chris/External/neovide/target/release/deps/liblazy_static-3fb4b1b4db43f8d4.rlib" "/home/chris/External/neovide/target/release/deps/librust_embed-17ebec6816749a32.rlib" "-Wl,--start-group" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-a2a766dac798f7cf.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a85f7d74095723ea.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-4ed27bd07d52ec56.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-4c323f23cb5b2482.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-2e6de4a7e177acee.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-80571e4a1921bf51.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-1772b65d0f093257.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-37ebc98487d077f2.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-fa7cce2e70cf53f1.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-a60fcf932d3053cd.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-da705bf7dd482e5a.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-8a2e90edf20d7f0b.rlib" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-4888dfadf2ff3780.rlib" "-Wl,--end-group" "/home/chris/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-a0ee5f37b860b20a.rlib" "-Wl,-Bdynamic" "-lharfbuzz" "-lfontconfig" "-lfreetype" "-lexpat" "-lfreetype" "-lstdc++" "-lfontconfig" "-lfreetype" "-lsndio" "-lutil" "-ldl" "-lutil" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-lutil"
  = note: /usr/bin/ld: cannot find -lsndio
          collect2: error: ld returned 1 exit status

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 20 (16 by maintainers)

Most upvoted comments

Awesome! I will merge this soon and add a comment about the issue and possible fix in the readme.

Ok I pushed to “optional-sdl-embed”. If you build with the --no-default-features flag it should prevent embedding of the sdl2 binaries. Give it a try? Its very possible I didn’t do it right in which case some advice would be appreciated.

For the record I see the same as @lorenzleutgeb.