Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,18 @@ common:_toolchain_common --host_platform=@score_bazel_platforms//:x86_64-linux

common:x86_64-linux --config=_toolchain_common
common:x86_64-linux --platforms=@score_bazel_platforms//:x86_64-linux
common:x86_64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu
common:x86_64-linux --repo_env=TARGET_ARCH=x86_64

common:aarch64-linux --config=_toolchain_common
common:aarch64-linux --platforms=@score_bazel_platforms//:aarch64-linux-gcc_12.2.0-posix
common:aarch64-linux --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu
common:aarch64-linux --repo_env=TARGET_ARCH=aarch64

common:x86_64-qnx --config=_toolchain_common
common:x86_64-qnx --platforms=@score_bazel_platforms//:x86_64-qnx-sdp_8.0.0-posix
common:x86_64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800
common:x86_64-qnx --repo_env=TARGET_ARCH=x86_64

common:aarch64-qnx --config=_toolchain_common
common:aarch64-qnx --platforms=@score_bazel_platforms//:aarch64-qnx-sdp_8.0.0-posix
common:aarch64-qnx --extra_toolchains=@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800
common:aarch64-qnx --repo_env=TARGET_ARCH=aarch64

common --credential_helper=*.qnx.com=%workspace%/.github/tools/qnx_credential_helper.py
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build_and_test_qnx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

name: Build & Test module (cross compilation for QNX)
on:
# pull_request_target:
# types: [opened, reopened, synchronize]
pull_request_target:
types: [opened, reopened, synchronize]
push:
branches:
- main
Expand All @@ -39,7 +39,7 @@ jobs:
bazel-target: "//src/... //tests/... //examples/..."
bazel-config: ${{ matrix.bazel-config }}
credential-helper: ".github/tools/qnx_credential_helper.py"
bazel-disk-cache: ${{ matrix.bazel-config }}
bazel-disk-cache: ${{ github.workflow }}-${{ matrix.bazel-config }}
secrets:
score-qnx-license: ${{ secrets.SCORE_QNX_LICENSE }}
score-qnx-user: ${{ secrets.SCORE_QNX_USER }}
Expand Down
18 changes: 18 additions & 0 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,15 @@ git_override(
remote = "https://github.com/etas-contrib/score_toolchains_rust.git",
)

# Use ferrocene toolchains by default
register_toolchains(
"@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_unknown_linux_gnu",
"@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_linux_gnu",
"@score_toolchains_rust//toolchains/ferrocene:ferrocene_x86_64_pc_nto_qnx800",
"@score_toolchains_rust//toolchains/ferrocene:ferrocene_aarch64_unknown_nto_qnx800",
dev_dependency = True,
)

# ============================================================================
# QNX8 Toolchain Configuration
# ============================================================================
Expand Down Expand Up @@ -180,6 +189,15 @@ bazel_dep(name = "score_docs_as_code", version = "2.3.0", dev_dependency = True)
# ============================================================================
bazel_dep(name = "score_communication", version = "0.1.2")

# On aarch64 (ARM), C's char is unsigned (u8)
# Fixed upstream on main by commit b9efce9702d108fd63be806738db50c14d354302
# Opened problem report at: https://github.com/eclipse-score/communication/issues/172
single_version_override(
module_name = "score_communication",
patch_strip = 1,
patches = ["//:third_party/score_communication-cchar.patch"],
)

# ============================================================================
# Base Libraries
# ============================================================================
Expand Down
19 changes: 19 additions & 0 deletions third_party/score_communication-cchar.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--- a/score/mw/com/impl/rust/proxy_bridge.rs
+++ b/score/mw/com/impl/rust/proxy_bridge.rs
@@ -38,6 +38,7 @@
mod ffi {
use std::marker::PhantomData;
use std::mem::transmute;
+ use std::os::raw::c_char;

/// This type represents score::mw::com::InstanceSpecifier as an opaque struct.
/// Note that this struct is empty as we only use references to it on Rust side.
@@ -133,7 +134,7 @@
container: *const NativeHandleContainer,
pos: u32,
) -> *const HandleType;
- pub(super) fn mw_com_impl_initialize(options: *mut *const i8, len: i32);
+ pub(super) fn mw_com_impl_initialize(options: *mut *const c_char, len: i32);
pub(super) fn mw_com_impl_sample_ptr_get_size() -> u32;
pub(super) fn mw_com_impl_proxy_event_subscribe(
proxy_event: *mut ProxyEventBase,
Loading