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 make -j4 installs


There is a subtle ordering issue on installs.  The problem is
install-gcc does:

install-include-dir: installdirs
	-rm -rf $(DESTDIR)$(libsubdir)/include
	mkdir $(DESTDIR)$(libsubdir)/include

but libssp and libgomp install into this directory.  When they run
while gcc's install is running, it can install into a non-existant
directory, yielding:

rm -rf /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/lib/gcc/powerpc-apple-darwin9/4.2.0/include
chmod 644 /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/powerpc-apple-darwin9/lib/libgomp.a
/usr/bin/install -c .libs/libssp.a /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/powerpc-apple-darwin9/lib/libssp.a
mkdir /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/lib/gcc/powerpc-apple-darwin9/4.2.0/include
cp: /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/lib/gcc/powerpc-apple-darwin9/4.2.0/include/ssp/_inst.7246_: No such file or directory
powerpc-apple-darwin9-ranlib -c /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/powerpc-apple-darwin9/lib/libgomp.a

chmod a+rx /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/lib/gcc/powerpc-apple-darwin9/4.2.0/include
chmod 644 /Volumes/mrs5/net/gcc-4.2/apple-build-fat/gcc.roots/gcc~obj/dst-i686-powerpc/usr/powerpc-apple-darwin9/lib/libssp.a
make[3]: *** [install-nobase_libsubincludeHEADERS] Error 1
make[3]: *** Waiting for unfinished jobs....

:-(


The below patch fixes this.  Checked on i686-apple-darwin9 (ok,
actuallly I checked on i686-apple-darwin9 native, i686-apple-darwin9 x
powerpc-apple-darwin9 and i686-apple-darwin9 x powerpc-apple-darwin9 x
powerpc-apple-darwin9, but you get the idea).

Checked into mainline and 4.2.


2006-12-07  Mike Stump  <mrs@apple.com>

	* Makefile.def (dependencies): Add dependency for
	install-target-libssp and install-target-libgomp on
	install-gcc.
	* Makefile.in: Regenerate.

Doing diffs in .:
--- Makefile.def.~1~	2006-12-01 14:58:51.000000000 -0800
+++ Makefile.def	2006-12-07 16:10:30.000000000 -0800
@@ -469,6 +469,10 @@ dependencies = { module=all-target-libob
 dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=all-target-libstdc++-v3; on=all-target-libiberty; };
 
+// Target libraries installed under gcc need to be installed before gcc
+dependencies = { module=install-target-libssp; on=install-gcc; };
+dependencies = { module=install-target-libgomp; on=install-gcc; };
+
 // Target modules in the 'src' repository.
 lang_env_dependencies = { module=examples; };
 lang_env_dependencies = { module=libtermcap; };
--- Makefile.in.~1~	2006-12-01 14:58:51.000000000 -0800
+++ Makefile.in	2006-12-07 16:10:38.000000000 -0800
@@ -43597,6 +43597,8 @@ configure-target-libobjc: maybe-configur
 all-target-libobjc: maybe-all-target-libiberty
 all-target-libobjc: maybe-all-target-boehm-gc
 all-target-libstdc++-v3: maybe-all-target-libiberty
+install-target-libssp: maybe-install-gcc
+install-target-libgomp: maybe-install-gcc
 all-target-libgloss: maybe-configure-target-newlib
 all-target-winsup: maybe-all-target-libiberty
 all-target-winsup: maybe-all-target-libtermcap
--------------


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