{"id":2230235,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230235/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/ydda4ulamtr.fsf@CeBiTec.Uni-Bielefeld.DE/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.1/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<ydda4ulamtr.fsf@CeBiTec.Uni-Bielefeld.DE>","date":"2026-04-29T14:00:16","name":"[1/6] Remove HAVE_GNU_AS","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"242156fac5d962fa72be70b58656add1d6e77eb3","submitter":{"id":4362,"url":"http://patchwork.ozlabs.org/api/1.1/people/4362/?format=json","name":"Rainer Orth","email":"ro@CeBiTec.Uni-Bielefeld.DE"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/ydda4ulamtr.fsf@CeBiTec.Uni-Bielefeld.DE/mbox/","series":[{"id":502070,"url":"http://patchwork.ozlabs.org/api/1.1/series/502070/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=502070","date":"2026-04-29T13:59:25","name":"Remove HAVE_GNU_{AS,LD} etc.","version":1,"mbox":"http://patchwork.ozlabs.org/series/502070/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230235/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230235/checks/","tags":{},"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=cebitec.uni-bielefeld.de header.i=@cebitec.uni-bielefeld.de\n header.a=rsa-sha256 header.s=20200306 header.b=gJsRp4JM;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=cebitec.uni-bielefeld.de header.i=@cebitec.uni-bielefeld.de\n header.a=rsa-sha256 header.s=20200306 header.b=gJsRp4JM","sourceware.org; dmarc=none (p=none dis=none)\n header.from=CeBiTec.Uni-Bielefeld.DE","sourceware.org;\n spf=pass smtp.mailfrom=cebitec.uni-bielefeld.de","server2.sourceware.org;\n arc=none smtp.remote-ip=129.70.160.84"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5JqW1qpRz1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 00:00:55 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 366024BABF2D\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 14:00:53 +0000 (GMT)","from smtp.CeBiTec.Uni-Bielefeld.DE (smtp.CeBiTec.Uni-Bielefeld.DE\n [129.70.160.84])\n by sourceware.org (Postfix) with ESMTPS id 7153A4BB3BEF\n for <gcc-patches@gcc.gnu.org>; Wed, 29 Apr 2026 14:00:19 +0000 (GMT)","from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1])\n by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 97EC4C1FDB;\n Wed, 29 Apr 2026 16:00:18 +0200 (CEST)","from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1])\n by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new,\n port 10026)\n with ESMTP id lmjhqE-3S1Xu; Wed, 29 Apr 2026 16:00:17 +0200 (CEST)","from manam.CeBiTec.Uni-Bielefeld.DE (p508551ea.dip0.t-ipconnect.de\n [80.133.81.234]) (Authenticated sender: ro)\n by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id 48AC7C1FDA;\n Wed, 29 Apr 2026 16:00:17 +0200 (CEST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 366024BABF2D","OpenDKIM Filter v2.11.0 sourceware.org 7153A4BB3BEF"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 7153A4BB3BEF","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 7153A4BB3BEF","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777471219; cv=none;\n b=tSOhjw/vG1PLjhgzn5Meu6WmU9ZDZM9Ygbg4IGh/VBY0wUUba14JypQ+s6hR4iID9qOtHEae4LlXXM8+acj171PY0PQDb7nwahTzXESx/jcZC/SlAxLl+BjoC2m/uCP8GSQhRi+vLKi+8QKAEB7mlAbCQm7tfEbBTJEG9o03Ens=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777471219; c=relaxed/simple;\n bh=A+NAljBst0dukU7UoJUtE29X7L0h0hq1GU0PsUVNDU4=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=mqR4Y+V9NGdJsd0lFlGUCwxbocNlpTnvo74PG1SVWGJUgwtPxd+epIMLOp0jFqbyPHkaalVhK1CkzkL009IDsF8udw7pV9Zeo2dCMsN/W1Nk7qYo0J69Y/BBNzK6mY4wk1KeJx20kdaXNuEaaHkUgjr75W5CablBpGAzFTuBSEE=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=\n cebitec.uni-bielefeld.de; h=content-type:content-type\n :mime-version:user-agent:message-id:date:date:subject:subject\n :from:from:received:received; s=20200306; t=1777471217; bh=A+NAl\n jBst0dukU7UoJUtE29X7L0h0hq1GU0PsUVNDU4=; b=gJsRp4JMjjnpBl0YrrwLe\n s24BdVwZH48UOMw09GixkSoOz5JiaSOZxeWtlAEvmQmNKjAOOjZUCSVpqZuqjsxb\n kwxkjN28NSNC7vXoTlpLTV65o6nbMxpTVsKoCEIyWKrNBBDeVTbOjMkNy4qqzKfK\n O6p2EiWTrDI8POzR1Ks3IS0yJtmWSizxyWtzt8r2soCZu8bEcsiV/ab/kOsnVJGL\n gDLh/sW8lV1FMSQ/+v9pCyWGRiCKkmrWD9asQzDk/6PxPMNQJyem/CqdO7yDeg3u\n 46KxrEx9r1ozrmeQLqFOYmEl8ZEF6iUjawiPMHVRYUCLz0sEcwfhvRvDEqO6xEPy\n A==","X-Virus-Scanned":"amavisd-new at cebitec.uni-bielefeld.de","From":"Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>","To":"gcc-patches@gcc.gnu.org","Cc":"Iain Sandoe <iain@sandoe.co.uk>, John David Anglin\n <dave.anglin@bell.net>, Thomas Schwinge <tschwinge@baylibre.com>, David\n Edelsohn <dje.gcc@gmail.com>","Subject":"[PATCH 1/6] Remove HAVE_GNU_AS","Date":"Wed, 29 Apr 2026 16:00:16 +0200","Message-ID":"<ydda4ulamtr.fsf@CeBiTec.Uni-Bielefeld.DE>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","Content-Type":"multipart/mixed; boundary=\"=-=-=\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"This patch removes or replaces the remaining uses of HAVE_GNU_AS:\n\n* gcc.cc (asm_options) has a sub-spec to map the gcc -v/-w/-I options to\n  their assembler equivalents.  It is replaced by ASM_V_SPEC, defaulting\n  to the gas version.  Non-gas configurations define their own versions.\n\n* Darwin has ASM_OPTIONS which is identical to the default ASM_V_SPEC\n  and can just be removed.\n\n* sol2.h currently handles -v in ASM_SPEC_BASE.  I'll fully handle this\n  via ASM_V_SPEC in a follow-up patch.\n\n* ia64/hpux.h guards AS_NEEDS_DASH_FOR_PIPED_INPUT with !HAVE_GNU_AS,\n  but according to install.texi ia64-*-hpux* requires gas so this can\n  just go.\n\n* nvptx/nvptx.h handles the mapping in ASM_SPEC.  This is done in\n  ASM_V_SPEC now.  The nvptx as has no equivalents of -w and -I.\n\n* AIX as only supports -v and -W, so rs6000/aix.h gets a matching\n  ASM_V_SPEC.\n\nOk for trunk?\n\n\tRainer","diff":"# HG changeset patch\n# Parent  57fdbd314570a43cd237cc88aa77d09908bac9a0\nRemove HAVE_GNU_AS\n\ndiff --git a/gcc/config.in b/gcc/config.in\n--- a/gcc/config.in\n+++ b/gcc/config.in\n@@ -1610,12 +1610,6 @@\n #endif\n \n \n-/* Define to 1 if using GNU as. */\n-#ifndef USED_FOR_TARGET\n-#undef HAVE_GNU_AS\n-#endif\n-\n-\n /* Define if your system supports gnu indirect functions. */\n #ifndef USED_FOR_TARGET\n #undef HAVE_GNU_INDIRECT_FUNCTION\ndiff --git a/gcc/config/darwin.h b/gcc/config/darwin.h\n--- a/gcc/config/darwin.h\n+++ b/gcc/config/darwin.h\n@@ -663,21 +663,12 @@ extern GTY(()) int darwin_ms_struct;\n #define ASM_MMACOSX_VERSION_MIN_SPEC \" %<asm_macosx_version_min=* \"\n #endif\n \n-#if HAVE_GNU_AS\n-/* The options are added in gcc.cc for this case.  */\n-#define ASM_OPTIONS \"\"\n-#else\n-/* When we detect that we're cctools or llvm as, we need to insert the right\n-   additional options.  Actually, currently these are the same as GAS.  */\n-#define ASM_OPTIONS \"%{v} %{w:-W} %{I*}\"\n-#endif\n-\n #define AS_NEEDS_DASH_FOR_PIPED_INPUT\n \n /* Default Darwin ASM_SPEC, very simple. */\n #define ASM_SPEC \\\n \"%{static} -arch %(darwin_arch) \" \\\n-ASM_OPTIONS ASM_MMACOSX_VERSION_MIN_SPEC\n+ASM_MMACOSX_VERSION_MIN_SPEC\n \n #define ASM_DEBUG_SPEC  \"\"\n #undef  ASM_DEBUG_OPTION_SPEC\ndiff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h\n--- a/gcc/config/i386/darwin.h\n+++ b/gcc/config/i386/darwin.h\n@@ -105,7 +105,7 @@ along with GCC; see the file COPYING3.  \n #undef ASM_SPEC\n #define ASM_SPEC \\\n \"%{static} -arch %(darwin_arch) \" \\\n- ASM_OPTIONS ASM_MMACOSX_VERSION_MIN_SPEC EXTRA_ASM_OPTS \\\n+ ASM_MMACOSX_VERSION_MIN_SPEC EXTRA_ASM_OPTS \\\n \"%{!force_cpusubtype_ALL:-force_cpusubtype_ALL} \"\n \n #undef ENDFILE_SPEC\ndiff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h\n--- a/gcc/config/ia64/hpux.h\n+++ b/gcc/config/ia64/hpux.h\n@@ -62,10 +62,6 @@ do {\t\t\t\t\t\t\t\\\n #undef  ASM_EXTRA_SPEC\n #define ASM_EXTRA_SPEC \"%{milp32:-milp32} %{mlp64:-mlp64}\"\n \n-#ifndef HAVE_GNU_AS\n-#define AS_NEEDS_DASH_FOR_PIPED_INPUT\n-#endif\n-\n #ifndef CROSS_DIRECTORY_STRUCTURE\n #undef MD_EXEC_PREFIX\n #define MD_EXEC_PREFIX \"/usr/ccs/bin/\"\ndiff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h\n--- a/gcc/config/nvptx/nvptx.h\n+++ b/gcc/config/nvptx/nvptx.h\n@@ -31,9 +31,8 @@\n #define OPTION_DEFAULT_SPECS \\\n   { \"arch\", \"%{!misa=*:-misa=%(VALUE)}\" }, \\\n \n-/* Assembler supports '-v' option; handle similar to\n-   '../../gcc.cc:asm_options', 'HAVE_GNU_AS'.  */\n-#define ASM_SPEC \"%{v}\"\n+/* Assembler only supports '-v' option.  */\n+#define ASM_V_SPEC \"%{v}\"\n \n #define STARTFILE_SPEC \"%{mmainkernel:crt0.o%s}\"\n \ndiff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h\n--- a/gcc/config/rs6000/aix.h\n+++ b/gcc/config/rs6000/aix.h\n@@ -177,6 +177,8 @@\n #undef ASM_DEFAULT_SPEC\n #define ASM_DEFAULT_SPEC \"\"\n \n+#define ASM_V_SPEC \"%{v} %{w:-W}\"\n+\n /* Tell the assembler to assume that all undefined names are external.\n \n    Don't do this until the fixed IBM assembler is more generally available.\ndiff --git a/gcc/config/sol2.h b/gcc/config/sol2.h\n--- a/gcc/config/sol2.h\n+++ b/gcc/config/sol2.h\n@@ -447,9 +447,12 @@ along with GCC; see the file COPYING3.  \n #undef TARGET_ASM_ASSEMBLE_VISIBILITY\n #define TARGET_ASM_ASSEMBLE_VISIBILITY solaris_assemble_visibility\n \n-#define AS_NEEDS_DASH_FOR_PIPED_INPUT\n+/* Handled in ASM_SPEC_BASE.  */\n+#define ASM_V_SPEC \"\"\n \n+#define AS_NEEDS_DASH_FOR_PIPED_INPUT\n #endif\n+\n /* Solaris has an implementation of __enable_execute_stack.  */\n #define HAVE_ENABLE_EXECUTE_STACK\n \ndiff --git a/gcc/configure b/gcc/configure\n--- a/gcc/configure\n+++ b/gcc/configure\n@@ -13126,13 +13126,6 @@ cat >>confdefs.h <<_ACEOF\n _ACEOF\n \n \n-gnu_as_bool=`if test x\"$gas\" = x\"yes\"; then echo 1; else echo 0; fi`\n-\n-cat >>confdefs.h <<_ACEOF\n-#define HAVE_GNU_AS $gnu_as_bool\n-_ACEOF\n-\n-\n count=a\n for f in $host_xm_file; do\n \tcount=${count}x\ndiff --git a/gcc/configure.ac b/gcc/configure.ac\n--- a/gcc/configure.ac\n+++ b/gcc/configure.ac\n@@ -2035,9 +2035,6 @@ fi\n gnu_ld_bool=`if test x\"$gnu_ld\" = x\"yes\"; then echo 1; else echo 0; fi`\n AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld_bool, [Define to 1 if using GNU ld.])\n \n-gnu_as_bool=`if test x\"$gas\" = x\"yes\"; then echo 1; else echo 0; fi`\n-AC_DEFINE_UNQUOTED(HAVE_GNU_AS, $gnu_as_bool, [Define to 1 if using GNU as.])\n-\n count=a\n for f in $host_xm_file; do\n \tcount=${count}x\ndiff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi\n--- a/gcc/doc/tm.texi\n+++ b/gcc/doc/tm.texi\n@@ -232,6 +232,15 @@ See the file @file{sun3.h} for an exampl\n Do not define this macro if it does not need to do anything.\n @end defmac\n \n+@defmac ASM_V_SPEC\n+A C string constant that tells the GCC driver how to translate the\n+@option{-v}, @option{-w}, and @option{-I} options into their assembler\n+equivalents.\n+\n+Only define this macro if the default, which matches GNU as, isn't\n+appropriate.\n+@end defmac\n+\n @defmac ASM_FINAL_SPEC\n A C string constant that tells the GCC driver program how to\n run any programs which cleanup after the normal assembler.\ndiff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in\n--- a/gcc/doc/tm.texi.in\n+++ b/gcc/doc/tm.texi.in\n@@ -232,6 +232,15 @@ See the file @file{sun3.h} for an exampl\n Do not define this macro if it does not need to do anything.\n @end defmac\n \n+@defmac ASM_V_SPEC\n+A C string constant that tells the GCC driver how to translate the\n+@option{-v}, @option{-w}, and @option{-I} options into their assembler\n+equivalents.\n+\n+Only define this macro if the default, which matches GNU as, isn't\n+appropriate.\n+@end defmac\n+\n @defmac ASM_FINAL_SPEC\n A C string constant that tells the GCC driver program how to\n run any programs which cleanup after the normal assembler.\ndiff --git a/gcc/gcc.cc b/gcc/gcc.cc\n--- a/gcc/gcc.cc\n+++ b/gcc/gcc.cc\n@@ -709,6 +709,12 @@ proper position among the other output f\n #define ASM_SPEC \"\"\n #endif\n \n+/* config.h can define ASM_V_SPEC to pass equivalents of -v, -w (no warnings),\n+   and -I to the assembler.  */\n+#ifndef ASM_V_SPEC\n+#define ASM_V_SPEC \"%{v} %{w:-W} %{I*}\"\n+#endif\n+\n /* config.h can define ASM_FINAL_SPEC to run a post processor after\n    the assembler has run.  */\n #ifndef ASM_FINAL_SPEC\n@@ -1327,12 +1333,8 @@ static const char *cc1_options =\n \n static const char *asm_options =\n \"%{-target-help:%:print-asm-header()} \"\n-#if HAVE_GNU_AS\n-/* If GNU AS is used, then convert -w (no warnings), -I, and -v\n-   to the assembler equivalents.  */\n-\"%{v} %{w:-W} %{I*} \"\n-#endif\n-\"%(asm_debug_option)\"\n+ASM_V_SPEC\n+\" %(asm_debug_option)\"\n ASM_COMPRESS_DEBUG_SPEC\n \"%a %Y %{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O}\";\n \n","prefixes":["1/6"]}