diff mbox series

[pushed] Darwin: Recognise -weak_framework in the driver [PR116237].

Message ID 20240807193054.88905-1-iain@sandoe.co.uk
State New
Headers show
Series [pushed] Darwin: Recognise -weak_framework in the driver [PR116237]. | expand

Commit Message

Iain Sandoe Aug. 7, 2024, 7:30 p.m. UTC
Tested on x86_64-darwin21, pushed to trunk, thanks
Iain

--- 8< ---

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>
---
 gcc/config/darwin.h   | 2 ++
 gcc/config/darwin.opt | 4 ++++
 2 files changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index c09b9e9dc94..377599074a7 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 307a760629b..114048045b9 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.