Closed as not planned
Closed as not planned
Description
Problem
I am trying to build Rust application on aarch64 platform with musl.
After setting up the Docker, I started a container with the latest Alpine image and then installed the Rust and essential components as follows:
# apk update
# apk add build-base curl perl libgcc
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# source "$HOME/.cargo/env"
# cargo -V
cargo 1.69.0 (6e9a83356 2023-04-12)
Everything looked good. The next step I prepared the main program:
main.rs
use std::error::Error;
use reqwest::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let client = Client::new();
let response = client.get("https://www.example.com").send().await?;
let body = response.text().await?;
println!("Body:\n{}", body);
Ok(())
}
Cargo.toml
[package]
name = "hello-reqwest"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
reqwest = "0.11.16"
tokio = { version = "1.27.0", features = ["full"] }
openssl = { version = "0.10.50", features = ["vendored"] }
Then started the building procedure and got the output as follows:
# cargo build
Compiling autocfg v1.1.0
Compiling libc v0.2.142
Compiling cfg-if v1.0.0
Compiling proc-macro2 v1.0.56
Compiling unicode-ident v1.0.8
Compiling quote v1.0.26
Compiling log v0.4.17
Compiling cc v1.0.79
Compiling openssl-src v111.25.3+1.1.1t
Compiling syn v2.0.15
Compiling lock_api v0.4.9
Compiling once_cell v1.17.1
Compiling pin-project-lite v0.2.9
Compiling pkg-config v0.3.26
Compiling parking_lot_core v0.9.7
Compiling futures-core v0.3.28
Compiling scopeguard v1.1.0
Compiling smallvec v1.10.0
Compiling bytes v1.4.0
Compiling openssl-sys v0.9.87
Compiling tokio v1.28.0
Compiling parking_lot v0.12.1
Compiling signal-hook-registry v1.4.1
Compiling mio v0.8.6
Compiling socket2 v0.4.9
Compiling num_cpus v1.15.0
Compiling futures-task v0.3.28
Compiling itoa v1.0.6
Compiling tracing-core v0.1.30
Compiling indexmap v1.9.3
Compiling slab v0.4.8
Compiling openssl v0.10.52
Compiling fnv v1.0.7
Compiling futures-util v0.3.28
Compiling tokio-macros v2.1.0
Compiling foreign-types-shared v0.1.1
Compiling foreign-types v0.3.2
Compiling openssl-macros v0.1.1
Compiling http v0.2.9
Compiling tracing v0.1.37
Compiling bitflags v1.3.2
Compiling futures-channel v0.3.28
Compiling httparse v1.8.0
Compiling futures-sink v0.3.28
Compiling hashbrown v0.12.3
Compiling pin-utils v0.1.0
Compiling tinyvec_macros v0.1.1
Compiling native-tls v0.2.11
Compiling tinyvec v1.6.0
Compiling try-lock v0.2.4
Compiling percent-encoding v2.2.0
Compiling openssl-probe v0.1.5
Compiling serde v1.0.160
Compiling form_urlencoded v1.1.0
Compiling want v0.3.0
Compiling unicode-normalization v0.1.22
Compiling http-body v0.4.5
Compiling httpdate v1.0.2
Compiling tokio-util v0.7.8
Compiling tower-service v0.3.2
Compiling unicode-bidi v0.3.13
Compiling h2 v0.3.18
Compiling idna v0.3.0
Compiling hyper v0.14.26
Compiling ryu v1.0.13
Compiling serde_urlencoded v0.7.1
Compiling url v2.3.1
Compiling encoding_rs v0.8.32
Compiling base64 v0.21.0
Compiling mime v0.3.17
Compiling ipnet v2.7.2
Compiling tokio-native-tls v0.3.1
Compiling hyper-tls v0.5.0
Compiling reqwest v0.11.17
Compiling hello-reqwest v0.1.0 (/root/hello-request)
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH="/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/bin:/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/bin/self-contained:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" VSLANG="1033" "cc" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crt1.o" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crti.o" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtbegin.o" "/tmp/rustcjhJxP0/symbols.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.12uba3z9ighejiqs.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.145tyn9nbx7n270s.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.19fag5lc93ppob3c.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1d3fae1v8fhi5jmz.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1jd0oz8oqowd690z.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1ld7cl6ufrhow3a9.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1oqgb310o0uzfaux.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1rdn52n3ggbqlqlz.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1vlz05jsq7cilv64.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1xg2kpcta6la7cp7.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.20iccn5lbj9hna18.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2c37upk3ojtv5ewd.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2dqxif0axib2qxdg.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2fm2xs4sivytxh8h.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2hxto55wx3bgq8hd.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2id3zteqrharr6yy.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2jbchzsnr88rgfcz.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2otxrcztbitvem5.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.2xoy6yqn1g9mtxhd.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.30cs3vz9jk4mpng1.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.30m1l6w90g0dlr94.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.31ghvs0pya9eito4.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.32bqd75sv1puzjhi.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.345c00zqyhpp7r3r.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.3c3mbcvk731a2wb2.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.3hbpoay9ro5cuypk.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.3p36xl10pi2hx70h.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.3qtoyffcf9kr8tew.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.3xv3z1saqcm9xwcz.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.4bp1kophituia2qb.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.4glh4fkb0xrdfyi.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.4h1ltcfqsyites93.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.4x3jars6iwesr2xf.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.4z8vwlcc4rheb0bt.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.5g8z9cgyiv4vqhlr.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.aw94dkee94gdbmf.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.dyyewhsitf84089.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.ic48d3plvu6wnrz.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.j8qai53wfm72vne.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.kj53a519kivhxro.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.kxqqjbmxp8ezmba.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.n91zwoayzk96u1e.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.nillb1q6fmhafgs.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.q0ljdrcqk1sztkw.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.syaa5bxtnosto28.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.v7a1ru04e6ptt8h.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.wygg97mtqdxwbm0.rcgu.o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19.1tczekdkosrwiv4i.rcgu.o" "-Wl,--as-needed" "-L" "/root/hello-request/target/debug/deps" "-L" "/root/hello-request/target/debug/build/openssl-sys-222ce05fd9e59354/out/openssl-build/install/lib" "-L" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/root/hello-request/target/debug/deps/libreqwest-32538d81c6e633ab.rlib" "/root/hello-request/target/debug/deps/libhyper_tls-fe48346797c26a2d.rlib" "/root/hello-request/target/debug/deps/libserde_urlencoded-4927a5f78976b92d.rlib" "/root/hello-request/target/debug/deps/libryu-0236f6dc03b61d91.rlib" "/root/hello-request/target/debug/deps/libbase64-ed528b1fb06aa435.rlib" "/root/hello-request/target/debug/deps/libipnet-13a6168997db870b.rlib" "/root/hello-request/target/debug/deps/libtokio_native_tls-8a0f2f75b1e25be5.rlib" "/root/hello-request/target/debug/deps/libmime-f9ab3ee664e16c5d.rlib" "/root/hello-request/target/debug/deps/libencoding_rs-c95afc8dee0b21c1.rlib" "/root/hello-request/target/debug/deps/libserde-7c8636b45e07af2d.rlib" "/root/hello-request/target/debug/deps/libnative_tls-8cc8058b5753906d.rlib" "/root/hello-request/target/debug/deps/libopenssl_probe-b0984027b9610f79.rlib" "/root/hello-request/target/debug/deps/libopenssl-c4b1afadb05077e2.rlib" "/root/hello-request/target/debug/deps/libbitflags-c4bc8217b5525fb8.rlib" "/root/hello-request/target/debug/deps/libforeign_types-8cd6591c8e9a7a5b.rlib" "/root/hello-request/target/debug/deps/libforeign_types_shared-e81d867e1a01b7d4.rlib" "/root/hello-request/target/debug/deps/libopenssl_sys-38fc5f5f28ce24e9.rlib" "/root/hello-request/target/debug/deps/libhyper-f3fb0bdd45e27bd9.rlib" "/root/hello-request/target/debug/deps/libwant-cb6a72520f754f6b.rlib" "/root/hello-request/target/debug/deps/libtry_lock-c84e6947d79ddb12.rlib" "/root/hello-request/target/debug/deps/libhttparse-664b208826ae8ceb.rlib" "/root/hello-request/target/debug/deps/libh2-540bafaf562f19c8.rlib" "/root/hello-request/target/debug/deps/libindexmap-00dd529f44c5e369.rlib" "/root/hello-request/target/debug/deps/libhashbrown-7ab00e879d52a799.rlib" "/root/hello-request/target/debug/deps/libslab-cc0771cd99431cfa.rlib" "/root/hello-request/target/debug/deps/libtokio_util-c757fc8adab1cc80.rlib" "/root/hello-request/target/debug/deps/libfutures_sink-13575af431ab24dc.rlib" "/root/hello-request/target/debug/deps/libtower_service-429c48a3ca3948bb.rlib" "/root/hello-request/target/debug/deps/libtracing-95b390d3163d0a73.rlib" "/root/hello-request/target/debug/deps/libtracing_core-dc3657c8fca2f58a.rlib" "/root/hello-request/target/debug/deps/libonce_cell-4de932266a0e37dc.rlib" "/root/hello-request/target/debug/deps/libfutures_channel-7979a9bb387bb67b.rlib" "/root/hello-request/target/debug/deps/libfutures_util-7133fd55e8a2cf45.rlib" "/root/hello-request/target/debug/deps/libfutures_task-655a43c858cd84ca.rlib" "/root/hello-request/target/debug/deps/libpin_utils-5598520b42f13dde.rlib" "/root/hello-request/target/debug/deps/libtokio-2c7897da8f344e98.rlib" "/root/hello-request/target/debug/deps/libsignal_hook_registry-f884911b5ff0b32b.rlib" "/root/hello-request/target/debug/deps/libnum_cpus-2aedabd589fb1a0a.rlib" "/root/hello-request/target/debug/deps/libsocket2-21d967793493e0a5.rlib" "/root/hello-request/target/debug/deps/libmio-816014f34292cdf6.rlib" "/root/hello-request/target/debug/deps/libparking_lot-3c2dea5a5410e2e6.rlib" "/root/hello-request/target/debug/deps/libparking_lot_core-3d9a6a25dab497a0.rlib" "/root/hello-request/target/debug/deps/liblibc-bd10417fc725967e.rlib" "/root/hello-request/target/debug/deps/libsmallvec-f27b5fed18292e6f.rlib" "/root/hello-request/target/debug/deps/liblock_api-75925c4e8221d0f3.rlib" "/root/hello-request/target/debug/deps/libscopeguard-f6a8af27eb217c03.rlib" "/root/hello-request/target/debug/deps/libhttp_body-e28a7545b7df9ab6.rlib" "/root/hello-request/target/debug/deps/libpin_project_lite-e8d359e0d6dc7857.rlib" "/root/hello-request/target/debug/deps/liblog-7c6ea07cd5f3dd79.rlib" "/root/hello-request/target/debug/deps/libcfg_if-0a7b5993b9fb90c4.rlib" "/root/hello-request/target/debug/deps/libfutures_core-27cadb881cc5ea31.rlib" "/root/hello-request/target/debug/deps/liburl-2c77c34df772237a.rlib" "/root/hello-request/target/debug/deps/libidna-4e617938e57720d7.rlib" "/root/hello-request/target/debug/deps/libunicode_normalization-c670285d8ca90c8f.rlib" "/root/hello-request/target/debug/deps/libtinyvec-11e40fd4c984d6b6.rlib" "/root/hello-request/target/debug/deps/libtinyvec_macros-46507314cc10f3b3.rlib" "/root/hello-request/target/debug/deps/libunicode_bidi-872d232d4bb95135.rlib" "/root/hello-request/target/debug/deps/libform_urlencoded-6dd790218656b268.rlib" "/root/hello-request/target/debug/deps/libpercent_encoding-a818f8d5ecd70566.rlib" "/root/hello-request/target/debug/deps/libhttp-3cc5745aa0e56d6e.rlib" "/root/hello-request/target/debug/deps/libitoa-cecc74b8f5d68e16.rlib" "/root/hello-request/target/debug/deps/libbytes-1828e3315b82be0f.rlib" "/root/hello-request/target/debug/deps/libfnv-81cf296291af575a.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd-8347dacf73ff8181.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libpanic_unwind-7c864a0072a3bfca.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libobject-f3140d2cdf33f2f8.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libmemchr-3e6e8d9adf95f603.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libaddr2line-c3214d789c863d6f.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libgimli-efc03ec9159535ab.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_demangle-925c57dfae9d0afd.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libstd_detect-0c087d6f5e18bb33.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libhashbrown-addbfbc0e8acd5a0.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libminiz_oxide-45a7ae677fa33eb5.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libadler-c798880eccacc08f.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_alloc-9f560ebd367f9b40.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libunwind-c8b557fe51fdf6ea.rlib" "-lunwind" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcfg_if-93959a4b4d0b2030.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liblibc-1c196568605b592d.rlib" "-lc" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/liballoc-8e7bca5203171f71.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/librustc_std_workspace_core-cc2a13f3863fd692.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcore-dffeba2467220507.rlib" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcompiler_builtins-50d8ea67cf3a12a5.rlib" "-Wl,-Bdynamic" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-nostartfiles" "-L" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib" "-L" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained" "-o" "/root/hello-request/target/debug/deps/hello_reqwest-1d244af24d214c19" "-Wl,--gc-sections" "-static" "-no-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtend.o" "/root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/self-contained/crtn.o"
= note: /usr/lib/gcc/aarch64-alpine-linux-musl/12.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: /root/.rustup/toolchains/stable-aarch64-unknown-linux-musl/lib/rustlib/aarch64-unknown-linux-musl/lib/libcompiler_builtins-50d8ea67cf3a12a5.rlib(cpu_model.o): in function `init_have_lse_atomics':
/cargo/registry/src/index.crates.io-6f17d22bba15001f/compiler_builtins-0.1.87/./lib/builtins/cpu_model.c:829: undefined reference to `getauxval'
collect2: error: ld returned 1 exit status
= note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
= note: use the `-l` flag to specify native libraries to link
= note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
error: could not compile `hello-reqwest` due to previous error
After inspecting the error message, I noticed the problem might on libcompiler_builtins-50d8ea67cf3a12a5.rlib
, which came with rustup target add
. Actually, they are part of LLVM's compiler-rt.
Steps
- Install Docker and start the container (
docker run -ti --name alpine alpine:latest /bin/sh
) - Install the latest Rust (1.69.0)
- Set up a simple
hello-reqwest
project, with the content of main.rs and Cargo.toml mentioned above. - Start the compilation.
Possible Solution(s)
No response
Notes
No response
Rustup version
$ rustup --version
rustup 1.26.0 (5af9b9484 2023-04-05)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.69.0 (84c898d65 2023-04-16)`
Installed toolchains
# rustup show
Default host: aarch64-unknown-linux-musl
rustup home: /root/.rustup
stable-aarch64-unknown-linux-musl (default)
rustc 1.69.0 (84c898d65 2023-04-16)