diff --git a/pkgs/development/compilers/gcc/patches/14/gcc-darwin-remove-coreservices.patch b/pkgs/development/compilers/gcc/patches/14/gcc-darwin-remove-coreservices.patch new file mode 100644 index 000000000000..9d21a3c4c438 --- /dev/null +++ b/pkgs/development/compilers/gcc/patches/14/gcc-darwin-remove-coreservices.patch @@ -0,0 +1,39 @@ +diff --git a/config/intlmacosx.m4 b/config/intlmacosx.m4 +index 3141bf8c5..7a31862b9 100644 +--- a/config/intlmacosx.m4 ++++ b/config/intlmacosx.m4 +@@ -63,7 +63,7 @@ AC_DEFUN([gt_INTL_MACOSX], + dnl and we have to link it in explicitly, otherwise an exception + dnl NSInvalidArgumentException "unrecognized selector sent to instance" + dnl occurs. +- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) + ]) +diff --git a/gcc/configure b/gcc/configure +index 23da7d55d..8bd09364d 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -13932,7 +13932,7 @@ $as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then +- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + +diff --git a/libcpp/configure b/libcpp/configure +index 32d6aaa30..592c33881 100755 +--- a/libcpp/configure ++++ b/libcpp/configure +@@ -7570,7 +7570,7 @@ $as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then +- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" ++ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + diff --git a/pkgs/development/compilers/gcc/patches/14/gnat-darwin-dylib-install-name-14.patch b/pkgs/development/compilers/gcc/patches/14/gnat-darwin-dylib-install-name-14.patch new file mode 100644 index 000000000000..195f7b10c348 --- /dev/null +++ b/pkgs/development/compilers/gcc/patches/14/gnat-darwin-dylib-install-name-14.patch @@ -0,0 +1,21 @@ +diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in +index 0666fc00b..0e2d53eb8 100644 +--- a/gcc/ada/gcc-interface/Makefile.in ++++ b/gcc/ada/gcc-interface/Makefile.in +@@ -793,14 +793,14 @@ gnatlib-shared-darwin: + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ + $(SO_OPTS) \ +- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ + -nodefaultrpaths -Wl,-rpath,@loader_path/,-rpath,@loader_path/.. \ + -Wl,-rpath,@loader_path/../../../../ $(MISCLIB) + cd $(RTSDIR); $(GCC_FOR_ADA_RTS) -dynamiclib $(PICFLAG_FOR_TARGET) \ + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + $(GNATRTL_TASKING_OBJS) \ + $(SO_OPTS) \ +- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ + -nodefaultrpaths -Wl,-rpath,@loader_path/,-rpath,@loader_path/.. \ + -Wl,-rpath,@loader_path/../../../../ \ + $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix index eb38c3a1fe88..13b4bcbf6f8c 100644 --- a/pkgs/development/compilers/gcc/patches/default.nix +++ b/pkgs/development/compilers/gcc/patches/default.nix @@ -133,8 +133,12 @@ in # Fix detection of bootstrap compiler Ada support (cctools as) on Nix Darwin ++ optional (atLeast12 && stdenv.isDarwin && langAda) ./ada-cctools-as-detection-configure.patch +# Remove CoreServices on Darwin, as it is only needed for macOS SDK 14+ +++ optional (atLeast14 && stdenv.isDarwin && langAda) ../patches/14/gcc-darwin-remove-coreservices.patch + # Use absolute path in GNAT dylib install names on Darwin ++ optionals (stdenv.isDarwin && langAda) ({ + "14" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; "13" = [ ./gnat-darwin-dylib-install-name-13.patch ]; "12" = [ ./gnat-darwin-dylib-install-name.patch ]; }.${majorVersion} or [])