This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix make -j4 installs
- From: mrs at apple dot com (Mike Stump)
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 7 Dec 2006 18:44:28 -0800 (PST)
- Subject: 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
--------------