Add support for QNX 7.1 with io-sock on x64
Signed-off-by: Florian Bartels <Florian.Bartels@elektrobit.com>
This commit is contained in:
parent
84c80151cf
commit
efe53ddd58
7 changed files with 41 additions and 7 deletions
|
|
@ -1965,6 +1965,7 @@ supported_targets! {
|
|||
("aarch64-unknown-nto-qnx710", aarch64_unknown_nto_qnx710),
|
||||
("aarch64-unknown-nto-qnx710_iosock", aarch64_unknown_nto_qnx710_iosock),
|
||||
("x86_64-pc-nto-qnx710", x86_64_pc_nto_qnx710),
|
||||
("x86_64-pc-nto-qnx710_iosock", x86_64_pc_nto_qnx710_iosock),
|
||||
("i586-pc-nto-qnx700", i586_pc_nto_qnx700),
|
||||
|
||||
("aarch64-unknown-linux-ohos", aarch64_unknown_linux_ohos),
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
use crate::spec::{Cc, LinkerFlavor, Lld, Target, TargetOptions};
|
||||
|
||||
pub(crate) fn target() -> Target {
|
||||
let mut target = super::x86_64_pc_nto_qnx710::target();
|
||||
target.options.env = "nto71_iosock".into();
|
||||
target.options.pre_link_args =
|
||||
TargetOptions::link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &[
|
||||
"-Vgcc_ntox86_64_cxx",
|
||||
get_iosock_param(),
|
||||
]);
|
||||
target
|
||||
}
|
||||
|
||||
// When using `io-sock` on QNX, we must add a search path for the linker so
|
||||
// that it prefers the io-sock version.
|
||||
// The path depends on the host, i.e. we cannot hard-code it here, but have
|
||||
// to determine it when the compiler runs.
|
||||
// When using the QNX toolchain, the environment variable QNX_TARGET is always set.
|
||||
// More information:
|
||||
// https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.io_sock/topic/migrate_app.html
|
||||
fn get_iosock_param() -> &'static str {
|
||||
let target_dir =
|
||||
std::env::var("QNX_TARGET").unwrap_or_else(|_| "PLEASE_SET_ENV_VAR_QNX_TARGET".into());
|
||||
let linker_param = format!("-L{target_dir}/x86_64/io-sock/lib");
|
||||
|
||||
linker_param.leak()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue