From 8958f882b23431bb11bb15a2cff4542fbb9c714b Mon Sep 17 00:00:00 2001 From: praveen Date: Mon, 22 Jun 2026 17:01:41 -0700 Subject: [PATCH 1/2] fix(build): add --start-group/--end-group around gRPC/abseil archive group GNU ld on Ubuntu 24.04 requires explicit archive grouping for circular references between static archives. Without the group brackets the linker emits undefined symbol errors for abseil and gRPC symbols. --- sw/nic/gpuagent/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sw/nic/gpuagent/Makefile b/sw/nic/gpuagent/Makefile index f1c30b78..3f7f82bb 100644 --- a/sw/nic/gpuagent/Makefile +++ b/sw/nic/gpuagent/Makefile @@ -131,7 +131,7 @@ LDFLAGS_COMMON := -pthread -rdynamic -no-canonical-prefixes -Wl,--gc-sections \ -Wl,-z,relro,-z,now -Wl,--build-id=md5 -Wl,--hash-style=gnu \ -L$(BLD_LIB_DIR) -Wl,-rpath,$(BLD_LIB_DIR) \ -Wl,-rpath-link,$(BLD_LIB_DIR) -L${BLD_DIR}/lib -L${BLD_DIR}/lib64 \ - -l:libprotobuf.a -lgrpc++_reflection -lgrpc++ -lgrpc -lgpr -lupb -lcares \ + -l:libprotobuf.a -Wl,--start-group -lgrpc++_reflection -lgrpc++ -lgrpc -lgpr -lupb -lcares \ -laddress_sorting -l:libgrpc.a -l:libre2.a -labsl_synchronization -labsl_periodic_sampler -labsl_time \ -labsl_time_zone -labsl_int128 -labsl_bad_optional_access -labsl_bad_any_cast_impl -labsl_bad_variant_access\ -labsl_spinlock_wait -labsl_log_severity -labsl_strerror -labsl_raw_logging_internal -labsl_throw_delegate \ @@ -148,7 +148,7 @@ LDFLAGS_COMMON := -pthread -rdynamic -no-canonical-prefixes -Wl,--gc-sections \ -labsl_statusor -labsl_flags_commandlineflag_internal -labsl_flags_commandlineflag \ -labsl_flags_private_handle_accessor -labsl_flags_marshalling -labsl_flags_program_name \ -labsl_flags_config -labsl_flags_internal -labsl_flags_reflection -labsl_flags -labsl_flags_usage_internal \ - -labsl_flags_usage -labsl_flags_parse -lpthread -lz -lm -lrt -ldl -l:libev.a -l:libzmq.a \ + -labsl_flags_usage -labsl_flags_parse -Wl,--end-group -lpthread -lz -lm -lrt -ldl -l:libev.a -l:libzmq.a \ -l:libssl.a -l:libcrypto.a LDFLAGS_AMD_SMI := ${LDFLAGS_COMMON} \ -L${TOPDIR}/nic/third-party/rocm/amd_smi_lib/x86_64/lib/ \ From 99491b70f4404c41235ab5a21a57934fa44ae2bf Mon Sep 17 00:00:00 2001 From: praveen Date: Mon, 22 Jun 2026 17:01:47 -0700 Subject: [PATCH 2/2] ci: add gpuagent build workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Validates every PR and push to main builds gpuagent successfully. Uses the RHEL9 builder container with GHA layer cache to keep repeat runs fast. External contributor PRs require maintainer approval before the workflow runs (configured via repo Settings → Actions → Fork pull request workflows). --- .github/workflows/ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..2791c8c5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI Build + +on: + pull_request: + branches: + - '**' + push: + branches: + - main + workflow_dispatch: + +concurrency: + group: ci-build-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build + runs-on: ubuntu-24.04 + timeout-minutes: 60 + permissions: + contents: read + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build builder container + uses: docker/build-push-action@v6 + with: + context: tools/build-container + file: tools/build-container/Dokerfile.rhel9 + load: true + tags: gpuagent-builder-rhel:9 + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Build gpuagent + run: | + make gpuagent \ + GIT_COMMIT=$(git rev-list -1 HEAD --abbrev-commit) \ + BUILD_DATE=$(date +%Y-%m-%dT%H:%M:%S%z)