public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r12-3669] Darwin, crts: Build Darwin10 unwinder shim as a library.
@ 2021-09-19 18:35 Iain D Sandoe
  0 siblings, 0 replies; only message in thread
From: Iain D Sandoe @ 2021-09-19 18:35 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:873854387865d18484bd0d39324773cd1e76df85

commit r12-3669-g873854387865d18484bd0d39324773cd1e76df85
Author: Iain Sandoe <iain@sandoe.co.uk>
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 <iain@sandoe.co.uk>
    
    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.

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 6396586c138..50524a51511 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -231,7 +231,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 432a3e1e38e..6c34b13d611 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -215,7 +215,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) $@


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-19 18:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-19 18:35 [gcc r12-3669] Darwin, crts: Build Darwin10 unwinder shim as a library Iain D Sandoe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).