commit: a69045d3f472dd1de111c8136e4d1540bfdeade4
Author: Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 28 16:11:16 2025 +0000
Commit: Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Fri Aug 29 09:30:21 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a69045d3
llvm-runtimes/compiler-rt-sanitizers: prevent -fstack-protector in *FLAGS
It causes the build to error since e.g. Sanitizer-x86_64-Test-Nolibc
builds with, unsurprisingly, `-static -nostdlib` resulting in
```
/usr/bin/x86_64-pc-linux-gnu-ld.bfd: sanitizer_nolibc_test_main.x86_64.o: in
function `_start':
..../sanitizer_nolibc_test_main.cpp:(.text+0x29): undefined reference to
`__stack_chk_fail'
```
The cmake files check for -fno-stack-protector support already, and pass
it to various parts if possible. But apparently not this. :P
Acked-by: Sam James <sam <AT> gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>
.../compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild | 3 +++
.../compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild | 3 +++
.../compiler-rt-sanitizers-22.0.0_pre20250820.ebuild | 3 +++
9 files changed, 27 insertions(+)
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index 3978b415cb59..cc708581a5f2 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index 2c54b12ac9c8..e23a58e49fdd 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index fad0933985bd..750aea5240b2 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 64fc59dae7cc..0098cadd0542 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index a3c0032c0c6e..8323457069c5 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index f2369c59d91e..de0decaa4f10 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
index 4c58ed55d3ee..4b0884c09ab2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
index e0bba032ceec..b6f74f8ebb9a 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then
diff --git
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
index e0bba032ceec..b6f74f8ebb9a 100644
---
a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
+++
b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
src_prepare() {
sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
local flag
for flag in "${SANITIZER_FLAGS[@]}"; do
if ! use "${flag}"; then