kennylevinsen/wldash

freebsd compilation failure during linking

Opened this issue · 4 comments

every source file builds but then it fails during the last ompilation during linking heres the output of failure any suggestions:

Compiling rust-ini v0.14.0
Compiling wldash v0.2.0 (/usr/home/doeboy1111/git/wayland/wldash)
warning: unused import: ffi::CStr
--> src/doublemempool.rs:3:5
|
3 | ffi::CStr,
| ^^^^^^^^^
|
= note: #[warn(unused_imports)] on by default

warning: use of deprecated function fuzzy_matcher::skim::fuzzy_indices: Please use SkimMatcherV2 instead
--> src/widgets/launcher.rs:18:27
|
18 | use fuzzy_matcher::skim::{fuzzy_indices, fuzzy_match};
| ^^^^^^^^^^^^^
|
= note: #[warn(deprecated)] on by default

warning: use of deprecated function fuzzy_matcher::skim::fuzzy_match: Please use SkimMatcherV2 instead
--> src/widgets/launcher.rs:18:42
|
18 | use fuzzy_matcher::skim::{fuzzy_indices, fuzzy_match};
| ^^^^^^^^^^^

warning: use of deprecated function fuzzy_matcher::skim::fuzzy_indices: Please use SkimMatcherV2 instead
--> src/widgets/launcher.rs:100:21
|
100 | fuzzy_indices(&m.name.to_lowercase(), &self.input.to_lowercase())
| ^^^^^^^^^^^^^

warning: use of deprecated function fuzzy_matcher::skim::fuzzy_match: Please use SkimMatcherV2 instead
--> src/widgets/launcher.rs:226:27
|
226 | if let Some(ma) = fuzzy_match(val, input) {
| ^^^^^^^^^^^

warning: use of deprecated associated function std::sync::atomic::AtomicBool::compare_and_swap: Use compare_exchange or compare_exchange_weak instead
--> src/app.rs:81:36
|
81 | if !this_is_stupid.compare_and_swap(false, true, Ordering::SeqCst) {
| ^^^^^^^^^^^^^^^^

warning: panic message is not a string literal
--> src/config.rs:348:24
|
348 | None => panic!(format!("Font {} is missing from the config", name)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(non_fmt_panic)] on by default
= note: this is no longer accepted in Rust 2021
= note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

warning: panic message is not a string literal
--> src/doublemempool.rs:212:40
|
212 | Err(err) => panic!(err),
| ^^^
|
= note: this is no longer accepted in Rust 2021
help: add a "{}" format string to Display the message
|
212 | Err(err) => panic!("{}", err),
| ^^^^^
help: or use std::panic::panic_any instead
|
212 | Err(err) => std::panic::panic_any(err),
| ^^^^^^^^^^^^^^^^^^^^^^

warning: panic message is not a string literal
--> src/doublemempool.rs:214:36
|
214 | Err(err) => panic!(err),
| ^^^
|
= note: this is no longer accepted in Rust 2021
help: add a "{}" format string to Display the message
|
214 | Err(err) => panic!("{}", err),
| ^^^^^
help: or use std::panic::panic_any instead
|
214 | Err(err) => std::panic::panic_any(err),
| ^^^^^^^^^^^^^^^^^^^^^^

warning: panic message is not a string literal
--> src/widgets/audio/alsa_sound.rs:102:30
|
102 | Err(e) => panic!(e),
| ^
|
= note: this is no longer accepted in Rust 2021
help: add a "{}" format string to Display the message
|
102 | Err(e) => panic!("{}", e),
| ^^^^^
help: or use std::panic::panic_any instead
|
102 | Err(e) => std::panic::panic_any(e),
| ^^^^^^^^^^^^^^^^^^^^^^

warning: panic message is not a string literal
--> src/widgets/audio/alsa_sound.rs:110:20
|
110 | panic!(e)
| ^
|
= note: this is no longer accepted in Rust 2021
help: add a "{}" format string to Display the message
|
110 | panic!("{}", e)
| ^^^^^
help: or use std::panic::panic_any instead
|
110 | std::panic::panic_any(e)
| ^^^^^^^^^^^^^^^^^^^^^^

warning: panic message is not a string literal
--> src/widgets/audio/alsa_sound.rs:115:20
|
115 | panic!(e)
| ^
|
= note: this is no longer accepted in Rust 2021
help: add a "{}" format string to Display the message
|
115 | panic!("{}", e)
| ^^^^^
help: or use std::panic::panic_any instead
|
115 | std::panic::panic_any(e)
| ^^^^^^^^^^^^^^^^^^^^^^

error: linking with cc failed: exit code: 1
|
= note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/usr/home/doeboy1111/.rustup/toolchains/stable-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib" "/usr/home/doeboy1111/git/wayland/wldash/target/release/deps/wldash-bc6ab10bb38f5e91.wldash.5lyfhw0w-cgu.15.rcgu.o" "-o" "/usr/home/doeboy1111/git/wayland/wldash/target/release/deps/wldash-bc6ab10bb38f5e91" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/usr/home/doeboy1111/git/wayland/wldash/target/release/deps" "-L" "/usr/local/lib" "-L" "/usr/local/lib" "-L" "/usr/local/lib" "-L" "/usr/local/lib" "-L" "/usr/home/doeboy1111/.rustup/toolchains/stable-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib" "-Wl,--start-group" "-Wl,--end-group" "-Wl,-Bstatic" "/usr/home/doeboy1111/.rustup/toolchains/stable-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/lib/libcompiler_builtins-84b862f5ffd396b9.rlib" "-Wl,-Bdynamic" "-ldbus-1" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpulse" "-lpthread" "-lasound" "-lfontconfig" "-lfreetype" "-lrt" "-lutil" "-lutil" "-lc" "-lexecinfo" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lrt" "-lutil" "-lutil"
= note: ld: error: undefined symbol: timerfd_create
>>> referenced by wldash.5lyfhw0w-cgu.15
>>> /usr/home/doeboy1111/git/wayland/wldash/target/release/deps/wldash-bc6ab10bb38f5e91.wldash.5lyfhw0w-cgu.15.rcgu.o:(wldash::main::hfb9082918b5d1ead)

      ld: error: undefined symbol: timerfd_settime
      >>> referenced by wldash.5lyfhw0w-cgu.15
      >>>               /usr/home/doeboy1111/git/wayland/wldash/target/release/deps/wldash-bc6ab10bb38f5e91.wldash.5lyfhw0w-cgu.15.rcgu.o:(wldash::main::hfb9082918b5d1ead)
      cc: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error; 12 warnings emitted

error: could not compile wldash

timerfd_settime requires -lepoll-shim on BSDs. Probably, timerfd crate needs to be ported or replaced with something less Linux-specific.

what would be your recommendednsuggestioon for me to do next?

The easiest and most portable thing would likely be to replace timerfd with timer signals like wlsunset uses (in C).

and which files would I be doing that in sorry i havent really looked too deeply into you source yet I had to do a fresh install of my system and im slowly getitng it back to where it was thank god for using seperate zpools for my config files home dir and my poudriere repo or id have been worse off all I really needed to do is reinstall all the programs i compiled directly from source which isnt too bad but that along with getting my new bedframe and matress around te same timme left me with not enough hours in the day that i need to accomplish everything