aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2024-08-05 13:19:28 +0100
committerIain Sandoe <iain@sandoe.co.uk>2024-08-07 20:28:59 +0100
commit4cec7bc79db52bae159c3c60a415e2aea48051d8 (patch)
tree5864d831e5dd780397dc406146f4264302c02103
parentd1fc9816df81e953308428641685d6ec6d84c9ac (diff)
downloadgcc-4cec7bc79db52bae159c3c60a415e2aea48051d8.zip
gcc-4cec7bc79db52bae159c3c60a415e2aea48051d8.tar.gz
gcc-4cec7bc79db52bae159c3c60a415e2aea48051d8.tar.bz2
Darwin: Recognise -weak_framework in the driver [PR116237].
XCode compilers recognise the weak_framework linker option in the driver and forward it. This patch makes GCC adopt the same behaviour. PR target/116237 gcc/ChangeLog: * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for weak_framework. * config/darwin.opt: Handle weak_framework driver option. Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
-rw-r--r--gcc/config/darwin.h2
-rw-r--r--gcc/config/darwin.opt4
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index c09b9e9..3775990 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -264,6 +264,8 @@ extern GTY(()) int darwin_ms_struct;
"%{weak_reference_mismatches*:\
-Xlinker -weak_reference_mismatches -Xlinker %*} \
%<weak_reference_mismatches*", \
+ "%{weak_framework*: -Xlinker -weak_framework -Xlinker %*} \
+ %<weak_framework*", \
"%{whyload:-Xlinker -whyload} %<whyload", \
"%{whatsloaded:-Xlinker -whatsloaded} %<whatsloaded", \
"%{w:-Xlinker -w}", \
diff --git a/gcc/config/darwin.opt b/gcc/config/darwin.opt
index 307a760..1140480 100644
--- a/gcc/config/darwin.opt
+++ b/gcc/config/darwin.opt
@@ -381,6 +381,10 @@ unexported_symbols_list
Driver RejectNegative Separate
-unexported_symbols_list <filename> Do not export the global symbols listed in <filename>.
+weak_framework
+Driver RejectNegative Separate
+-weak_framework <framework> Make a weak link to the specified framework.
+
weak_reference_mismatches
Driver RejectNegative Separate
-weak_reference_mismatches <treatment> Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak.