This is the failure of the libada build when the compiler is configured with
--disable-shared in a multilib setup, a regression present on the mainline.
To be honest, I don't quite grasp why this doesn't also fail the same way in
default mode. While I was at it, I have done something I had wanted to do for
quite some time, namely having a 1-1 mapping between the Makefile targets in
libada/Makefile and ada/gcc-interface/Makefile for the library.
Bootstrapped/regtested on x86_64-suse-linux w/ and w/o --disable-shared and w/
and w/o --disable-ada, applied on the mainline.
2018-12-11 Eric Botcazou <ebotca...@adacore.com>
PR ada/88429
* configure.ac (default_gnatlib_target): Set to gnatlib instead of
gnatlib-plain if --disable-shared.
* configure: Regenerate.
* Makefile.in (all): Replace gnatlib prerequisite with libada.
(ADA_RTS_SUBDIR): Delete.
(libada): New target, renamed from...
(gnatlib): ...this. Merge with other library targets.
(gnatlib-plain): Delete.
(install-gnatlib): Rename to...
(install-libada): ...this.
(install): Replace install-gnatlib prerequisite with install-libada.
2018-12-11 Eric Botcazou <ebotca...@adacore.com>
PR ada/88429
* gcc-interface/Makefile.in (./stamp-gnatlib1-$(RTSDIR)): Also pass
MULTISUBDIR to sub-make and add quotes around $(THREAD_KIND).
(gnatlib-shared-dual): Also pass PICFLAG_FOR_TARGET to sub-make.
(gnatlib-sjlj): Also pass MULTISUBDIR to sub-make, but do not pass
PICFLAG_FOR_TARGET.
(gnatlib-zcx): Likewise.
--
Eric Botcazou
Index: libada/Makefile.in
===================================================================
--- libada/Makefile.in (revision 267029)
+++ libada/Makefile.in (working copy)
@@ -16,7 +16,7 @@
# <http://www.gnu.org/licenses/>.
# Default target; must be first.
-all: gnatlib
+all: libada
$(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
.PHONY: all
@@ -70,7 +70,6 @@ target_noncanonical:=@target_noncanonica
version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER)
libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR)
ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR))
-ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR))
# exeext should not be used because it's the *host* exeext. We're building
# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus
@@ -96,20 +95,12 @@ LIBADA_FLAGS_TO_PASS = \
"GCC_FOR_TARGET=$(CC)" \
"CFLAGS=$(CFLAGS)"
-# Rules to build gnatlib.
-.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool
-gnatlib: @default_gnatlib_target@
+.PHONY: libada gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx osconstool
-gnatlib-plain: osconstool $(GCC_DIR)/ada/Makefile
- test -f stamp-libada || \
- $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \
- && touch stamp-libada
- -rm -rf adainclude
- -rm -rf adalib
- $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude
- $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib
+# Rules to build and install libada.
+libada: @default_gnatlib_target@
-gnatlib-sjlj gnatlib-zcx gnatlib-shared: osconstool $(GCC_DIR)/ada/Makefile
+gnatlib gnatlib-shared gnatlib-sjlj gnatlib-zcx: osconstool $(GCC_DIR)/ada/Makefile
test -f stamp-libada || \
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \
&& touch stamp-libada
@@ -121,7 +112,7 @@ gnatlib-sjlj gnatlib-zcx gnatlib-shared:
osconstool:
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons
-install-gnatlib: $(GCC_DIR)/ada/Makefile
+install-libada: $(GCC_DIR)/ada/Makefile
$(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) install-gnatlib
# Check uninstalled version.
@@ -148,7 +139,7 @@ TAGS:
.PHONY: check installcheck info dvi pdf html
# Installation rules.
-install: install-gnatlib
+install: install-libada
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
install-strip: install
Index: libada/configure
===================================================================
--- libada/configure (revision 267029)
+++ libada/configure (working copy)
@@ -3264,7 +3264,7 @@ fi
if test ${enable_shared} = yes; then
default_gnatlib_target="gnatlib-shared"
else
- default_gnatlib_target="gnatlib-plain"
+ default_gnatlib_target="gnatlib"
fi
Index: libada/configure.ac
===================================================================
--- libada/configure.ac (revision 267029)
+++ libada/configure.ac (working copy)
@@ -129,7 +129,7 @@ AC_PROG_LN_S
if test ${enable_shared} = yes; then
default_gnatlib_target="gnatlib-shared"
else
- default_gnatlib_target="gnatlib-plain"
+ default_gnatlib_target="gnatlib"
fi
AC_SUBST([default_gnatlib_target])
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in (revision 267029)
+++ gcc/ada/gcc-interface/Makefile.in (working copy)
@@ -1,5 +1,5 @@
# Makefile for GNU Ada Compiler (GNAT).
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 1994-2018 Free Software Foundation, Inc.
#This file is part of GCC.
@@ -564,7 +564,7 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD
$(RM) ../stamp-gnatlib-$(RTSDIR)
../stamp-gnatlib1-$(RTSDIR): Makefile ../stamp-gnatlib2-$(RTSDIR)
- $(MAKE) THREAD_KIND=$(THREAD_KIND) setup-rts
+ $(MAKE) MULTISUBDIR="$(MULTISUBDIR)" THREAD_KIND="$(THREAD_KIND)" setup-rts
# Copy tsystem.h
$(CP) $(srcdir)/tsystem.h $(RTSDIR)
$(RM) ../stamp-gnatlib-$(RTSDIR)
@@ -688,6 +688,7 @@ gnatlib-shared-dual:
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
+ PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib-shared-default
@@ -804,8 +805,11 @@ gnatlib-shared:
# commenting the pragma instead of deleting the line, as the latter might
# result in getting multiple blank lines, hence possible style check errors.
gnatlib-sjlj:
- $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \
- THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
+ $(MAKE) $(FLAGS_TO_PASS) \
+ EH_MECHANISM="" \
+ MULTISUBDIR="$(MULTISUBDIR)" \
+ THREAD_KIND="$(THREAD_KIND)" \
+ ../stamp-gnatlib1-$(RTSDIR)
sed \
-e 's/Frontend_Exceptions.*/Frontend_Exceptions : constant Boolean := True;/' \
-e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := False;/' \
@@ -819,11 +823,14 @@ gnatlib-sjlj:
FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
- PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
+ gnatlib
gnatlib-zcx:
- $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="-gcc" \
- THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR)
+ $(MAKE) $(FLAGS_TO_PASS) \
+ EH_MECHANISM="-gcc" \
+ MULTISUBDIR="$(MULTISUBDIR)" \
+ THREAD_KIND="$(THREAD_KIND)" \
+ ../stamp-gnatlib1-$(RTSDIR)
sed \
-e 's/Frontend_Exceptions.*/Frontend_Exceptions : constant Boolean := False;/' \
-e 's/ZCX_By_Default.*/ZCX_By_Default : constant Boolean := True;/' \
@@ -837,7 +844,7 @@ gnatlib-zcx:
FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
- PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" gnatlib
+ gnatlib
# Compiling object files from source files.