{"id":2224926,"url":"http://patchwork.ozlabs.org/api/patches/2224926/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/2407300.ElGaqSPkdT@fomalhaut/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/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,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<2407300.ElGaqSPkdT@fomalhaut>","list_archive_url":null,"date":"2026-04-19T15:32:34","name":"[Ada] Fix link failure of GNAT tools on Windows hosts","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"a759c1cf3cad869ccf5c3c06f5986308d8b801c1","submitter":{"id":78832,"url":"http://patchwork.ozlabs.org/api/people/78832/?format=json","name":"Eric Botcazou","email":"botcazou@adacore.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/2407300.ElGaqSPkdT@fomalhaut/mbox/","series":[{"id":500515,"url":"http://patchwork.ozlabs.org/api/series/500515/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=500515","date":"2026-04-19T15:32:34","name":"[Ada] Fix link failure of GNAT tools on Windows hosts","version":1,"mbox":"http://patchwork.ozlabs.org/series/500515/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224926/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2224926/checks/","tags":{},"related":[],"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 secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=J8W55/qo;\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 secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=J8W55/qo","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=adacore.com","sourceware.org; spf=pass smtp.mailfrom=adacore.com","server2.sourceware.org;\n arc=none smtp.remote-ip=209.85.128.42"],"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 4fzCLX5CCvz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 01:33:08 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id CC1F84BA23D4\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 19 Apr 2026 15:33:06 +0000 (GMT)","from mail-wm1-f42.google.com (mail-wm1-f42.google.com\n [209.85.128.42])\n by sourceware.org (Postfix) with ESMTPS id 7F9CE4C91748\n for <gcc-patches@gcc.gnu.org>; Sun, 19 Apr 2026 15:32:38 +0000 (GMT)","by mail-wm1-f42.google.com with SMTP id\n 5b1f17b1804b1-488ad135063so17071615e9.0\n for <gcc-patches@gcc.gnu.org>; Sun, 19 Apr 2026 08:32:38 -0700 (PDT)","from fomalhaut.localnet ([2a01:e0a:107c:2f10:e654:e8ff:fe8f:2ce6])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4891bba6276sm6758605e9.0.2026.04.19.08.32.35\n for <gcc-patches@gcc.gnu.org>\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 19 Apr 2026 08:32:35 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org CC1F84BA23D4","OpenDKIM Filter v2.11.0 sourceware.org 7F9CE4C91748"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 7F9CE4C91748","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 7F9CE4C91748","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776612758; cv=none;\n b=DnagdCcTkAZCe7CN+H1V38XMYiVtO7wDxtVGx7psBIySbetmoB6qIIcwpgezeR4JB7Dh0IUXY9tyjvP+dEKrWhbHW7fqhi4y+jb6WzUKmZttksuKhzdT/xYsripnwz+zvdhjYYElVKp+xEFKUTfmgYCfDxaja2qBCmmpc6PRbXs=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776612758; c=relaxed/simple;\n bh=8TbDAB6sXGDaUqhTodyb5cjDyeFjv4ubdzwz4vnHu1o=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=iKWF5hRLmrDTadaQTsaElWp+rePAXT9dB702VNVBvcEvYTvflnWtAKoYXFnzzOGRTx7wQ9q+pGiU0BnXxGQqUUunuy3ANWYNEt+xys9JYh3OtcADnfC377iONuBKeDxtNw6BuiCng7kGGtxAo67mdmoikN3OuQ4S/4DnVrbJbEU=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=adacore.com; s=google; t=1776612757; x=1777217557; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=s5FEYYWI/2BYzvszqTWe7uu0EAdFHjhguJfQxMtA3d4=;\n b=J8W55/qoGaKccRye8xts1LVOC0DjSEfcjg8qk7AlJH/3dMq/5L1PD6ElYeLJjSmgIo\n AwbGn4QZ7NB9qTs/rdUYSFZnkpwt15hTJEY6xi7tky6SUf6go4/PmeFfpg4C3TV6bwM4\n Mr/iJeuNxuvngqJWzTBa0BI8oXe4ttRoFkgKf3h5fBYxThIQ4q4LFhunHkJx1fyXk+5v\n gzm73jxNavLjsjcNhuXPKJDFgyCi5F8MzznvQ+G/J+tmNBIackB01MgRyNYJruyW6vV5\n +j8dWD5A/rtI6TK6G6BlbdJFA5ZJn+vm0m1lPonBQoYQQLPbmJH781hvEtz4vRHhqPIW\n rBIA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776612757; x=1777217557;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=s5FEYYWI/2BYzvszqTWe7uu0EAdFHjhguJfQxMtA3d4=;\n b=lWCSf9Fv1zGuRpuUq4+uV2MSDjgonpPj/u6asDztPkld2XXEzW5w5GhOVnL2Dd4un1\n v+6qGFF/jXBMR/eWI8dJz44hJ9pTIGUhxW/ulwHUmbv5Yo3cxf3SzsCO5DWC5a28J91k\n 7xhztqNhV+tJ9iXQC3hduwlFzAdfvpvrdUF/cnTLgvMEF8HobTmOpNmPcZeqFr4mCjt0\n t/UHvmnEW3qacHhu6zMJ6wxreqsqg/6qhaVfgkZgek3tkVpeNFZcgbpGZtH+7bFYOStJ\n 6CE4jhXtuHXIx6l5uhoigL2y1GcleBZv2dgV1z3fLy8R64iLyLjBoVgDOLqMpMmGJ8Oe\n MATw==","X-Gm-Message-State":"AOJu0YyXttUYN0rfxnbMlO5OOBtOhP3KMEyRvSYJi8ycMhWOMyjsW2MC\n FCiTxoHQFpTm6Ixw8FOqDoX/qQm8DCyKjtYzqpVd2eVNgQ9+IskmY7tBkEQ30HnEMNLUi4FnGMx\n j98Q=","X-Gm-Gg":"AeBDieu+JgPorARCkqxfeZLU3C4drqQj1hTBgB38forPYRBcm+7L3aj8OtgRhiI5Urm\n HcNZDwl3FN2qZghFoOHtN+ViHc/ojahx+it2ivOvBKZiRVfJvhRzCJ0gxafuUmIkj10tX7DvIXB\n qDxQHIZVfHbgy8MN9LXwpX4BLbEhdFOX4vQ97YNLiJ8mwsk5hiVKuPW0kI9KDB6g7iNyV5kbq+0\n h34ETlbnHw75g0XAeImslCtKN9eKR0p/xXCqoctFz+oXvOtyxgVKMnuTjmbjNqKQRiuvkFDY8TZ\n fo61tiijEnkE2xksoFtM6/9IwBMSWkusYzPSh5Tfx2DbJujyVwX9IbbHMzwrA6pxnSDQEz5YY1a\n b0iH0ZHe7O6Q6AVbFRS5nlx3FnSc/wgDTF/pvn/0qN/xCZmmiIgzlnLXXNpSTQl2JvEh7fAS9de\n AEKE+PAzh+SHg7q6QGyjBSjUcb17zOha1O9M7O083UlL+q+DM=","X-Received":"by 2002:a05:600c:46cb:b0:488:ac01:72de with SMTP id\n 5b1f17b1804b1-488fb7451e4mr143453495e9.5.1776612757380;\n Sun, 19 Apr 2026 08:32:37 -0700 (PDT)","From":"Eric Botcazou <botcazou@adacore.com>","X-Google-Original-From":"Eric Botcazou <ebotcazou@adacore.com>","To":"gcc-patches@gcc.gnu.org","Subject":"[Ada] Fix link failure of GNAT tools on Windows hosts","Date":"Sun, 19 Apr 2026 17:32:34 +0200","Message-ID":"<2407300.ElGaqSPkdT@fomalhaut>","MIME-Version":"1.0","Content-Type":"multipart/mixed; boundary=\"nextPart5064798.GXAFRqVoOG\"","Content-Transfer-Encoding":"7Bit","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":"The Makefile correctly includes the xmake_file fragment, but it overrides the \nadjustment made to the LIBS variable.\n\nBootstrapped on x86-64/Linux and x86-64/Windows, applied on the mainline.\n\n\n2026-04-19  Eric Botcazou  <ebotcazou@adacore.com>\n\n\tPR ada/124918\n\t* gcc-interface/Makefile.in (TGT_LIB): Move up.\n\t(LIBBACKTRACE): Likewise.\n\t(LIBIBERTY): Likewise.\n\t(LIBGNAT): Likewise.\n\t(LIBS): Likewise.\n\t(TOOLS_LIBS): Use $(LIBS).\n\t(TOOLS1_LIBS): Delete.\n\t(../../gnatmake$(exeext)): Do not link with $(TOOLS1_LIBS).\n\t(../../gnatlink$(exeext)): Likewise.","diff":"diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in\nindex b194744c37c..6ff2074f04d 100644\n--- a/gcc/ada/gcc-interface/Makefile.in\n+++ b/gcc/ada/gcc-interface/Makefile.in\n@@ -182,6 +182,9 @@ LIBICONV_DEP = @LIBICONV_DEP@\n # Any system libraries needed just for GNAT.\n SYSLIBS = @GNAT_LIBEXC@\n \n+# Default is no TGT_LIB; one might be passed down or something\n+TGT_LIB =\n+\n # List extra gnattools\n EXTRA_GNATTOOLS =\n \n@@ -203,6 +206,21 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))\n # to deal with as it may conflict with the libgcc provided by the system).\n GCC_LINK_FLAGS=-static-libstdc++ -static-libgcc\n \n+# We need to link against libbacktrace because diagnostics use it\n+LIBBACKTRACE = ../../../libbacktrace/.libs/libbacktrace.a\n+\n+ifneq ($(enable_host_pie),)\n+LIBIBERTY = ../../../libiberty/pic/libiberty.a\n+LIBGNAT   = ../$(RTSDIR)/libgnat_pic.a\n+else\n+LIBIBERTY = ../../../libiberty/libiberty.a\n+LIBGNAT   = ../$(RTSDIR)/libgnat.a\n+endif\n+\n+# How to link with both our libraries and the system's installed libraries\n+LIBS = $(LIBGNAT) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) \\\n+  $(SYSLIBS) $(TGT_LIB)\n+\n # End of variables for you to override.\n \n all: all.indirect\n@@ -234,26 +252,9 @@ ALL_CPPFLAGS = $(CPPFLAGS)\n \n ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)\n \n-ifneq ($(enable_host_pie),)\n-LIBIBERTY = ../../libiberty/pic/libiberty.a\n-else\n-LIBIBERTY = ../../libiberty/libiberty.a\n-endif\n-\n-# We need to link against libbacktrace because diagnostic.c in\n-# libcommon.a uses it.\n-LIBBACKTRACE = ../../libbacktrace/.libs/libbacktrace.a\n-\n-# How to link with both our special library facilities\n-# and the system's installed libraries.\n-LIBS = $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) $(LIBIBERTY) $(SYSLIBS)\n-LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBBACKTRACE) $(LIBIBERTY)\n-# Default is no TGT_LIB; one might be passed down or something\n-TGT_LIB =\n TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \\\n   ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a \\\n-  $(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \\\n-  $(SYSLIBS) $(TGT_LIB)\n+  $(LIBS)\n \n # Specify the directories to be searched for header files.\n # Both . and srcdir are used, in that order,\n@@ -368,20 +369,8 @@ endif\n \n # Configuration of host tools\n \n-# Under linux, host tools need to be linked with -ldl\n-\n-ifeq ($(strip $(filter-out linux%,$(host_os))),)\n-   TOOLS1_LIBS=-ldl\n-endif\n-\n include $(fsrcdir)/ada/Makefile.rtl\n \n-ifneq ($(enable_host_pie),)\n-LIBGNAT=../$(RTSDIR)/libgnat_pic.a\n-else\n-LIBGNAT=../$(RTSDIR)/libgnat.a\n-endif\n-\n TOOLS_FLAGS_TO_PASS=\t\t\\\n \t\"CC=$(CC)\" \t\t\\\n \t\"CFLAGS=$(CFLAGS) $(PICFLAG)\"\t\\\n@@ -522,10 +511,10 @@ gnatlink-re: ../stamp-tools gnatmake-re\n \n # Likewise for the tools\n ../../gnatmake$(exeext): b_gnatm.o $(GNATMAKE_OBJS)\n-\t+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)\n+\t+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS)\n \n ../../gnatlink$(exeext): b_gnatl.o $(GNATLINK_OBJS)\n-\t+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)\n+\t+$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS)\n \n ../stamp-gnatlib-$(RTSDIR):\n \t@if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \\\n","prefixes":["Ada"]}