[gcc r17-2317] libphobos: Disable .note.GNU-stack on NetBSD

Rainer Orth via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:dadfcb36d905c619f196106ceea6e0f37831f5be

commit r17-2317-gdadfcb36d905c619f196106ceea6e0f37831f5be
Author: Rainer Orth <[email protected]>
Date:   Fri Jul 10 19:10:16 2026 +0200

    libphobos: Disable .note.GNU-stack on NetBSD
    
    When linking with a static libgphobos on NetBSD/amd64, gld 2.46 warns
    
    gld-2.46: warning: /usr/lib/crtn.o: missing .note.GNU-stack section implies executable stack
    
    This is caused by libdruntime/config/common/threadasm.S including the
    note on NetBSD.  This was introduced in the original druntime repo with
    
    commit 3d8d4a45c01832fb657c16a656b6e1566d77fb21
    Author: Nikolay Tolstokulakov <[email protected]>
    Date:   Thu Feb 4 13:40:21 2016 +0600
    
        netbsd patch
    
    apparently by simply matching what FreeBSD and OpenBSD do.  However,
    NetBSD doesn't use those notes: TARGET_ASM_FILE_END isn't defined and
    the bundled GCC 10.5.0 doesn't emit it either.
    
    Therefore this patch omits it.
    
    The same issue is still present in upstream DMD in
    druntime/src/core/thread/fiber/switch_context_asm.S.
    
    Bootstapped without regressions on amd64-pc-netbsd10.1.
    
    2026-07-05  Rainer Orth  <[email protected]>
    
            libphobos:
            * libdruntime/config/common/threadasm.S: Don't emit
            .note.GNU-stack on NetBSD.

Diff:
---
 libphobos/libdruntime/config/common/threadasm.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libphobos/libdruntime/config/common/threadasm.S b/libphobos/libdruntime/config/common/threadasm.S
index fc830fe7d821..d879dbfc032b 100644
--- a/libphobos/libdruntime/config/common/threadasm.S
+++ b/libphobos/libdruntime/config/common/threadasm.S
@@ -22,7 +22,7 @@ a copy of the GCC Runtime Library Exception along with this program;
 see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 <http://www.gnu.org/licenses/>.  */
 
-#if (__linux__ || __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__) && __ELF__
+#if (__linux__ || __FreeBSD__ || __OpenBSD__ || __DragonFly__) && __ELF__
 /*
  * Mark the resulting object file as not requiring execution permissions on
  * stack memory. The absence of this section would mark the whole resulting
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.