taiki-e / setup-cross-toolchain-action

GitHub Action for setup toolchains for cross compilation and cross testing for Rust.
Apache License 2.0
33 stars 3 forks source link

I can't build actix-http for x86_64-unknown-freebsd #11

Closed Asthowen closed 1 year ago

Asthowen commented 1 year ago

Hello! First of all, thank you for your project, which helped me a lot!

I have an issue when I try to compile a project with actix-http for x86_64-unknown-freebsd (with ubuntu-22.04), I specify that it works correctly if I build the project directly on a pc with FreeBSD.

I do:

- name: Install cross-compilation tools
  uses: taiki-e/setup-cross-toolchain-action@v1
  with:
     target: ${{ matrix.target }}

And it crashes at the actix-http compilation level:

   Compiling actix-http v3.3.1
   Compiling actix-web v4.3.1
   Compiling actix-ws v0.2.5
   Compiling actix-files v0.6.2
   Compiling actix-cors v0.6.4
error: linking with `x86_64-unknown-freebsd-clang` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" VSLANG="1033" "x86_64-unknown-freebsd-clang" "-m64" "/tmp/rustcz8L3fZ/symbols.o" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/release/deps" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/zstd-sys-fe166eaac988327c/out" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/ring-9bd75f043a0c05b5/out" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/openssl-sys-6756b9cfe467c5de/out/openssl-build/install/lib" "-L" "/usr/lib/x86_64-linux-gnu" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/libwebp-sys-5863ce85794a3aca/out" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib" "-Wl,-Bstatic" "/tmp/rustcz8L3fZ/liblibwebp_sys-b0d9bff59121cda7.rlib" "/tmp/rustcz8L3fZ/libring-93dbb815ed48143d.rlib" "/tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib" "/tmp/rustcz8L3fZ/libzstd_sys-c701dde115ef9683.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib/libcompiler_builtins-3ef32c1ca027cc3f.rlib" "-Wl,-Bdynamic" "-lc" "-lmysqlclient" "-lrt" "-lutil" "-lexecinfo" "-lkvm" "-lmemstat" "-lkvm" "-lutil" "-lprocstat" "-lrt" "-ldevstat" "-lexecinfo" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lrt" "-lutil" "-lexecinfo" "-lkvm" "-lmemstat" "-lkvm" "-lutil" "-lprocstat" "-lrt" "-ldevstat" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib" "-o" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-all" "-nodefaultlibs"
  = note: ld.lld: error: undefined symbol: _init_tls
          >>> referenced by crt1.c:66 (/usr/src/lib/csu/amd64/crt1.c:66)
          >>>               /usr/local/x86_64-unknown-freebsd/usr/lib/Scrt1.o:(_start)

          ld.lld: error: undefined symbol: _umtx_op
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$actix_http..h2..dispatcher..Dispatcher$LT$T$C$S$C$B$C$X$C$U$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h88dc82d71be7de13)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$actix_http..h2..dispatcher..Dispatcher$LT$T$C$S$C$B$C$X$C$U$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h88dc82d71be7de13)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(crossbeam_channel::waker::Waker::disconnect::h267b8c4b8a5ac88d)
          >>> referenced 311 more times

          ld.lld: error: undefined symbol: __error
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website_backend::downloader::downloader::Downloader::start_download_queue::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h11401126690b7d93)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website_backend::tasks::tasks::admin_stats_update::admin_stats_update::_$u7b$$u7b$closure$u7d$$u7d$::h756eeab9f2ebabc3)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(h2::proto::connection::Connection$LT$T$C$P$C$B$GT$::poll::hf896c304cc030263)
          >>> referenced 246 more times

          ld.lld: error: undefined symbol: sysctl
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(std::collections::hash::map::RandomState::new::KEYS::__getit::he394d6f74668a471)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website::main::hb96c016f8a23c35d)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website::main::hb96c016f8a23c35d)
          >>> referenced 22 more times

          ld.lld: error: undefined symbol: kevent@FBSD_1.0
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(core::ptr::drop_in_place$LT$tokio..process..imp..ChildStdio$GT$::h656f6f04495b1db9)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(core::ptr::drop_in_place$LT$tokio..net..tcp..stream..TcpStream$GT$::hb44b7f2ae2556565)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(actix_server::waker_queue::WakerQueue::wake::hcbd023c64abf126a)
          >>> referenced 9 more times

          ld.lld: error: undefined symbol: lstat@FBSD_1.0
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(tokio::runtime::task::raw::poll::h96137bc01b9a8daa)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(chrono::offset::local::inner::Source::new::hdd40c9fd7ca65bdb)
          >>> referenced by fs.rs:1558 (library/std/src/sys/unix/fs.rs:1558)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(std::sys::unix::fs::DirEntry::metadata::h69c22be8eb7c07ed)
          >>> referenced 1 more times

          ld.lld: error: undefined symbol: pthread_attr_get_np
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(main)
          >>> referenced by thread.rs:863 (library/std/src/sys/unix/thread.rs:863)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(std::sys::unix::thread::guard::current::h234ef839a632e8fa)

          ld.lld: error: undefined symbol: fstat@FBSD_1.0
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$actix_files..service..FilesService$u20$as$u20$actix_service..Service$LT$actix_web..service..ServiceRequest$GT$$GT$::call::_$u7b$$u7b$closure$u7d$$u7d$::h7557d064fe8c2e68)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$actix_files..service..FilesService$u20$as$u20$actix_service..Service$LT$actix_web..service..ServiceRequest$GT$$GT$::call::_$u7b$$u7b$closure$u7d$$u7d$::h7557d064fe8c2e68)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website_backend::config_manager::ConfigManager::write_config_to_file::h97648733aa1896fc)
          >>> referenced 6 more times

          ld.lld: error: undefined symbol: kqueue
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(actix_server::server::ServerInner::run::_$u7b$$u7b$closure$u7d$$u7d$::h77be1708c21cfc43)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(mio::poll::Poll::new::h2692d61055de51c3)

          ld.lld: error: undefined symbol: pthread_set_name_np
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::hc3a1f334933369e7)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h99eb13e17d9f525f)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::hda38771d153e0d4e)
          >>> referenced 4 more times

          ld.lld: error: undefined symbol: stat@FBSD_1.0
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(std::sys_common::once::futex::Once::call::h9fe40d8f24df7a5c)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(std::sys_common::once::futex::Once::call::h9fe40d8f24df7a5c)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(scan_website::logger::init_logger::h11cd16c809b2be9c)
          >>> referenced 7 more times

          ld.lld: error: undefined symbol: readdir_r@FBSD_1.0
          >>> referenced by fs.rs:747 (library/std/src/sys/unix/fs.rs:747)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$std..sys..unix..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h0f521721eb1131b5)
          >>> referenced by fs.rs:0 (library/std/src/sys/unix/fs.rs:0)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$std..sys..unix..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h0f521721eb1131b5)

          ld.lld: error: undefined symbol: sysctlbyname
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced 6 more times

          ld.lld: error: undefined symbol: sysctlnametomib
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced 12 more times

          ld.lld: error: undefined symbol: getmntinfo@FBSD_1.0
          >>> referenced by scan_website.c501b66d-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-3fed2ab1c4400259.scan_website.c501b66d-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)

          ld.lld: error: undefined symbol: __stack_chk_guard
          >>> referenced by curve25519.c:476 (crypto/curve25519/curve25519.c:476)
          >>>               curve25519.o:(GFp_x25519_ge_frombytes_vartime) in archive /tmp/rustcz8L3fZ/libring-93dbb815ed48143d.rlib
          >>> referenced by curve25519.c:0 (crypto/curve25519/curve25519.c:0)
          >>>               curve25519.o:(GFp_x25519_ge_frombytes_vartime) in archive /tmp/rustcz8L3fZ/libring-93dbb815ed48143d.rlib
          >>> referenced by curve25519.c:782 (crypto/curve25519/curve25519.c:782)
          >>>               curve25519.o:(GFp_x25519_ge_scalarmult_base) in archive /tmp/rustcz8L3fZ/libring-93dbb815ed48143d.rlib
          >>> referenced 13 more times

          ld.lld: error: undefined symbol: __isthreaded
          >>> referenced by bss_file.c
          >>>               bss_file.o:(file_read) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by bss_file.c
          >>>               bss_file.o:(file_ctrl) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by ui_openssl.c
          >>>               ui_openssl.o:(open_console) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced 3 more times

          ld.lld: error: undefined symbol: __mb_sb_limit
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: undefined symbol: _ThreadRuneLocale
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: undefined symbol: _CurrentRuneLocale
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustcz8L3fZ/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
taiki-e commented 1 year ago

This may be due to an older version of FreeBSD (12.3) was used. I updated to 12.4 today so please try again. (I have confirmed that at least all actix-http examples in actix-web repo compile with 12.4.)

Asthowen commented 1 year ago

I did change the version:

  - name: Install cross-compilation tools
  uses: taiki-e/setup-cross-toolchain-action@v1.9.0
  with:
    target: x86_64-unknown-freebsd

But I still have the same issue. Here is the current error:

error: linking with `x86_64-unknown-freebsd-clang` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" VSLANG="1033" "x86_64-unknown-freebsd-clang" "-m64" "/tmp/rustc7VUyUC/symbols.o" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/release/deps" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/ring-9bd75f043a0c05b5/out" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/zstd-sys-fe166eaac988327c/out" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/openssl-sys-6756b9cfe467c5de/out/openssl-build/install/lib" "-L" "/usr/lib/x86_64-linux-gnu" "-L" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/build/libwebp-sys-5863ce85794a3aca/out" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib" "-Wl,-Bstatic" "/tmp/rustc7VUyUC/liblibwebp_sys-b0d9bff59121cda7.rlib" "/tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib" "/tmp/rustc7VUyUC/libring-93dbb815ed48143d.rlib" "/tmp/rustc7VUyUC/libzstd_sys-c701dde115ef9683.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib/libcompiler_builtins-3ef32c1ca027cc3f.rlib" "-Wl,-Bdynamic" "-lc" "-lmysqlclient" "-lrt" "-lutil" "-lexecinfo" "-lkvm" "-lmemstat" "-lkvm" "-lutil" "-lprocstat" "-lrt" "-ldevstat" "-lexecinfo" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lrt" "-lutil" "-lexecinfo" "-lkvm" "-lmemstat" "-lkvm" "-lutil" "-lprocstat" "-lrt" "-ldevstat" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-freebsd/lib" "-o" "/home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-all" "-nodefaultlibs"
  = note: ld.lld: error: undefined symbol: _init_tls
          >>> referenced by crt1.c:66 (/usr/src/lib/csu/amd64/crt1.c:66)
          >>>               /usr/local/x86_64-unknown-freebsd/usr/lib/Scrt1.o:(_start)

          ld.lld: error: undefined symbol: _umtx_op
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$actix_http..h2..dispatcher..Dispatcher$LT$T$C$S$C$B$C$X$C$U$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h6853a3a155fa346a)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$actix_http..h2..dispatcher..Dispatcher$LT$T$C$S$C$B$C$X$C$U$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h6853a3a155fa346a)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(crossbeam_channel::waker::Waker::disconnect::h267b8c4b8a5ac88d)
          >>> referenced 311 more times

          ld.lld: error: undefined symbol: __error
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website_backend::downloader::downloader::Downloader::start_download_queue::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h0f8ad5d203d76fa7)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website_backend::tasks::tasks::admin_stats_update::admin_stats_update::_$u7b$$u7b$closure$u7d$$u7d$::h3656b3512b31146a)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(h2::proto::connection::Connection$LT$T$C$P$C$B$GT$::poll::hc58dabb5aae2985f)
          >>> referenced 246 more times

          ld.lld: error: undefined symbol: sysctl
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(std::collections::hash::map::RandomState::new::KEYS::__getit::he394d6f74668a471)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website::main::h54333e061f827e92)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website::main::h54333e061f827e92)
          >>> referenced 22 more times

          ld.lld: error: undefined symbol: kevent@FBSD_1.0
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(core::ptr::drop_in_place$LT$tokio..process..imp..ChildStdio$GT$::hcb2468e836dca186)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(core::ptr::drop_in_place$LT$tokio..net..tcp..stream..TcpStream$GT$::h5f8ab2859869cf91)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(actix_server::waker_queue::WakerQueue::wake::hcbd023c64abf126a)
          >>> referenced 9 more times

          ld.lld: error: undefined symbol: lstat@FBSD_1.0
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(tokio::runtime::task::raw::poll::hee5ea80c4822f173)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(chrono::offset::local::inner::Source::new::hdd40c9fd7ca65bdb)
          >>> referenced by fs.rs:1558 (library/std/src/sys/unix/fs.rs:1558)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(std::sys::unix::fs::DirEntry::metadata::h69c22be8eb7c07ed)
          >>> referenced 1 more times

          ld.lld: error: undefined symbol: pthread_attr_get_np
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(main)
          >>> referenced by thread.rs:863 (library/std/src/sys/unix/thread.rs:863)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(std::sys::unix::thread::guard::current::h234ef839a632e8fa)

          ld.lld: error: undefined symbol: fstat@FBSD_1.0
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$actix_files..service..FilesService$u20$as$u20$actix_service..Service$LT$actix_web..service..ServiceRequest$GT$$GT$::call::_$u7b$$u7b$closure$u7d$$u7d$::h6ca08cee7d3aafdf)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$actix_files..service..FilesService$u20$as$u20$actix_service..Service$LT$actix_web..service..ServiceRequest$GT$$GT$::call::_$u7b$$u7b$closure$u7d$$u7d$::h6ca08cee7d3aafdf)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website_backend::config_manager::ConfigManager::write_config_to_file::h85514e8734cf3ad1)
          >>> referenced 6 more times

          ld.lld: error: undefined symbol: kqueue
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(actix_server::server::ServerInner::run::_$u7b$$u7b$closure$u7d$$u7d$::h77be1708c21cfc43)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(mio::poll::Poll::new::h2692d61055de51c3)

          ld.lld: error: undefined symbol: pthread_set_name_np
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::hc3a1f334933369e7)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h99eb13e17d9f525f)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::hda38771d153e0d4e)
          >>> referenced 4 more times

          ld.lld: error: undefined symbol: stat@FBSD_1.0
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(std::sys_common::once::futex::Once::call::hcaea22a0c1e6252e)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(std::sys_common::once::futex::Once::call::hcaea22a0c1e6252e)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(scan_website::logger::init_logger::h02e02aaae36354f9)
          >>> referenced 7 more times

          ld.lld: error: undefined symbol: readdir_r@FBSD_1.0
          >>> referenced by fs.rs:747 (library/std/src/sys/unix/fs.rs:747)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$std..sys..unix..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h0f521721eb1131b5)
          >>> referenced by fs.rs:0 (library/std/src/sys/unix/fs.rs:0)
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$std..sys..unix..fs..ReadDir$u20$as$u20$core..iter..traits..iterator..Iterator$GT$::next::h0f521721eb1131b5)

          ld.lld: error: undefined symbol: sysctlbyname
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced 6 more times

          ld.lld: error: undefined symbol: sysctlnametomib
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)
          >>> referenced 12 more times

          ld.lld: error: undefined symbol: getmntinfo@FBSD_1.0
          >>> referenced by scan_website.fa266c2b-cgu.0
          >>>               /home/runner/work/ScanWebsite/ScanWebsite/target/x86_64-unknown-freebsd/release/deps/scan_website-acb4a5a4ca5d1885.scan_website.fa266c2b-cgu.0.rcgu.o:(_$LT$sysinfo..freebsd..system..System$u20$as$u20$sysinfo..traits..SystemExt$GT$::new_with_specifics::h680aa2cf6f6a3d99)

          ld.lld: error: undefined symbol: __isthreaded
          >>> referenced by bss_file.c
          >>>               bss_file.o:(file_read) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by bss_file.c
          >>>               bss_file.o:(file_ctrl) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by ui_openssl.c
          >>>               ui_openssl.o:(open_console) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced 3 more times

          ld.lld: error: undefined symbol: __mb_sb_limit
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: undefined symbol: _ThreadRuneLocale
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: undefined symbol: _CurrentRuneLocale
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by conf_mod.c
          >>>               conf_mod.o:(CONF_parse_list) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib

          ld.lld: error: undefined symbol: __stderrp
          >>> referenced by cryptlib.c
          >>>               cryptlib.o:(OPENSSL_showfatal) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by eng_openssl.c
          >>>               eng_openssl.o:(openssl_load_privkey) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced by eng_openssl.c
          >>>               eng_openssl.o:(test_rc4_init_key) in archive /tmp/rustc7VUyUC/libopenssl_sys-a60ad07483f096ff.rlib
          >>> referenced 4 more times

          ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

And the list of crates related to Actix and Openssl:

actix-web-static-files = "4.0"
actix-files = "0.6.2"
actix-cors = "0.6.3"
actix-web = {version = "4.3.1", features = ["rustls"]}
actix-ws = "0.2.0"
actix-rt = "2.8.0"
actix = "0.13.0"
openssl-sys = { version = "0.9", features = ["vendored"] }
taiki-e commented 1 year ago

Hmm. Could you provide detailed information on the actual project where the problem occurred and the workflow you ran?

Asthowen commented 1 year ago

Here's my workflow:

name: Generate executables and post them to release

on:
  release:
    types: [published]
  workflow_dispatch:

permissions:
  contents: write

jobs:
  generate-linux-freebsd-shared-libs:
    name: Build & publish for ${{ matrix.target }}
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        rust:
          - stable
        target:
          - x86_64-unknown-freebsd

    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up SSH
        uses: webfactory/ssh-agent@v0.7.0
        with:
            ssh-private-key: |
              ${{ secrets.SSH_PRIVATE_KEY_SCAN_WEBSITE_SDK }}
              ${{ secrets.SSH_PRIVATE_KEY_ASTHO_AUTH }}

      - name: Install Rust
        run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}

      - name: Install cross-compilation tools
        uses: taiki-e/setup-cross-toolchain-action@v1.9.0
        with:
          target: ${{ matrix.target }}

      - name: Set up cargo cache
        uses: actions/cache@v3
        continue-on-error: false
        with:
          path: |
            ~/.cargo/bin/
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: ${{ runner.os }}-cargo-

      - name: Install MariaDB client
        run: |
          sudo apt install curl software-properties-common dirmngr -y
          curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
          sudo bash mariadb_repo_setup --mariadb-server-version=10.6
          sudo apt update
          sudo apt install mariadb-client

      - name: Install pnpm
        run: |
          curl -fsSL https://deb.nodesource.com/setup_current.x | sudo bash - && sudo apt install -y nodejs && sudo npm install -g pnpm

      - name: Get scan_website version
        id: scan_website_version
        run: echo "APP_VERSION=$(awk -F ' = ' '$1 ~ /version/ { gsub(/["]/, "", $2); printf("%s",$2) }' Cargo.toml)" >> $GITHUB_OUTPUT

      - name: Build release
        run: |
          cargo build --release --locked --target ${{ matrix.target }}
          mv ./target/${{ matrix.target }}/release/scan-website ./scan-website-${{ steps.scan_website_version.outputs.APP_VERSION }}-${{ matrix.target }}

      - name: Upload executable to release
        uses: softprops/action-gh-release@v1
        with:
          files: scan-website-${{ steps.scan_website_version.outputs.APP_VERSION }}-${{ matrix.target }}
          tag_name: ${{ steps.scan_website_version.outputs.APP_VERSION }}

And the list of crates used:

reqwest = { version = "0.11.18", features = ["cookies", "gzip", "brotli", "deflate", "multipart", "rustls-tls", "stream"], default-features = false }
scan-website-sdk = { git = "ssh://git@github.com/Asthowen/ScanWebsiteSDK.git", version = "0.0.4" }
asthoauth-lib = { git = "ssh://git@github.com/Asthowen/AsthoAuthRust.git", version = "0.0.3" }
github-updater = { git = "https://github.com/Asthowen/github-updater-rust/", version = "0.0.3" }
tokio = { version = "1.29.0", default-features = false, features = ["rt-multi-thread", "fs", "process"] }
anilist = { git = "https://github.com/Asthowen/rust-anilist.git", version = "0.0.2" }
diesel = { version = "2.1.0", features = ["mysql", "r2d2", "serde_json", "numeric"] }
uuid = { version = "1.3.4", default-features = false, features = ["v4", "fast-rng"] }
openssl-sys = { version = "0.9", features = ["vendored"] }
serde = { version = "1.0.163", features = ["derive"] }
futures-util = "0.3.28"
serde_json = "1.0.96"
human-sort = "0.2.2"
libloading = "0.8.0"
dyn-clone = "1.0.11"
actix-web = { version = "4.3.1", features = ["rustls"] }
actix-ws = "0.2.0"
actix-rt = "2.8.0"
futures = "0.3.28"
sysinfo = "0.29.2"
base64 = "0.21.2"
chrono = "0.4.26"
askama = "0.12.0"
image = "0.24.6"
time = "0.3.22"
r2d2 = "0.8.10"
log = "0.4.19"
webp = "0.2.2"
num = "0.4.0"
actix-web-static-files = "4.0"
diesel_migrations = "2.1.0"
static-files = "0.2.1"
actix-files = "0.6.2"
actix-cors = "0.6.3"
dotenv = "0.15.0"
log4rs = "1.2.0"

For private crates, the only additional requirement is :

async-trait = "0.1.68"
taiki-e commented 1 year ago

Thanks for the info. I can now reproduce this.

And reduced:

# Cargo.toml
[package]
name = "test-crate"
version = "0.1.0"
edition = "2021"

[dependencies]
diesel = { version = "2.1.0", features = ["mysql"] }
// main.rs
use diesel as _;

fn main() {
    println!("Hello, world!");
}

https://github.com/taiki-e/setup-cross-toolchain-action/actions/runs/5509988466/jobs/10043522281

taiki-e commented 1 year ago

More reduced:

# Cargo.toml
[package]
name = "test-crate"
version = "0.1.0"
edition = "2021"

[dependencies]
mysqlclient-sys = "0.2.5" # dependency of diesel's mysql feature
// main.rs
use mysqlclient_sys as _;

fn main() {}
taiki-e commented 1 year ago

I copied mysqlclient-sys's build script and debugged it, but it appears that it is incorrectly trying to link libraries on the host platform.

https://github.com/taiki-e/setup-cross-toolchain-action/actions/runs/5510210948/jobs/10044073281#step:5:85

[test-crate 0.1.0] [build.rs:7] pkg_config::probe_library("mysqlclient") = Ok(
[test-crate 0.1.0] cargo:rerun-if-env-changed=MYSQLCLIENT_DYNAMIC
[test-crate 0.1.0]     Library {
[test-crate 0.1.0] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
[test-crate 0.1.0]         libs: [
[test-crate 0.1.0] cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
[test-crate 0.1.0]             "mysqlclient",
[test-crate 0.1.0] cargo:rustc-link-search=native=/usr/lib/x86_64-linux-gnu
[test-crate 0.1.0]         ],
[test-crate 0.1.0] cargo:rustc-link-lib=mysqlclient
[test-crate 0.1.0]         link_paths: [
[test-crate 0.1.0] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-unknown-freebsd
[test-crate 0.1.0]             "/usr/lib/x86_64-linux-gnu",
[test-crate 0.1.0] cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_unknown_freebsd
[test-crate 0.1.0]         ],
[test-crate 0.1.0]         link_files: [],
[test-crate 0.1.0]         frameworks: [],
[test-crate 0.1.0]         framework_paths: [],
[test-crate 0.1.0]         include_paths: [
[test-crate 0.1.0]             "/usr/include/mysql",
[test-crate 0.1.0]             "/usr/include",
[test-crate 0.1.0]         ],
[test-crate 0.1.0]         ld_args: [],
[test-crate 0.1.0]         defines: {},
[test-crate 0.1.0]         version: "21.2.33",
[test-crate 0.1.0]         _priv: (),
[test-crate 0.1.0]     },
[test-crate 0.1.0] )

I guess you need to download the mysql client library for FreeBSD, and specify it in MYSQLCLIENT_LIB_DIR environment variable or configure pkg-config. https://github.com/sgrif/mysqlclient-sys/blob/v0.2.5/build.rs#L10-L17

Asthowen commented 1 year ago

Thanks for looking! I'll see if it works using the mysql lib for freebsd.

Asthowen commented 1 year ago

That was it!

If anyone has the same problem as me, just create an archive from the contents of the /usr/local/lib/mysql/ folder on a FreeBSD machine. Then just download and extract the contents of the archive from the action. Then create MYSQLCLIENT_LIB_DIR which points to the extracted folder.

In any case, thank you for helping me to solve the problem!