From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 594073858D34 for ; Mon, 15 Apr 2024 11:08:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 594073858D34 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 594073858D34 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::330 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713179291; cv=none; b=srh3Hw2Tw0wTr7TwakLIKwjKV/a6gKyjnk1HIM2fOteiOLo+i5YkVNoOs0CZvF5jnVzoei9mbEDejyZCyZ4P5ZhyptnB0pb3lbxJl5F7nOtbqsRV+U1Us+ydWp10LoMQ9UoWgMLJcWj98P648zIsW2BrsmkhwPbwpe3xf2CbNp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713179291; c=relaxed/simple; bh=rRY2MRTUP7BPggphJugpRjaTFIlhSnZz5xQwbgLglbQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=jlo3VkAqW1Dm2edSFjoqHYGXu1sRszxNe90jORO9Qe7QB8bTH+Hg1hnaO09MijxmiEzeK1V2NID9wWUG5ZKhnlWtONmoOFdQGq1NF5sR/fArM5uS55MeabWoSsGiUUksjQUfB+PfKs8Bmpp/Ij8KgMDJHAjMNxD8pKHjMYvlaH8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-41868bb713cso4543965e9.0 for ; Mon, 15 Apr 2024 04:08:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1713179279; x=1713784079; darn=gcc.gnu.org; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=DLtjk48AlwtvSU6Ale+yf2fdh745c12/yvj4205XPVU=; b=w/sZWMrjyUnKhPlJw34ttQZm21YD84qLmQrySOzFD94zaN+EN1nIf7yb+AXjcx1v0V EryCnbeAl6QvuAz6swLkzLonO+iQ5Ih8U93iuKd96wayxqL3G1VHuT2N25IOACxPyXaS 62VcmH9etvHYkH75/bWqIiiVOnEnbvwBe87Vo2L20CfWJYzOR8RTm5WwP4N7atPd0WcL NOJlKdrOVvywn0RD3PVSPobi23KdzUFa6YD17wnOK0/m8nEsDadNgzQ3EC6iyUPSgUXZ yopXPteCBD1ok2szCmpeSymBJLuYdYKXW8LXnZFmG2iZmxKTC5F+gRNyyf89MtJycKV7 wRGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713179279; x=1713784079; h=mime-version:message-id:date:user-agent:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DLtjk48AlwtvSU6Ale+yf2fdh745c12/yvj4205XPVU=; b=gwCiex/1W6qNcx5TSF+7WGMcjHAs82PG62Blsxu5EN402Pt26n/kUUUj3Xdh/TROH0 PrxZGE6XWmVSrbJsR0sG4yhV8QiSw16WCdc2MKV2ZVPdnULoTO0JeSBznqWtVgZ957nY KqV4Zb6Uu2A77Cr4x4CzJb0k8AHCYcTKF3CfEi2bpsfbZhmvnXkif18F149Q35/JkgDh mICtrQu8bXdfXEjesyeEijDNId5eEXqinYDiP1YPtDHkzSBmi3GuAEWNyaAxs+iviXsV S7YVoS/xfi2TpWpIFV4BEfbO2cZsunl+BkTSTQkw9bF1IYPf8DeuQCUyTTg3cJJR+AfP BWGA== X-Forwarded-Encrypted: i=1; AJvYcCVXrjWdrCpz60d08+/OE+RRFRWvYGxMdRNjRq50L93QqcUDpfqU/xBvctGBOmJloBg+Z1aYwNhfTDTbFYiIMkHqODF+PA== X-Gm-Message-State: AOJu0YzcxNCJyJgcOBODVmdnghUES3mfRNPf3MAX7dks1s3QCY9xO2Hr SZyTjMC2raKBY44ORbVuXcl5N1t4yy9rstTIW5x3WQUwOk3gJrEVg+kyJwtGs5fGMudWBq685XV PCeg= X-Google-Smtp-Source: AGHT+IGFpq/f6TcG5y51R3DVDHYfYpnJFAdPHLXbwBghvapwL+CpK5yXduaJ+8kYtOjeEnfCXdt3sA== X-Received: by 2002:a05:600c:19cc:b0:416:4973:4d87 with SMTP id u12-20020a05600c19cc00b0041649734d87mr8947227wmq.3.1713179278701; Mon, 15 Apr 2024 04:07:58 -0700 (PDT) Received: from euler.schwinge.homeip.net (p200300c8b70ce600fbf8323f8abe0da4.dip0.t-ipconnect.de. [2003:c8:b70c:e600:fbf8:323f:8abe:da4]) by smtp.gmail.com with ESMTPSA id ay36-20020a05600c1e2400b004186df974f1sm2175187wmb.33.2024.04.15.04.07.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Apr 2024 04:07:58 -0700 (PDT) From: Thomas Schwinge To: gcc-patches@gcc.gnu.org, gcc-rust@gcc.gnu.org, Pierre-Emmanuel Patry Cc: Arthur Cohen Subject: Re: [gcc r14-7544] gccrs: libproc_macro: Build statically In-Reply-To: <20240116174310.2CC5A3858439@sourceware.org> References: <20240116174310.2CC5A3858439@sourceware.org> User-Agent: Notmuch/0.30+8~g47a4bad (https://notmuchmail.org) Emacs/29.2 (x86_64-pc-linux-gnu) Date: Mon, 15 Apr 2024 13:07:49 +0200 Message-ID: <87h6g2evei.fsf@euler.schwinge.ddns.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi! On 2024-01-16T17:43:10+0000, Arthur Cohen via Gcc-cvs = wrote: > https://gcc.gnu.org/g:71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 > > commit r14-7544-g71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 > Author: Pierre-Emmanuel Patry > Date: Wed Apr 26 10:31:35 2023 +0200 > > gccrs: libproc_macro: Build statically >=20=20=20=20=20 > We do not need dynamic linking, all use case of this library cover can > be done statically hence the change. >=20=20=20=20=20 > gcc/rust/ChangeLog: >=20=20=20=20=20 > * Make-lang.in: Link against the static libproc_macro. > --- a/gcc/rust/Make-lang.in > +++ b/gcc/rust/Make-lang.in > @@ -182,11 +182,14 @@ RUST_ALL_OBJS =3D $(GRS_OBJS) $(RUST_TARGET_OBJS) >=20=20 > rust_OBJS =3D $(RUST_ALL_OBJS) rust/rustspec.o >=20=20 > +RUST_LDFLAGS =3D $(LDFLAGS) -L./../libgrust/libproc_macro > +RUST_LIBDEPS =3D $(LIBDEPS) ../libgrust/libproc_macro/libproc_macro.a > + > # The compiler itself is called crab1 > -crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(rust.= prev) > +crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(RUST_LIBDEPS) $(= rust.prev) > @$(call LINK_PROGRESS,$(INDEX.rust),start) > - +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ > - $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) $(BACKENDLIBS) > + +$(LLINKER) $(ALL_LINKERFLAGS) $(RUST_LDFLAGS) -o $@ \ > + $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) ../libgrust/libproc= _macro/libproc_macro.a $(BACKENDLIBS) > @$(call LINK_PROGRESS,$(INDEX.rust),end) The 'crab1' compiler is (at least potentially) just one of several executables that 'gcc/rust/Make-lang.in' may build, which may all have different library dependencies, etc. Instead of via generic 'RUST_[...]' variables, those dependencies etc. should therefore be specified as they are individually necessary. I've pushed to trunk branch the following clean-up commits, see attached: - commit cb70a49b30f0a22ec7a1b7df29c3ab370d603f90 "Remove 'libgrust/libpr= oc_macro_internal' from 'gcc/rust/Make-lang.in:RUST_LDFLAGS'" - commit f7c8fa7280c85cbdea45be9c09f36123ff16a78a "Inline 'gcc/rust/Make-= lang.in:RUST_LDFLAGS' into single user" - commit 24d92f65f9ed9b3c730c59f700ce2f5c038c8207 "Add 'gcc/rust/Make-lan= g.in:LIBPROC_MACRO_INTERNAL'" - commit e3fda76af4f342ad1ba8bd901a72d811e8357e99 "Inline 'gcc/rust/Make-= lang.in:RUST_LIBDEPS' into single user" Gr=C3=BC=C3=9Fe Thomas --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Remove-libgrust-libproc_macro_internal-from-gcc-rust.patch >From cb70a49b30f0a22ec7a1b7df29c3ab370d603f90 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Feb 2024 22:41:42 +0100 Subject: [PATCH 1/4] Remove 'libgrust/libproc_macro_internal' from 'gcc/rust/Make-lang.in:RUST_LDFLAGS' This isn't necessary, as the full path to 'libproc_macro_internal.a' is specified elsewhere. gcc/rust/ * Make-lang.in (RUST_LDFLAGS): Remove 'libgrust/libproc_macro_internal'. --- gcc/rust/Make-lang.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index 4d73412739d..e901668b93d 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -208,7 +208,7 @@ RUST_ALL_OBJS = $(GRS_OBJS) $(RUST_TARGET_OBJS) rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o -RUST_LDFLAGS = $(LDFLAGS) -L./../libgrust/libproc_macro_internal +RUST_LDFLAGS = $(LDFLAGS) RUST_LIBDEPS = $(LIBDEPS) ../libgrust/libproc_macro_internal/libproc_macro_internal.a # The compiler itself is called crab1 -- 2.34.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0002-Inline-gcc-rust-Make-lang.in-RUST_LDFLAGS-into-singl.patch >From f7c8fa7280c85cbdea45be9c09f36123ff16a78a Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Feb 2024 22:45:18 +0100 Subject: [PATCH 2/4] Inline 'gcc/rust/Make-lang.in:RUST_LDFLAGS' into single user gcc/rust/ * Make-lang.in (RUST_LDFLAGS): Inline into single user. --- gcc/rust/Make-lang.in | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index e901668b93d..ffeb325d6ce 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -208,13 +208,12 @@ RUST_ALL_OBJS = $(GRS_OBJS) $(RUST_TARGET_OBJS) rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o -RUST_LDFLAGS = $(LDFLAGS) RUST_LIBDEPS = $(LIBDEPS) ../libgrust/libproc_macro_internal/libproc_macro_internal.a # The compiler itself is called crab1 crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(RUST_LIBDEPS) $(rust.prev) @$(call LINK_PROGRESS,$(INDEX.rust),start) - +$(LLINKER) $(ALL_LINKERFLAGS) $(RUST_LDFLAGS) -o $@ \ + +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) ../libgrust/libproc_macro_internal/libproc_macro_internal.a $(BACKENDLIBS) @$(call LINK_PROGRESS,$(INDEX.rust),end) -- 2.34.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0003-Add-gcc-rust-Make-lang.in-LIBPROC_MACRO_INTERNAL.patch >From 24d92f65f9ed9b3c730c59f700ce2f5c038c8207 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Feb 2024 22:51:24 +0100 Subject: [PATCH 3/4] Add 'gcc/rust/Make-lang.in:LIBPROC_MACRO_INTERNAL' ... to avoid verbatim repetition. gcc/rust/ * Make-lang.in (LIBPROC_MACRO_INTERNAL): New. (RUST_LIBDEPS, crab1$(exeext)): Use it. --- gcc/rust/Make-lang.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index ffeb325d6ce..b8bfe01ce59 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -208,13 +208,15 @@ RUST_ALL_OBJS = $(GRS_OBJS) $(RUST_TARGET_OBJS) rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o -RUST_LIBDEPS = $(LIBDEPS) ../libgrust/libproc_macro_internal/libproc_macro_internal.a +LIBPROC_MACRO_INTERNAL = ../libgrust/libproc_macro_internal/libproc_macro_internal.a + +RUST_LIBDEPS = $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) # The compiler itself is called crab1 crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(RUST_LIBDEPS) $(rust.prev) @$(call LINK_PROGRESS,$(INDEX.rust),start) +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) ../libgrust/libproc_macro_internal/libproc_macro_internal.a $(BACKENDLIBS) + $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) $(LIBPROC_MACRO_INTERNAL) $(BACKENDLIBS) @$(call LINK_PROGRESS,$(INDEX.rust),end) # Build hooks. -- 2.34.1 --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0004-Inline-gcc-rust-Make-lang.in-RUST_LIBDEPS-into-singl.patch >From e3fda76af4f342ad1ba8bd901a72d811e8357e99 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 28 Feb 2024 23:06:25 +0100 Subject: [PATCH 4/4] Inline 'gcc/rust/Make-lang.in:RUST_LIBDEPS' into single user gcc/rust/ * Make-lang.in (RUST_LIBDEPS): Inline into single user. --- gcc/rust/Make-lang.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index b8bfe01ce59..8db04163618 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -210,10 +210,8 @@ rust_OBJS = $(RUST_ALL_OBJS) rust/rustspec.o LIBPROC_MACRO_INTERNAL = ../libgrust/libproc_macro_internal/libproc_macro_internal.a -RUST_LIBDEPS = $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) - # The compiler itself is called crab1 -crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(RUST_LIBDEPS) $(rust.prev) +crab1$(exeext): $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBDEPS) $(LIBPROC_MACRO_INTERNAL) $(rust.prev) @$(call LINK_PROGRESS,$(INDEX.rust),start) +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ $(RUST_ALL_OBJS) attribs.o $(BACKEND) $(LIBS) $(LIBPROC_MACRO_INTERNAL) $(BACKENDLIBS) -- 2.34.1 --=-=-=--