From patchwork Mon Jul 10 15:53:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zack Weinberg X-Patchwork-Id: 21521 Received: (qmail 112509 invoked by alias); 10 Jul 2017 15:54:00 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 112468 invoked by uid 89); 10 Jul 2017 15:53:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_SORBS_SPAM, RP_MATCHES_RCVD, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=our, research X-HELO: mailbackend.panix.com X-Gm-Message-State: AIVw113oFe3t7sZUXzpR+3ELwy9mVTcD0zczl3MTiSLpUTXUWLqZ0Ara bvXdz674wFaY87SNNprGT8ZrqjAsDQ== X-Received: by 10.36.236.3 with SMTP id g3mr12619913ith.45.1499702033259; Mon, 10 Jul 2017 08:53:53 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: Zack Weinberg Date: Mon, 10 Jul 2017 11:53:52 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: A quick architecture status report To: Joseph Myers Cc: GNU C Library On Mon, Jul 10, 2017 at 8:56 AM, Joseph Myers wrote: > On Mon, 10 Jul 2017, Zack Weinberg wrote: > >> Alas, this is significantly more research than I have time for. I was >> hoping for a simple matter of adding .note.GNU-stack annotations to >> our own .S files :) > > Since we build with -Wa,--noexecstack if the compiler puts .note.GNU-stack > sections in its output, that's never necessary. What's needed in GCC is > (a) a TARGET_ASM_FILE_END hook that uses file_end_indicate_exec_stack, (b) > any assembly sources in libgcc need .note.GNU-stack annotations. Easy to > add, but architecture maintainers are best placed to know if that's the > right thing to do for the particular architecture. Hm, what do you think of this patch? It makes elf/check-execstack an expected failure on any target where the compiler doesn't put .note.GNU-stack sections in its output. (UNSUPPORTED might be more appropriate, but I don't see a way to trigger that from a makefile conditional.) zw diff --git a/elf/Makefile b/elf/Makefile index e758a4c960..f62f31a45b 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1082,6 +1082,12 @@ $(objpfx)check-execstack.out: $(..)scripts/check-execstack.awk \ $(evaluate-test) generated += check-execstack.out +# If the compiler does not support .note.GNU-stack for this +# architecture, check-execstack is expected to fail. +ifeq (,$(filter %noexecstack,$(ASFLAGS-config))) +test-xfail-check-execstack = yes +endif + $(objpfx)tst-dlmodcount: $(libdl) $(objpfx)tst-dlmodcount.out: $(test-modules)