Index: gcc/gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc.orig/gcc/ada/gcc-interface/Makefile.in
+++ gcc/gcc/ada/gcc-interface/Makefile.in
@@ -534,15 +534,15 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
 	for file in gnat gnarl; do \
 	   if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \
 	      $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
-			 $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
+			 $(DESTDIR)$(ADA_RTL_DSO_DIR); \
 	   fi; \
 	   if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \
 	      $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \
-	      $(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \
+	      $(DESTDIR)$(ADA_RTL_DSO_DIR)/lib$${file}$(soext); \
 	   fi; \
 	   if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \
 	      $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \
-	        $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
+	        $(DESTDIR)$(ADA_RTL_DSO_DIR); \
 	   fi; \
 	done
 # This copy must be done preserving the date on the original file.
@@ -882,6 +882,7 @@ b_gnatm.o : b_gnatm.adb
 
 ADA_INCLUDE_DIR = $(libsubdir)/adainclude
 ADA_RTL_OBJ_DIR = $(libsubdir)/adalib
+ADA_RTL_DSO_DIR = $(toolexeclibdir)
 
 # Special flags
 
Index: gcc/libada/Makefile.in
===================================================================
--- gcc.orig/libada/Makefile.in
+++ gcc/libada/Makefile.in
@@ -38,6 +38,8 @@ target = @target@
 prefix = @prefix@
 
 # Nonstandard autoconf-set variables.
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
 enable_shared = @enable_shared@
 
 LN_S=@LN_S@
@@ -88,6 +90,7 @@ LIBADA_FLAGS_TO_PASS = \
         "TRACE=$(TRACE)" \
         "MULTISUBDIR=$(MULTISUBDIR)" \
         "libsubdir=$(libsubdir)" \
+        "toolexeclibdir=$(toolexeclibdir)" \
         "objext=$(objext)" \
         "prefix=$(prefix)" \
         "exeext=.exeext.should.not.be.used " \
Index: gcc/libada/configure
===================================================================
--- gcc.orig/libada/configure
+++ gcc/libada/configure
@@ -702,6 +702,7 @@ ac_subst_files=''
 ac_user_opts='
 enable_option_checking
 with_build_libsubdir
+enable_version_specific_runtime_libs
 enable_maintainer_mode
 enable_multilib
 enable_shared
@@ -1325,6 +1326,9 @@ if test -n "$ac_init_help"; then
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-version-specific-runtime-libs
+                          specify that runtime libraries should be installed
+                          in a compiler-specific directory
   --enable-maintainer-mode
                           enable make rules and dependencies not useful (and
                           sometimes confusing) to the casual installer
@@ -2215,6 +2219,22 @@ target_subdir=${target_noncanonical}
 
 
 # Command-line options.
+
+# Check whether --enable-version-specific-runtime-libs was given.
+if test "${enable_version_specific_runtime_libs+set}" = set; then :
+  enableval=$enable_version_specific_runtime_libs; case "$enableval" in
+     yes|no)
+       ;;
+     *)
+       as_fn_error $? "--enable-version-specific-runtime-libs must be yes or no" "$LINENO" 5
+       ;;
+   esac
+else
+  enable_version_specific_runtime_libs=yes
+
+fi
+
+
 # Very limited version of AC_MAINTAINER_MODE.
 # Check whether --enable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then :
@@ -2273,8 +2293,8 @@ case ${enable_version_specific_runtime_l
     # Need the gcc compiler version to know where to install libraries
     # and header files if --enable-version-specific-runtime-libs option
     # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+    toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
+    toolexeclibdir='$(toolexecdir)/$(version)$(MULTISUBDIR)/adalib'
     ;;
   no)
     if test -n "$with_cross_host" &&
@@ -2295,7 +2315,6 @@ case ${enable_version_specific_runtime_l
 esac
 
 
-#TODO: toolexeclibdir is currently disregarded
 
 # Check the compiler.
 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
Index: gcc/libada/configure.ac
===================================================================
--- gcc.orig/libada/configure.ac
+++ gcc/libada/configure.ac
@@ -38,6 +38,21 @@ ACX_NONCANONICAL_TARGET
 GCC_TOPLEV_SUBDIRS
 
 # Command-line options.
+
+AC_ARG_ENABLE(version-specific-runtime-libs,
+  [AS_HELP_STRING([--enable-version-specific-runtime-libs],
+		  [specify that runtime libraries should be
+		   installed in a compiler-specific directory])],
+  [case "$enableval" in
+     yes|no)
+       ;;
+     *)
+       AC_MSG_ERROR([--enable-version-specific-runtime-libs must be yes or no])
+       ;;
+   esac],
+  [enable_version_specific_runtime_libs=yes]
+)
+
 # Very limited version of AC_MAINTAINER_MODE.
 AC_ARG_ENABLE([maintainer-mode],
   [AC_HELP_STRING([--enable-maintainer-mode],
@@ -60,8 +75,8 @@ case ${enable_version_specific_runtime_l
     # Need the gcc compiler version to know where to install libraries
     # and header files if --enable-version-specific-runtime-libs option
     # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
+    toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
+    toolexeclibdir='$(toolexecdir)/$(version)$(MULTISUBDIR)/adalib'
     ;;
   no)
     if test -n "$with_cross_host" &&
@@ -82,7 +97,6 @@ case ${enable_version_specific_runtime_l
 esac
 AC_SUBST(toolexecdir)
 AC_SUBST(toolexeclibdir)
-#TODO: toolexeclibdir is currently disregarded
 
 # Check the compiler.
 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
