This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix PR ada/88429


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  <ebotcazou@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  <ebotcazou@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.
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]