]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libada: Respect `--enable-version-specific-runtime-libs'
authorMaciej W. Rozycki <macro@wdc.com>
Tue, 1 Oct 2019 19:14:11 +0000 (19:14 +0000)
committerMaciej W. Rozycki <macro@gcc.gnu.org>
Tue, 1 Oct 2019 19:14:11 +0000 (19:14 +0000)
Respect the `--enable-version-specific-runtime-libs' configuration
option in libada/, so that shared gnatlib libraries will be installed
in non-version-specific $(toolexeclibdir) if requested.  In a
cross-compilation environment this helps setting up a consistent
sysroot, which can then be shared between the host and the target
system.

This lets one have `libgnarl-10.so' and `libgnat-10.so' installed in say
/usr/lib and /usr/$(target_alias)/lib for a native and a cross-build
respectively, rather than in /usr/lib/gcc/$(target_alias)/10.0.0/adalib.

Update the settings of $(toolexecdir) and $(toolexeclibdir), unused till
now, to keep the current arrangement in the version-specific case and
make the new option to be enabled by default, unlike with the other
target libraries, so as to keep existing people's build infrastructure
unaffected.

Of course if someone does use `--disable-version-specific-runtime-libs'
already, then the installation location of shared gnatlib libraries will
change, but presumably this is what they do want anyway as the current
situation where the option is ignored in libada/ only is an anomaly
really rather than one that is expected or desired.

gcc/ada/
* gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable.
(install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared
library installation.

libada/
* Makefile.in (toolexecdir, toolexeclibdir): New variables.
(LIBADA_FLAGS_TO_PASS): Add `toolexeclibdir'.
* configure.ac: Add `--enable-version-specific-runtime-libs'.
Update version-specific `toolexecdir' and `toolexeclibdir' from
ADA_RTL_OBJ_DIR from gcc/ada/gcc-interface/Makefile.in.
* configure: Regenerate.

From-SVN: r276424

gcc/ada/ChangeLog
gcc/ada/gcc-interface/Makefile.in
libada/ChangeLog
libada/Makefile.in
libada/configure
libada/configure.ac

index ecc2e25b8504f9abf12b4e7f3830a9b2cb5dd3d9..6a84b7b80f57b7e30a606de179e2e4daf49b21c6 100644 (file)
@@ -1,3 +1,9 @@
+2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
+
+       * gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable.
+       (install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared 
+       library installation.
+
 2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
 
        * gcc-interface/Make-lang.in (ada.install-common): Split into...
index d4c9d157d1cccbd4c3baf5e48e3bcd340990c49b..8deffb6eb36387e0a829d3ebfa08d1dc493582ad 100644 (file)
@@ -534,15 +534,15 @@ install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs
        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 a9fb7ef5b6fe57ecb58daebdb83a25db45a3788d..511df408a83b75c1e7cd380d67049e07d53f3e24 100644 (file)
@@ -1,3 +1,12 @@
+2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
+
+       * Makefile.in (toolexecdir, toolexeclibdir): New variables.
+       (LIBADA_FLAGS_TO_PASS): Add `toolexeclibdir'.
+       * configure.ac: Add `--enable-version-specific-runtime-libs'.
+       Update version-specific `toolexecdir' and `toolexeclibdir' from 
+       ADA_RTL_OBJ_DIR from gcc/ada/gcc-interface/Makefile.in.
+       * configure: Regenerate.
+
 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
 
        Update copyright years.
index 522b9207326e5eb4c616a333551e98bb59d769eb..985db0e7c0e4a339cb31605ad837a9280385b066 100644 (file)
@@ -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 743f98afd8eb96a4bef1779236f61b6f82a3d20f..a28be4068f09ff08c39d1fe388157b6d2c18e92c 100755 (executable)
@@ -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 @@ Optional Features:
   --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_libs} in
     # 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_libs} in
 esac
 
 
-#TODO: toolexeclibdir is currently disregarded
 
 # Check the compiler.
 # The same as in boehm-gc and libstdc++. Have to borrow it from there.
index 9495b23fe2368835ada619c9dcc596bf49d46348..bd245d4d95aa5e1be1949c267650fec0b9ec2c0b 100644 (file)
@@ -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_libs} in
     # 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_libs} in
 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.