{"id":2230242,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230242/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/yddfr4d97zq.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":"<yddfr4d97zq.fsf@CeBiTec.Uni-Bielefeld.DE>","date":"2026-04-29T14:06:01","name":"[6/6] build: Remove --with-gnu-ld","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"3317b15de4e20dd9cc3a44d716ad91dd27427ab4","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/yddfr4d97zq.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/2230242/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230242/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=JF+iDYaX;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.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=JF+iDYaX","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 [38.145.34.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 4g5JyB5J49z1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 00:06:42 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id B766A4BB58DA\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 14:06:40 +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 8559D4BBC0EB;\n Wed, 29 Apr 2026 14:06:03 +0000 (GMT)","from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1])\n by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id AF539C23B9;\n Wed, 29 Apr 2026 16:06:02 +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 e55CjIRN8Xuk; Wed, 29 Apr 2026 16:06:02 +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 EA84CC2158;\n Wed, 29 Apr 2026 16:06:01 +0200 (CEST)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org B766A4BB58DA","OpenDKIM Filter v2.11.0 sourceware.org 8559D4BBC0EB"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 8559D4BBC0EB","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 8559D4BBC0EB","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777471563; cv=none;\n b=JSGLSv8tyXOY28K6CMtE/iPyNjOSCJXXvfT7Jt0ZoIjWIvv3ow2b2SGn1GEtpPvkOoXFxOH8phdsCyRcsADCIVlaG3/6hN+SPIguJA+dorthtsFKRCFg20bqncx6DBAGoJmJ9dOJGHtLjFrU+6sfyTrPHwZ4H9nX1NznJ8EfuKQ=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777471563; c=relaxed/simple;\n bh=Hoz3dDo2FvvH4BJj9fumXl5BRVckAvIwuPKeZ7stxuQ=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=PG/dGdqq5oSzunYA/4F8w/C28qnpJ32yyewmNlFXgk0Hz+sXMt7OoqT38BYksjZcsg+jtBpvu6s9pOLuclEmjbznqM5CewB0wymSRPhcBPB7ZVSy/dfNNRgksEU7vhd6MH5it/u96288x+YEGcMBQ570RRh4V3l9opB2TXv4OgM=","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=1777471562; bh=Hoz3d\n Do2FvvH4BJj9fumXl5BRVckAvIwuPKeZ7stxuQ=; b=JF+iDYaXZI2HQv3v3o2r2\n CPnJhHRHk0pQbv3sB0O9x9X6VMRoRKquULk9LKU/lIi7PtxEtpXRqDy0FTLQvuEA\n 3S8fLO3QeZGli319wy4EKHQhk6P79d/vObtz/iLXZMkkBybuAjsDxqwSItKR6jx3\n j2xDjxmumIQ5KlNnt3YOwqtqc1segLzUH1ZK3WTS4wM8P7wR40qUIowLepqjIYHP\n hbUqkDLQh/pfeSbQQtXFGQDR1oF748dGRgggrNH55IwnbJLDVqrkTUcbOCVLKVk8\n fKsVviMU6sgB3Brdc8f09U1pw4rS9i2DWwfY8dIumaIpqZREjYviqMZE8qYnbwti\n w==","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":"Alexandre Oliva <aoliva@gcc.gnu.org>, Sandra Loosemore\n <sloosemore@baylibre.com>","Subject":"[PATCH 6/6] build: Remove --with-gnu-ld","Date":"Wed, 29 Apr 2026 16:06:01 +0200","Message-ID":"<yddfr4d97zq.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":"Like the gas case, after the removal of HAVE_GNU_LD and the gnu_ld\nvariable, the --with-gnu-ld option has become unnecessary, too, so this\npatch removes it together with the gnu_ld_flag variable.\n\nGiven that the vast majority of configurations use GNU ld or a\ncompatible linker, the GNU ld annotation to the DEFAULT_LINKER configure\nmessage carries little additional information and is also removed.\n\nOk for trunk?\n\n\tRainer","diff":"# HG changeset patch\n# Parent  d7785a632dccaa74172e4ff7531d10e43b894896\nbuild: Remove --with-gnu-ld\n\ndiff --git a/contrib/config-list.mk b/contrib/config-list.mk\n--- a/contrib/config-list.mk\n+++ b/contrib/config-list.mk\n@@ -99,7 +99,7 @@ LIST = \\\n   sh-rtems sh-wrs-vxworks sparc-elf \\\n   sparc-leon-elf sparc-rtems sparc-linux-gnu \\\n   sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \\\n-  sparc64-sun-solaris2.11OPT-with-gnu-ldOPT-enable-threads=posix \\\n+  sparc64-sun-solaris2.11OPT-enable-threads=posix \\\n   sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux \\\n   sparc64-netbsd sparc64-openbsd \\\n   v850e1-elf v850e-elf v850-elf v850-rtems vax-linux-gnu \\\ndiff --git a/contrib/regression/btest-gcc.sh b/contrib/regression/btest-gcc.sh\n--- a/contrib/regression/btest-gcc.sh\n+++ b/contrib/regression/btest-gcc.sh\n@@ -138,10 +138,9 @@ if [ $H_HOST = $H_TARGET ] ; then\n     make $dashj all || exit 1\n   fi\n else\n-  withopt=\"--with-gnu-ld\"\n   case \"$H_TARGET\" in\n     *-linux*) ;;\n-    *) withopt=\"$withopt --with-newlib\";;\n+    *) withopt=\"--with-newlib\";;\n   esac\n   $SOURCE/configure --prefix=$PREFIX --target=$H_TARGET $withopt || exit 1\n   make $dashj || exit 1\ndiff --git a/gcc/config.gcc b/gcc/config.gcc\n--- a/gcc/config.gcc\n+++ b/gcc/config.gcc\n@@ -54,10 +54,6 @@\n #\t\t\tsupport, the default value of\n #\t\t\t$default_gnu_indirect_function is set to\n #\t\t\t\"no\" except for targets which are known to be OK.\n-#\n-#  gnu_ld_flag\t\tOne of yes, no or \"\" depending on whether GNU ld was\n-#\t\t\texplicitly requested, explicitly not requested or\n-#\t\t\tunspecified.\n \n # This file sets the following shell variables for use by the\n # autoconf-generated configure script:\ndiff --git a/gcc/configure b/gcc/configure\n--- a/gcc/configure\n+++ b/gcc/configure\n@@ -971,7 +971,6 @@ with_gxx_include_dir\n with_gxx_libcxx_include_dir\n with_cpp_install_dir\n enable_generated_files_in_srcdir\n-with_gnu_ld\n with_ld\n with_demangler_in_ld\n with_dsymutil\n@@ -1012,6 +1011,7 @@ with_picolibc\n with_zstd\n with_zstd_include\n with_zstd_lib\n+with_gnu_ld\n enable_rpath\n with_libiconv_prefix\n with_libiconv_type\n@@ -1869,7 +1869,6 @@ Optional Packages:\n   --with-cpp-install-dir=DIR\n                           install the user visible C preprocessor in DIR\n                           (relative to PREFIX) as well as PREFIX/bin\n-  --with-gnu-ld           arrange to work with GNU ld\n   --with-ld               arrange to use the specified ld (full pathname)\n   --with-demangler-in-ld  try to use demangler in GNU ld\n   --with-dsymutil         arrange to use the specified dsymutil (full\n@@ -3925,16 +3924,6 @@ fi\n # Find default linker\n # -------------------\n \n-# With GNU ld\n-\n-# Check whether --with-gnu-ld was given.\n-if test \"${with_gnu_ld+set}\" = set; then :\n-  withval=$with_gnu_ld; gnu_ld_flag=\"$with_gnu_ld\"\n-else\n-  gnu_ld_flag=\n-fi\n-\n-\n case $target in\n     *darwin*)\n \tld64_flag=yes # Darwin can only use a ld64-compatible linker.\n@@ -3956,8 +3945,6 @@ fi\n if test x\"${DEFAULT_LINKER+set}\" = x\"set\"; then\n   if test ! -x \"$DEFAULT_LINKER\"; then\n     as_fn_error $? \"cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER\" \"$LINENO\" 5\n-  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then\n-    gnu_ld_flag=yes\n   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep 'PROJECT:ld\\(64\\)*-' > /dev/null; then\n     ld64_flag=yes\n   fi\n@@ -3971,13 +3958,8 @@ fi\n { $as_echo \"$as_me:${as_lineno-$LINENO}: checking whether a default linker was specified\" >&5\n $as_echo_n \"checking whether a default linker was specified... \" >&6; }\n if test x\"${DEFAULT_LINKER+set}\" = x\"set\"; then\n-  if test x\"$gnu_ld_flag\" = x\"no\"; then\n-    { $as_echo \"$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_LINKER)\" >&5\n+  { $as_echo \"$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_LINKER)\" >&5\n $as_echo \"yes ($DEFAULT_LINKER)\" >&6; }\n-  else\n-    { $as_echo \"$as_me:${as_lineno-$LINENO}: result: yes ($DEFAULT_LINKER - GNU ld)\" >&5\n-$as_echo \"yes ($DEFAULT_LINKER - GNU ld)\" >&6; }\n-  fi\n else\n   { $as_echo \"$as_me:${as_lineno-$LINENO}: result: no\" >&5\n $as_echo \"no\" >&6; }\n@@ -21942,7 +21924,7 @@ else\n   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2\n   lt_status=$lt_dlunknown\n   cat > conftest.$ac_ext <<_LT_EOF\n-#line 21945 \"configure\"\n+#line 21927 \"configure\"\n #include \"confdefs.h\"\n \n #if HAVE_DLFCN_H\n@@ -22048,7 +22030,7 @@ else\n   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2\n   lt_status=$lt_dlunknown\n   cat > conftest.$ac_ext <<_LT_EOF\n-#line 22051 \"configure\"\n+#line 22033 \"configure\"\n #include \"confdefs.h\"\n \n #if HAVE_DLFCN_H\ndiff --git a/gcc/configure.ac b/gcc/configure.ac\n--- a/gcc/configure.ac\n+++ b/gcc/configure.ac\n@@ -332,12 +332,6 @@ AC_SUBST(GENINSRC)\n # Find default linker\n # -------------------\n \n-# With GNU ld\n-AC_ARG_WITH(gnu-ld,\n-[AS_HELP_STRING([--with-gnu-ld], [arrange to work with GNU ld])],\n-gnu_ld_flag=\"$with_gnu_ld\",\n-gnu_ld_flag=)\n-\n case $target in\n     *darwin*)\n \tld64_flag=yes # Darwin can only use a ld64-compatible linker.\n@@ -356,8 +350,6 @@ DEFAULT_LINKER=\"$with_ld\")\n if test x\"${DEFAULT_LINKER+set}\" = x\"set\"; then\n   if test ! -x \"$DEFAULT_LINKER\"; then\n     AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])\n-  elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then\n-    gnu_ld_flag=yes\n   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep 'PROJECT:ld\\(64\\)*-' > /dev/null; then\n     ld64_flag=yes\n   fi\n@@ -367,11 +359,7 @@ fi\n \n AC_MSG_CHECKING([whether a default linker was specified])\n if test x\"${DEFAULT_LINKER+set}\" = x\"set\"; then\n-  if test x\"$gnu_ld_flag\" = x\"no\"; then\n-    AC_MSG_RESULT([yes ($DEFAULT_LINKER)])\n-  else\n-    AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])\n-  fi\n+  AC_MSG_RESULT([yes ($DEFAULT_LINKER)])\n else\n   AC_MSG_RESULT(no)\n fi\ndiff --git a/gcc/doc/install.texi b/gcc/doc/install.texi\n--- a/gcc/doc/install.texi\n+++ b/gcc/doc/install.texi\n@@ -1210,10 +1210,6 @@ is installed in the directories listed a\n assemblers installed and want to choose one that is not found by the\n above rules.\n \n-@item @anchor{with-gnu-ld}--with-gnu-ld\n-Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}\n-but for the linker.\n-\n @item --with-ld=@var{pathname}\n Same as @uref{#with-as,,@option{--with-as}}\n but for the linker.\n@@ -5284,7 +5280,7 @@ current GCC) is to be found in the GCC t\n @anchor{elf}\n @heading all ELF targets (SVR4, Solaris, etc.)\n C++ support is significantly better on ELF targets if you use the\n-@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of\n+GNU linker; duplicate copies of\n inlines, vtables and template instantiations will be discarded\n automatically.\n \ndiff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi\n--- a/gcc/doc/invoke.texi\n+++ b/gcc/doc/invoke.texi\n@@ -27223,8 +27223,6 @@ Generate (or don't) code for the GNU ass\n @item -mgnu-ld\n @itemx -mno-gnu-ld\n Generate (or don't) code for the GNU linker.  This is the default.\n-@c Also, this is the default if the configure option @option{--with-gnu-ld}\n-@c is used.\n \n @opindex mno-pic\n @item -mno-pic\n","prefixes":["6/6"]}