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 <i...@sandoe.co.uk> --- gcc/config/darwin.h | 2 ++ gcc/config/darwin.opt | 4 ++++ 2 files changed, 6 insertions(+) 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. -- 2.39.2 (Apple Git-143)