This is the mail archive of the gcc-bugs@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]

c++/1711: `make -j3 install' fails when $(prefix) directory doesn't exist



>Number:         1711
>Category:       c++
>Synopsis:       `make -j3 install' fails when $(prefix) directory doesn't exist
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 20 01:36:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jim Meyering
>Release:        2.97 20010119 (experimental)
>Organization:
>Environment:
System: Linux ixi.eng.ascend.com 2.2.17 #3 SMP Wed Sep 20 19:24:00 CEST 2000 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: /mirror/d/egcs/configure --disable-nls --prefix=/p/p/gcc-2001-01-20.07h44
>Description:
	A parallel install (a la `make -j3') fails when `--prefix'-specified
	directory doesn't exist.

	The problem is that the rules of the dependents of
	Makefile.in(install-common), c++.install-common and installdirs,
	would run in parallel, and at least on my dual-CPU system with
	make -j3, the c++.install-common rules would consistently run
	before the required directories had been created by installdirs.

>How-To-Repeat:
	./configure --prefix=/tmp/no-such-dir && make && make -j3 install
>Fix:


gcc/:

2001-01-20  Jim Meyering  <meyering@lucent.com>

	* Makefile.in (install-common): Don't depend on installdirs here.
	Instead, make each of the lang.install-common targets (e.g.,
	c++.install-common in cp/Make-lang.in) depend on it.

gcc/cp:

2001-01-20  Jim Meyering  <meyering@lucent.com>

	* Make-lang.in (c++.install-common): Depend on installdirs.

Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/Makefile.in,v
retrieving revision 1.589
diff -u -p -r1.589 Makefile.in
--- Makefile.in	2001/01/19 23:37:07	1.589
+++ Makefile.in	2001/01/20 09:08:42
@@ -2467,7 +2467,7 @@ installdirs:
 	-if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; chmod a+rx $(man1dir) ; fi
 
 # Install the compiler executables built during cross compilation.
-install-common: native installdirs $(EXTRA_PARTS) lang.install-common
+install-common: native $(EXTRA_PARTS) lang.install-common
 	for file in $(COMPILERS); do \
 	  if [ -f $$file ] ; then \
 	    rm -f $(libsubdir)/$$file; \
Index: cp/Make-lang.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/Make-lang.in,v
retrieving revision 1.73
diff -u -p -r1.73 Make-lang.in
--- cp/Make-lang.in	2001/01/15 03:33:53	1.73
+++ cp/Make-lang.in	2001/01/20 09:08:44
@@ -144,7 +144,7 @@ c++.install-normal:
 
 # Install the driver program as $(target)-g++
 # and also as either g++ (if native) or $(tooldir)/bin/g++.
-c++.install-common:
+c++.install-common: installdirs
 	-if [ -f cc1plus$(exeext) ] ; then \
 	  if [ -f g++-cross$(exeext) ] ; then \
 	    rm -f $(bindir)/$(GXX_CROSS_NAME)$(exeext); \
>Release-Note:
>Audit-Trail:
>Unformatted:

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