This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Another paraallel build patch for libf2c
- To: gcc-patches at gcc dot gnu dot org
- Subject: Another paraallel build patch for libf2c
- From: "H . J . Lu" <hjl at valinux dot com>
- Date: Fri, 16 Jun 2000 11:45:12 -0700
gcc/f uses the same stamp file, lang-f77, for all targets. When you
do
# make -j
in gcc/f, the build may or may not work. It only happpens to me about
1 out of 5 builds on a dual-P/III machine. I can provide a build log
if asked. Here is the patch.
--
H.J. Lu (hjl@gnu.org)
--
2000-05-17 H.J. Lu (hjl@gnu.org)
* Make-lang.in: Use a unique stamp for each target to support
parallel make.
Index: gcc/f/Make-lang.in
===================================================================
RCS file: /work/cvs/gnu/egcs/gcc/f/Make-lang.in,v
retrieving revision 1.1.1.39
diff -u -p -r1.1.1.39 Make-lang.in
--- gcc/f/Make-lang.in 2000/05/12 17:52:13 1.1.1.39
+++ gcc/f/Make-lang.in 2000/05/17 21:17:29
@@ -312,10 +312,10 @@ f77.install-normal:
# run, since we use libsubdir to store our `flag' file, lang-f77.
f77.install-common: installdirs
case "$(LANGUAGES)" in \
- *[fF]77*) touch $(libsubdir)/lang-f77;; \
- *) rm -f $(libsubdir)/lang-f77;; \
+ *[fF]77*) touch $(libsubdir)/lang-f77.com;; \
+ *) rm -f $(libsubdir)/lang-f77.com;; \
esac
- -if [ -f $(libsubdir)/lang-f77 -a -f f771$(exeext) ] ; then \
+ -if [ -f $(libsubdir)/lang-f77.com -a -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
rm -f $(bindir)/$(G77_CROSS_NAME)$(exeext); \
$(INSTALL_PROGRAM) g77-cross$(exeext) $(bindir)/$(G77_CROSS_NAME)$(exeext); \
@@ -335,7 +335,7 @@ f77.install-common: installdirs
echo ' f77-install-ok in the source or build directory.)'; \
echo ''; \
else true; fi
- rm -f $(libsubdir)/lang-f77
+ rm -f $(libsubdir)/lang-f77.com
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install. The sed rule was copied from stmp-int-hdrs.
@@ -343,10 +343,10 @@ f77.install-common: installdirs
# run, since we use libsubdir to store our `flag' file, lang-f77.
f77.install-info: f77.info installdirs
case "$(LANGUAGES)" in \
- *[fF]77*) touch $(libsubdir)/lang-f77;; \
- *) rm -f $(libsubdir)/lang-f77;; \
+ *[fF]77*) touch $(libsubdir)/lang-f77.info;; \
+ *) rm -f $(libsubdir)/lang-f77.info;; \
esac
- if [ -f $(libsubdir)/lang-f77 -a -f f/g77.info ] ; then \
+ if [ -f $(libsubdir)/lang-f77.info -a -f f/g77.info ] ; then \
rm -f $(infodir)/g77.info*; \
for f in f/g77.info*; do \
realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \
@@ -354,22 +354,22 @@ f77.install-info: f77.info installdirs
done; \
chmod a-x $(infodir)/g77.info*; \
else true; fi
- @if [ -f $(libsubdir)/lang-f77 -a -f $(srcdir)/f/g77.info ] ; then \
+ @if [ -f $(libsubdir)/lang-f77.info -a -f $(srcdir)/f/g77.info ] ; then \
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
echo " install-info --info-dir=$(infodir) $(infodir)/g77.info"; \
install-info --info-dir=$(infodir) $(infodir)/g77.info || : ; \
else : ; fi; \
else : ; fi
- rm -f $(libsubdir)/lang-f77
+ rm -f $(libsubdir)/lang-f77.info
# Make sure `installdirs' target (from gcc Makefile) has been
# run, since we use libsubdir to store our `flag' file, lang-f77.
f77.install-man: $(srcdir)/f/g77.1 installdirs
case "$(LANGUAGES)" in \
- *[fF]77*) touch $(libsubdir)/lang-f77;; \
- *) rm -f $(libsubdir)/lang-f77;; \
+ *[fF]77*) touch $(libsubdir)/lang-f77.man;; \
+ *) rm -f $(libsubdir)/lang-f77.man;; \
esac
- -if [ -f $(libsubdir)/lang-f77 -a -f f771$(exeext) ] ; then \
+ -if [ -f $(libsubdir)/lang-f77.man -a -f f771$(exeext) ] ; then \
if [ -f g77-cross$(exeext) ] ; then \
rm -f $(man1dir)/$(G77_CROSS_NAME)$(manext); \
$(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(manext); \
@@ -380,29 +380,29 @@ f77.install-man: $(srcdir)/f/g77.1 insta
chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(manext); \
fi; \
else true; fi
- rm -f $(libsubdir)/lang-f77
+ rm -f $(libsubdir)/lang-f77.man
# Make sure `installdirs' target (from gcc Makefile) has been
# run, since we use libsubdir to store our `flag' file, lang-f77.
f77.uninstall: installdirs
case "$(LANGUAGES)" in \
- *[fF]77*) touch $(libsubdir)/lang-f77;; \
- *) rm -f $(libsubdir)/lang-f77;; \
+ *[fF]77*) touch $(libsubdir)/lang-f77.un;; \
+ *) rm -f $(libsubdir)/lang-f77.un;; \
esac
- @if [ -f $(libsubdir)/lang-f77 ] ; then \
+ @if [ -f $(libsubdir)/lang-f77.un ] ; then \
if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
echo " install-info --delete --info-dir=$(infodir) $(infodir)/g77.info"; \
install-info --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \
else : ; fi; \
else : ; fi
- -if [ -f $(libsubdir)/lang-f77 ]; then \
+ -if [ -f $(libsubdir)/lang-f77.un ]; then \
rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \
rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \
rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(manext); \
rm -rf $(man1dir)/$(G77_CROSS_NAME)$(manext); \
rm -rf $(infodir)/g77.info*; \
fi
- rm -f $(libsubdir)/lang-f77
+ rm -f $(libsubdir)/lang-f77.un
#
# Clean hooks:
# A lot of the ancillary files are deleted by the main makefile.