From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1698) id 8DDC13829BDD; Sun, 29 May 2022 19:10:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8DDC13829BDD MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Iain D Sandoe To: gcc-cvs@gcc.gnu.org Subject: [gcc r10-10791] Darwin, crts: Build Darwin10 unwinder shim as a library. X-Act-Checkin: gcc X-Git-Author: Iain Sandoe X-Git-Refname: refs/heads/releases/gcc-10 X-Git-Oldrev: b1c3f26297f35570b91f32bea0b13ab257db45de X-Git-Newrev: e1533cab245c561dc86c287807847b1de0db8804 Message-Id: <20220529191059.8DDC13829BDD@sourceware.org> Date: Sun, 29 May 2022 19:10:59 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 May 2022 19:10:59 -0000 https://gcc.gnu.org/g:e1533cab245c561dc86c287807847b1de0db8804 commit r10-10791-ge1533cab245c561dc86c287807847b1de0db8804 Author: Iain Sandoe Date: Sat Sep 18 17:08:42 2021 +0100 Darwin, crts: Build Darwin10 unwinder shim as a library. We have a small unwinder shim that is only used for Darwin10 (and only then in quite specific cases). To avoid linking this code for every executable or DSO, we can present the crt as a convenience library (rather than a .o file). Signed-off-by: Iain Sandoe gcc/ChangeLog: * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 unwinder shim as a convenience library. libgcc/ChangeLog: * config.host: Use convenience library for Darwin10 unwinder shim. * config/t-darwin: Build Darwin10 unwinder shim as a convenience library. (cherry picked from commit 873854387865d18484bd0d39324773cd1e76df85) Diff: --- gcc/config/darwin.h | 2 +- libgcc/config.host | 2 +- libgcc/config/t-darwin | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 64f12d76625..6bcd1d18ffc 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -230,7 +230,7 @@ extern GTY(()) int darwin_ms_struct; %{%:sanitize(address): -lasan } \ %{%:sanitize(undefined): -lubsan } \ %(link_ssp) \ - %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef.o) \ + %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \ %(link_gcc_c_sequence) \ }}}\ %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} %{F*} "\ diff --git a/libgcc/config.host b/libgcc/config.host index ab58027e68e..324bbdacbec 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -218,7 +218,7 @@ case ${host} in *-*-darwin*) asm_hidden_op=.private_extern tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin" - extra_parts="crt3.o d10-uwfef.o crttms.o crttme.o" + extra_parts="crt3.o libd10-uwfef.a crttms.o crttme.o" ;; *-*-dragonfly*) tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip" diff --git a/libgcc/config/t-darwin b/libgcc/config/t-darwin index 3b5e3428958..4b6317b5d85 100644 --- a/libgcc/config/t-darwin +++ b/libgcc/config/t-darwin @@ -18,3 +18,9 @@ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \ # Patch to __Unwind_Find_Enclosing_Function for Darwin10. d10-uwfef.o: $(srcdir)/config/darwin10-unwind-find-enc-func.c $(crt_compile) -mmacosx-version-min=10.6 -c $< + +# Using this crt as a library means that it will not be added to an exe +# (or module) unless needed. +libd10-uwfef.a: d10-uwfef.o + $(AR_CREATE_FOR_TARGET) $@ d10-uwfef.o + $(RANLIB_FOR_TARGET) $@