0
0
mirror of https://gcc.gnu.org/git/gcc.git synced 2025-01-02 17:13:46 +08:00
gcc/libgcc/config/t-darwin
Iain Sandoe b9873b4e2c libgcc, emutls: Allow building weak definitions of the emutls functions.
In order to better support use of the emulated TLS between objects with
DSO dependencies and static-linked libgcc, allow a target to make weak
definitions.

Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

libgcc/ChangeLog:

	* config/t-darwin: Build weak-defined emutls objects.
	* emutls.c (__emutls_get_address): Add optional attributes.
	(__emutls_register_common): Likewise.
	(EMUTLS_ATTR): New.
2021-11-19 19:53:39 +00:00

43 lines
1.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Set this as a minimum (unless overriden by arch t-files) since it's a
# reasonable lowest common denominator that works for all our archs.
HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
crt3.o: $(srcdir)/config/darwin-crt3.c
$(crt_compile) -mmacosx-version-min=10.4 -c $<
crttms.o: $(srcdir)/config/darwin-crt-tm.c
$(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
crttme.o: $(srcdir)/config/darwin-crt-tm.c
$(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
# Use unwind-dw2-fde-darwin
LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \
$(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
# Make emutls weak so that we can deal with -static-libgcc, override the
# hidden visibility when this is present in libgcc_eh.
emutls.o: HOST_LIBGCC2_CFLAGS += \
-DEMUTLS_ATTR='__attribute__((__weak__,__visibility__("default")))'
emutls_s.o: HOST_LIBGCC2_CFLAGS += \
-DEMUTLS_ATTR='__attribute__((__weak__,__visibility__("default")))'
# Make the emutls crt as a convenience lib so that it can be linked
# optionally, use the shared version so that we can link with DSO.
libemutls_w.a: emutls_s.o
$(AR_CREATE_FOR_TARGET) $@ $<
$(RANLIB_FOR_TARGET) $@
# 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) $@
# Symbols for all the sub-ports.
SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver