Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ae1bce3
try raspi variant
opajonk Apr 15, 2026
278440d
fix: hand in the tag value
opajonk Apr 15, 2026
b07d9df
latest version
opajonk Apr 28, 2026
917bf26
fix: update strip_prefix, sha256, and url for fastdev-sdk-ubuntu-ebclfsa
opajonk May 18, 2026
33e6be4
exclude special directories as well
opajonk May 19, 2026
4e25c91
add post-extraction commands
opajonk May 19, 2026
fd03a47
add sysroot_safe_for_build_scripts
opajonk May 19, 2026
0194134
Revert "add post-extraction commands"
opajonk May 19, 2026
fe902c8
not needed
opajonk May 19, 2026
84ff8fd
add missing system include
opajonk May 19, 2026
6d04984
chore: bump devcontainer to version 1.11.0
lurtz Aug 27, 2026
f32e207
Merge branch 'main' into ebclfsa-update
lurtz Aug 27, 2026
36b0fdb
better add updated EB Linux toolchain instead of replacing the old one
lurtz Aug 27, 2026
f8e22ee
update lockfile
lurtz Aug 27, 2026
d8ac301
use bazel platforms with values for ebclfsa added
lurtz Aug 27, 2026
bd41136
add 2.0.0-beta2 to workflow
lurtz Aug 27, 2026
9c6f96d
use correct config values in workflow
lurtz Aug 27, 2026
e61619f
fix matrix
lurtz Aug 27, 2026
90c2ed6
no fail fast in workflow
lurtz Aug 27, 2026
409b358
set correct gcc version
lurtz Aug 27, 2026
a7870b3
do not set compiler_library_search_paths
lurtz Aug 27, 2026
6d33a7b
work around RPATH issue
lurtz Aug 27, 2026
485ccc7
use PoC without the need for patch_cmds
lurtz Aug 28, 2026
d4b0e30
Revert "use PoC without the need for patch_cmds"
lurtz Aug 28, 2026
50c2f50
inline script to set INTERP
lurtz Aug 28, 2026
4462cdf
use released version of bazel_platforms
lurtz Aug 28, 2026
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
3 changes: 1 addition & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

{
"name": "eclipse-s-core",
"image": "ghcr.io/eclipse-score/devcontainer:v1.2.0"
"image": "ghcr.io/eclipse-score/devcontainer:v1.11.0"
}
9 changes: 7 additions & 2 deletions .github/workflows/ebclfsa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ on:
jobs:
aarch64-ebclfsa:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config: [aarch64-linux-ebclfsa, aarch64-linux-ebclfsa-2.0.0-beta2]
name: Bazel Build (Aarch64-Linux)(ebclfsa) ${{ matrix.config }}
defaults:
run:
working-directory: ./tests
Expand All @@ -41,7 +46,7 @@ jobs:
cache-save: ${{ github.event_name == 'push' }}
- name: Bazel Build (basic)
run: |
bazel build --lockfile_mode=error --config=aarch64-linux-ebclfsa -- //:language_and_standards_tests //:feature_verification_tests
bazel build --lockfile_mode=error --config=${{ matrix.config }} -- //:language_and_standards_tests //:feature_verification_tests
- name: Guardrail (no legacy features)
run: |
bazel test --lockfile_mode=error --config=aarch64-linux-ebclfsa -- //:guardrail_tests
bazel test --lockfile_mode=error --config=${{ matrix.config }} -- //:guardrail_tests
2 changes: 1 addition & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ bazel_dep(name = "bazel_skylib", version = "1.8.2")
# Constraint values for specifying platforms and toolchains
# *******************************************************************************
bazel_dep(name = "platforms", version = "1.1.0")
bazel_dep(name = "score_bazel_platforms", version = "1.0.0")
bazel_dep(name = "score_bazel_platforms", version = "1.1.0")

# *******************************************************************************
# C++ Rules for Bazel
Expand Down
4 changes: 2 additions & 2 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion extensions/gcc.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ _attrs_sdp = {
default = "",
doc = "package name of toolchain, default set to toolchain toolchain name + `_pkg`.",
),
"patch_cmds": attr.string_list(
mandatory = False,
default = [],
doc = "Bash commands executed in the extracted archive root after extraction.",
),
Comment thread
lurtz marked this conversation as resolved.
"sha256": attr.string(
mandatory = False,
default = "",
Expand Down Expand Up @@ -185,6 +190,7 @@ def _get_packages(tags):
packages.append({
"build_file": tag.build_file,
"name": tag.name,
"patch_cmds": tag.patch_cmds,
"sha256": tag.sha256,
"strip_prefix": tag.strip_prefix,
"url": tag.url,
Expand All @@ -211,7 +217,7 @@ def _get_toolchains(tags):
"sdk_version": tag.sdk_version,
"sdp_to_link": tag.sdp_to_link,
"sdp_version": tag.sdp_version,
"tc_compiler_library_search_paths": [],
"tc_compiler_library_search_paths": tag.ld_library_paths,
"tc_cpu": tag.target_cpu,
"tc_extra_c_compile_flags": tag.extra_c_compile_flags,
"tc_extra_compile_flags": tag.extra_compile_flags,
Expand Down Expand Up @@ -301,6 +307,7 @@ def _create_and_link_sdp(toolchain_info):
return {
"build_file": matrix["build_file"],
"name": pkg_name,
"patch_cmds": matrix.get("patch_cmds", []),
"sha256": matrix["sha256"],
"strip_prefix": matrix["strip_prefix"],
"url": matrix["url"],
Expand Down Expand Up @@ -389,6 +396,7 @@ def _impl(mctx):
name = archive_info["name"],
urls = [archive_info["url"]],
build_file = archive_info["build_file"],
patch_cmds = archive_info["patch_cmds"],
sha256 = archive_info["sha256"],
strip_prefix = archive_info["strip_prefix"],
)
Expand Down
16 changes: 16 additions & 0 deletions packages/linux/aarch64/ebclfsa/2.0.0-beta2/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

exports_files([
"ebclfsa.BUILD",
])
76 changes: 76 additions & 0 deletions packages/linux/aarch64/ebclfsa/2.0.0-beta2/ebclfsa.BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

"""Build file for EBcLfSA 2.0.0-beta2 toolchain package"""

package(default_visibility = ["//visibility:public"])

filegroup(
name = "all_files",
srcs = glob(
["*/**/*"],
exclude = [
"dev/**",
"proc/**",
"sys/**",
"usr/share/ca-certificates/**",
"usr/lib/ssl/certs/**",
"lib/ssl/certs/**",
"etc/ssl/certs/**",
"usr/share/man/**",
"usr/share/perl/**",
"var/lib/**",
],
),
)

filegroup(
name = "bin",
srcs = ["usr/bin"],
)

filegroup(
name = "ar",
srcs = ["usr/bin/aarch64-linux-gnu-ar"],
)

filegroup(
name = "cc",
srcs = ["usr/bin/aarch64-linux-gnu-gcc-14"],
)

filegroup(
name = "gcov",
srcs = ["usr/bin/aarch64-linux-gnu-gcov-14"],
)

filegroup(
name = "cxx",
srcs = ["usr/bin/aarch64-linux-gnu-g++-14"],
)

filegroup(
name = "strip",
srcs = ["usr/bin/aarch64-linux-gnu-strip"],
)

filegroup(
name = "elf-enabler",
srcs = ["usr/bin/lisa-elf-enabler"],
)

# The sysroot for EBcLfSA is the entire extracted directory
filegroup(
name = "sysroot_dir",
srcs = ["."],
)
91 changes: 91 additions & 0 deletions packages/version_matrix.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,97 @@ VERSION_MATRIX = {
"sha256": "f44286c28d831dc40acdac08ef49f38a2e9cbb057bea38c25834964693785287",
"url": "https://github.com/Elektrobit/eb_corbos_toolkit/releases/download/v2.0.0-beta1/fastdev-sdk-ubuntu-ebclfsa-ebcl-qemuarm64.tar.gz",
},
"aarch64-linux-sdk_2.0.0-beta2-ebclfsa": {
"build_file": "@score_bazel_cpp_toolchains//packages/linux/aarch64/ebclfsa/2.0.0-beta2:ebclfsa.BUILD",
"extra_c_compile_flags": [
"-nostdinc",
"-isystem",
"external/%{toolchain_pkg}%/usr/lib/gcc-cross/aarch64-linux-gnu/14/include",
"-isystem",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/include",
"-isystem",
"external/%{toolchain_pkg}%/usr/include/aarch64-linux-gnu",
"-L",
"external/%{toolchain_pkg}%/lib/aarch64-linux-gnu",
"-L",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/lib",
"-L",
"external/%{toolchain_pkg}%/usr/lib/x86_64-linux-gnu",
"--no-canonical-prefixes",
],
"extra_cxx_compile_flags": [
"-nostdinc++",
"-isystem",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/include/c++/14",
"-isystem",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/include/c++/14/aarch64-linux-gnu",
"-isystem",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/include/c++/14/backward",
"-nostdinc",
"-isystem",
"external/%{toolchain_pkg}%/usr/lib/gcc-cross/aarch64-linux-gnu/14/include",
"-isystem",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/include",
"-isystem",
"external/%{toolchain_pkg}%/usr/include/aarch64-linux-gnu",
"-L",
"external/%{toolchain_pkg}%/lib/aarch64-linux-gnu",
"-L",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/lib",
"-L",
"external/%{toolchain_pkg}%/usr/lib/x86_64-linux-gnu",
"--no-canonical-prefixes",
],
"extra_link_flags": [
"-B",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/bin",
"-L",
"external/%{toolchain_pkg}%/lib/aarch64-linux-gnu",
"-L",
"external/%{toolchain_pkg}%/usr/aarch64-linux-gnu/lib",
"-L",
"external/%{toolchain_pkg}%/usr/lib/x86_64-linux-gnu",
"-lm",
"-ldl",
"-lrt",
"-static-libstdc++",
"-static-libgcc",
"-static",
"--no-canonical-prefixes",
],
# No `compiler_library_search_paths` on purpose: the SDK host binaries already
# carry an $ORIGIN rpath to their own libraries, and exporting the SDK's
# glibc 2.41 via LD_LIBRARY_PATH would also be inherited by Bazel's own
# process-wrapper, which is linked against the (older) host glibc.
"strip_prefix": "fastdev-sdk-trixie-ebclfsa-ebcl-qemuarm64",
"sha256": "4cf7f0191988795f316f276b56e370ad60fc371954a881d158ebba0284d9d3f5",
"url": "https://github.com/Elektrobit/eb_corbos_toolkit/releases/download/v2.0.0-beta2/fastdev-sdk-trixie-ebclfsa-ebcl-qemuarm64.tar.gz",
# The SDK host binaries carry an $ORIGIN rpath into the SDK's own glibc 2.41
# but still request the host loader (/lib64/ld-linux-x86-64.so.2). Running a
# newer libc under an older ld.so aborts with "stack smashing detected", so
# repoint the interpreter at the SDK loader (what relocate-sdk.sh does).
# Rewrites the ELF interpreter of every host executable shipped by an EB corbos
# SDK to the loader bundled with that SDK. This is the same operation the SDK's
# own `relocate-sdk.sh` performs; it is inlined here because neither `patchelf`
# nor `file` can be assumed to exist on the host, and the SDK-provided `patchelf`
# cannot start before the interpreter is fixed (hence the explicit loader call).
# Each entry of `patch_cmds` is passed to a separate `bash -c`, so this has to
# stay a single command.
"patch_cmds": [
"sdk=$(pwd); " +
"loader=$sdk/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2; " +
"test -x \"$loader\" -a -x \"$sdk/usr/bin/patchelf\" || exit 1; " +
# patchelf lives inside the tree that is about to be rewritten, so work on a copy.
"tmp=$(mktemp -d); cp \"$sdk/usr/bin/patchelf\" \"$tmp/patchelf\"; " +
"run_patchelf() { \"$loader\" --library-path \"$sdk/usr/lib/x86_64-linux-gnu:$sdk/lib/x86_64-linux-gnu\" \"$tmp/patchelf\" \"$@\"; }; " +
"for binary in $(find usr/bin usr/sbin usr/libexec/gcc* usr/lib/gcc-cross usr/lib/llvm-*/bin -type f -perm -u+x 2>/dev/null); do " +
"interpreter=$(run_patchelf --print-interpreter \"$binary\" 2>/dev/null) || continue; " +
"test -n \"$interpreter\" || continue; " +
"run_patchelf --set-interpreter \"$loader\" \"$binary\" >/dev/null 2>&1 || true; " +
"done; " +
"rm -rf \"$tmp\"",
],
},
"x86_64-qnx-sdp_8.0.0": {
"build_file": "@score_bazel_cpp_toolchains//packages/qnx/x86_64/sdp/8.0.0:sdp.BUILD",
"sha256": "f2e0cb21c6baddbcb65f6a70610ce498e7685de8ea2e0f1648f01b327f6bac63",
Expand Down
4 changes: 4 additions & 0 deletions tests/.bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,7 @@ build:x86_64-linux-autosd10 --extra_toolchains=@score_autosd_10_toolchain//:x86_
build:aarch64-linux-ebclfsa --config=shared
build:aarch64-linux-ebclfsa --platforms=@score_bazel_platforms//:aarch64-linux-sdk_0.1.0-ebclfsa
build:aarch64-linux-ebclfsa --extra_toolchains=@score_ebclfsa_toolchain//:aarch64-linux-sdk_0.1.0-ebclfsa

build:aarch64-linux-ebclfsa-2.0.0-beta2 --config=shared
build:aarch64-linux-ebclfsa-2.0.0-beta2 --platforms=@score_bazel_platforms//:aarch64-linux-sdk_2.0.0-beta2-ebclfsa
build:aarch64-linux-ebclfsa-2.0.0-beta2 --extra_toolchains=@score_ebclfsa_2.0.0-beta2_toolchain//:aarch64-linux-sdk_2.0.0-beta2-ebclfsa
15 changes: 14 additions & 1 deletion tests/MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "platforms", version = "1.1.0")

# TODO: DO NOT MERGE IT WITH THIS !!!!
bazel_dep(name = "score_bazel_platforms", version = "1.0.0")
bazel_dep(name = "score_bazel_platforms", version = "1.1.0")

# *******************************************************************************
# C++ Rules for Bazel
Expand Down Expand Up @@ -191,12 +191,25 @@ gcc.toolchain(
target_os = "linux",
use_default_package = True,
)

# *******************************************************************************
# Setting EBcLfSA 2.0.0-beta2 GCC (CPU:aarch64|OS:Linux|V:ebclfsa-2.0.0-beta2|ES:ebclfsa)
# *******************************************************************************
gcc.toolchain(
name = "score_ebclfsa_2.0.0-beta2_toolchain",
runtime_ecosystem = "ebclfsa",
sdk_version = "2.0.0-beta2",
target_cpu = "aarch64",
target_os = "linux",
use_default_package = True,
)
use_repo(
gcc,
"my_toolchain",
"score_aarch64_gcc_toolchain",
"score_aarch64_gcc_toolchain_15",
"score_autosd_10_toolchain",
"score_ebclfsa_2.0.0-beta2_toolchain",
"score_ebclfsa_toolchain",
"score_gcc_toolchain",
"score_gcc_toolchain_15",
Expand Down
Loading
Loading