eclipse-score / eclipse-score/bazel_cpp_toolchains
Missing sysroot flags for assembler actions in 1.0.3 for autosd10 build
- Lingua principale
- Starlark
- Stelle
- 2
- Fork
- 11
- Merge medio
- 2g 8h
- PR unite (30g)
- 10
Descrizione
### Description
In version 1.0.3, the sysroot configuration seems to be missing for assembler actions. This causes the compiler to fall back to the host system paths (e.g., /usr/include) when compiling .S assembly files, breaking build hermeticity and throwing absolute path inclusion(s) found in rule errors in Bazel.
Note that the same build worked in 0.5.4
### Analysis results
_No response_
### Solution
_No response_
### Error Occurrence Rate
None
### 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_x86_64",
> runtime_ecosystem = "autosd10",
> target_cpu = "x86_64",
> target_os = "linux",
> use_default_package = True,
> )
- Try to compile a project that includes pure assembly files with a C preprocessor (e.g., BoringSSL with its .S files).
- The build will fail during the assembly step with an error like:
`Compiling crypto/hrss/asm/poly_rq_mul.S failed: absolute path inclusion(s) found in rule '@@boringssl+//:crypto':
the source file 'crypto/hrss/asm/poly_rq_mul.S' includes the following non-builtin files with absolute paths:
'/usr/include/stdc-predef.h'
`
### Supporting Information
_No response_
### Classification
Major
### First Affected Release
1.0
### Last Affected Release
1.0
### Expected Fixed Release
before release (main)
### Category
- [ ] Safety Relevant
- [ ] Security Relevant
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start with the gcc extension at @score_bazel_cpp_toolchains//extensions:gcc.bzl and reproduce the autosd10 configuration from the issue using a project with BoringSSL .S files. Check the assembler action's sysroot handling; done means the assembly step no longer falls back to /usr/include or reports absolute path inclusions.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- cpp
- Ambito
- build-system
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 58/100