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

Reply via email to