eclipse-score / eclipse-score/bazel_cpp_toolchains

Broken --sysroot path generation for aarch64 cross-builds

已關閉
#142 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Starlark
星號
2
分支
11
平均合併
1 天 16 小時
30 天內合併 PR
14

描述

### Description

Looking closely at the generated compiler command invocation for an aarch64 build, the `--sysroot` flag is pointing to a single `.so` file instead of the SDK root directory:

`--sysroot=external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/lib64/CP1252.so`

The template logic generating the sysroot path variable appears to grab the wrong file path from the resolved target package.

This is the output that is generated

> external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/bin/g++ -U_FORTIFY_SOURCE '-D_XOPEN_SOURCE=700' -fstack-protector '-fdiagnostics-color=always' -fno-omit-frame-pointer -ffunction-sections -fdata-sections -fno-canonical-system-headers -no-canonical-prefixes '-z noexecstack' '-std=c++17' -MD -MF bazel-out/k8-fastbuild/bin/external/score_baselibs+/score/result/_objs/error/error_domain.pic.d '-frandom-seed=bazel-out/k8-fastbuild/bin/external/score_baselibs+/score/result/_objs/error/error_domain.pic.o' -fPIC -iquote external/score_baselibs+ -iquote bazel-out/k8-fastbuild/bin/external/score_baselibs+ '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -Wno-builtin-macro-redefined -Wall -Wcast-align -Wcast-qual -Wformat-nonliteral -Wformat-signedness '-Wformat=2' -Wmissing-format-attribute -Wpointer-arith -Wredundant-decls -Wreturn-local-addr -Wsizeof-array-argument -Wundef -Wwrite-strings -Wodr -Wreorder -Wbool-compare -Wconversion -Wdouble-promotion -Wextra -Winvalid-pch -Wlogical-not-parentheses -Wlogical-op -Wpedantic -Wswitch-bool -Wunused-but-set-parameter -Wvla -Wnarrowing -nostdinc++ -isystem external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/include/c++/14 -isystem external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/include/c++/14/aarch64-redhat-linux -isystem external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/include/c++/14/backward -nostdinc -isystem external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/lib/gcc/aarch64-redhat-linux/14/include -isystem external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/usr/include '--**sysroot=external/score_bazel_cpp_toolchains++gcc+score_cc_autosd10_aarch64_pkg/lib64/CP1252.so**' -c external/score_baselibs+/score/result/error_domain.cpp -o bazel-out/k8-fastbuild/bin/external/score_baselibs+/score/result/_objs/error/error_domain.pic.o)
> aarch64-binfmt-P: Could not open '/lib/ld-linux-aarch64.so.1': No such file or directory

### Analysis results

_No response_

### Solution

_No response_

### Error Occurrence Rate

Reproducible

### How to reproduce

- Use score_bazel_cpp_toolchains version 1.0.3.
- use autosd toolchain:

> gcc = use_extension("@score_bazel_cpp_toolchains//extensions:gcc.bzl", "gcc")
> gcc.toolchain(
> name = "score_cc_autosd10_aarch64",
> runtime_ecosystem = "autosd10",
> sdp_to_link = "score_cc_autosd10_aarch64_pkg",
> target_cpu = "aarch64",
> target_os = "linux",
> use_default_package = True,
> )

Build any cc target

### Supporting Information

_No response_

### Classification

Major

### First Affected Release

0.5

### Last Affected Release

1.0

### Expected Fixed Release

before release (main)

### Category

- [ ] Safety Relevant
- [ ] Security Relevant

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

Start with the gcc.toolchain entry point in extensions:gcc.bzl and reproduce a cc target build using score_bazel_cpp_toolchains 1.0.3 and the autosd10 aarch64 configuration shown. Trace how the resolved target package supplies the sysroot path, then verify that the generated compiler command uses the SDK root rather than CP1252.so and that the build no longer reports the missing aarch64 loader.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
cpp, linux
領域
build-system, compilers
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
活躍
描述清晰度
基本清楚
新手友好度
65/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。