--- gcc/jit/Make-lang.in.orig	2020-08-27 13:02:17.000000000 -0600
+++ gcc/jit/Make-lang.in	2020-08-27 13:29:30.000000000 -0600
@@ -40,16 +40,22 @@
 # into the jit rule, but that needs a little bit of work
 # to do the right thing within all.cross.
 
-LIBGCCJIT_LINKER_NAME = libgccjit.so
 LIBGCCJIT_VERSION_NUM = 0
 LIBGCCJIT_MINOR_NUM = 0
 LIBGCCJIT_RELEASE_NUM = 1
-LIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM)
-LIBGCCJIT_FILENAME = \
-  $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM)
 
-LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME)
-LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME)
+ifeq ($(strip $(filter-out darwin%,$(target_os))),)
+	LIBGCCJIT_LINKER_NAME = libgccjit.dylib
+	LIBGCCJIT_FILENAME = libgccjit.$(LIBGCCJIT_VERSION_NUM).dylib
+else
+	LIBGCCJIT_LINKER_NAME = libgccjit.so
+	LIBGCCJIT_SONAME = $(LIBGCCJIT_LINKER_NAME).$(LIBGCCJIT_VERSION_NUM)
+	LIBGCCJIT_FILENAME = \
+	  $(LIBGCCJIT_SONAME).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_RELEASE_NUM)
+
+	LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME)
+	LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME)
+endif
 
 # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and
 # LD_SONAME_OPTION depending if configure found them, using $(if)
@@ -278,12 +284,19 @@
 jit.install-common: installdirs
 	$(INSTALL_PROGRAM) $(LIBGCCJIT_FILENAME) \
 	  $(DESTDIR)/$(libdir)/$(LIBGCCJIT_FILENAME)
+ifeq ($(strip $(filter-out darwin%,$(target_os))),)
+	install_name_tool -id $(libdir)/$(LIBGCCJIT_FILENAME) $(DESTDIR)/$(libdir)/$(LIBGCCJIT_FILENAME)
+	ln -sf \
+	  $(LIBGCCJIT_FILENAME) \
+	  $(DESTDIR)/$(libdir)/$(LIBGCCJIT_LINKER_NAME)
+else
 	ln -sf \
 	  $(LIBGCCJIT_FILENAME) \
 	  $(DESTDIR)/$(libdir)/$(LIBGCCJIT_SONAME_SYMLINK)
 	ln -sf \
 	  $(LIBGCCJIT_SONAME_SYMLINK)\
 	  $(DESTDIR)/$(libdir)/$(LIBGCCJIT_LINKER_NAME_SYMLINK)
+endif
 	$(INSTALL_DATA) $(srcdir)/jit/libgccjit.h \
 	  $(DESTDIR)/$(includedir)/libgccjit.h
 	$(INSTALL_DATA) $(srcdir)/jit/libgccjit++.h \
