public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Binutils is broken with -j N
@ 2005-05-21 21:27 H. J. Lu
  2005-05-21 22:24 ` H. J. Lu
  0 siblings, 1 reply; 8+ messages in thread
From: H. J. Lu @ 2005-05-21 21:27 UTC (permalink / raw)
  To: binutils; +Cc: zack

This patch

http://sourceware.org/ml/binutils/2005-05/msg00582.html

doesn't support -j N. I got

make[3]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
Making info in po
make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
make[4]: Nothing to be done for `info'.
make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
  || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
  || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
rm -f ldver.texi
eval `grep '^ *VERSION=' /export/linux/src/binutils/binutils/ld/../bfd/configure`; \
  echo "@set VERSION $VERSION" > ldver.texi
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && cd /export/linux/src/binutils/binutils/ld && \
rm -rf $backupdir && mkdir $backupdir && \
for f in /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.info-[0-9] /export/linux/src/binutils/binutils/ld/ld.info-[0-9][0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9][0-9]; do \
  if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
cd "$am__cwd"; \
if makeinfo --split-size=5000000 -I /export/linux/src/binutils/binutils/ld -I /export/linux/src/binutils/binutils/ld/../bfd/doc  -I /export/linux/src/binutils/binutils/ld \
 -o /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.texinfo; \
then \
  rc=0; \
  cd /export/linux/src/binutils/binutils/ld; \
else \
  rc=$?; \
  cd /export/linux/src/binutils/binutils/ld && \
  $restore $backupdir/* `echo ".//export/linux/src/binutils/binutils/ld/ld.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
  || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
  || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
cp: `/export/linux/src/binutils/binutils/ld/gen-doc.texi' and `./configdoc.texi' are the same file
make[3]: *** [configdoc.texi] Error 1
make[3]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
make[2]: *** [all-ld] Error 2
make[2]: *** Waiting for unfinished jobs....


H.J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-21 21:27 Binutils is broken with -j N H. J. Lu
@ 2005-05-21 22:24 ` H. J. Lu
  2005-05-22  1:47   ` H. J. Lu
  0 siblings, 1 reply; 8+ messages in thread
From: H. J. Lu @ 2005-05-21 22:24 UTC (permalink / raw)
  To: binutils; +Cc: zack

On Sat, May 21, 2005 at 02:09:12PM -0700, H. J. Lu wrote:
> This patch
> 
> http://sourceware.org/ml/binutils/2005-05/msg00582.html
> 
> doesn't support -j N. I got
> 
> make[3]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> Making info in po
> make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
> make[4]: Nothing to be done for `info'.
> make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
> make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
>   || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
>   || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
> rm -f ldver.texi
> eval `grep '^ *VERSION=' /export/linux/src/binutils/binutils/ld/../bfd/configure`; \
>   echo "@set VERSION $VERSION" > ldver.texi
> restore=: && backupdir=".am$$" && \
> am__cwd=`pwd` && cd /export/linux/src/binutils/binutils/ld && \
> rm -rf $backupdir && mkdir $backupdir && \
> for f in /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.info-[0-9] /export/linux/src/binutils/binutils/ld/ld.info-[0-9][0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9][0-9]; do \
>   if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
> done; \
> cd "$am__cwd"; \
> if makeinfo --split-size=5000000 -I /export/linux/src/binutils/binutils/ld -I /export/linux/src/binutils/binutils/ld/../bfd/doc  -I /export/linux/src/binutils/binutils/ld \
>  -o /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.texinfo; \
> then \
>   rc=0; \
>   cd /export/linux/src/binutils/binutils/ld; \
> else \
>   rc=$?; \
>   cd /export/linux/src/binutils/binutils/ld && \
>   $restore $backupdir/* `echo ".//export/linux/src/binutils/binutils/ld/ld.info" | sed 's|[^/]*$||'`; \
> fi; \
> rm -rf $backupdir; exit $rc
> make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
>   || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
>   || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
> cp: `/export/linux/src/binutils/binutils/ld/gen-doc.texi' and `./configdoc.texi' are the same file
> make[3]: *** [configdoc.texi] Error 1
> make[3]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> make[2]: *** [all-ld] Error 2
> make[2]: *** Waiting for unfinished jobs....
> 
> 

The problem is "info" isn't a direct target. Make may start "info" and
"ld.1" at the same time. I will check in this patch to fix it.


H.J.
---
2005-05-21  H.J. Lu  <hongjiu.lu@intel.com>

	* Makefile.am (ld.1): Depend on "info".
	* Makefile.in: Regenerated.

--- ld/Makefile.am.j	2005-05-20 06:17:29.000000000 -0700
+++ ld/Makefile.am	2005-05-21 14:18:24.000000000 -0700
@@ -1699,6 +1699,8 @@ EXTRA_DIST = ldgram.c ldgram.h ldlex.c $
 diststuff: info $(EXTRA_DIST)
 all: info ld.1
 
+ld.1: info
+
 DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
 distclean-local:
 	rm -rf ldscripts
--- ld/Makefile.in.j	2005-05-20 06:17:29.000000000 -0700
+++ ld/Makefile.in	2005-05-21 14:19:19.000000000 -0700
@@ -2476,6 +2478,8 @@ install-data-local:
 install-data-local: install-info
 diststuff: info $(EXTRA_DIST)
 all: info ld.1
+
+ld.1: info
 distclean-local:
 	rm -rf ldscripts
 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-21 22:24 ` H. J. Lu
@ 2005-05-22  1:47   ` H. J. Lu
  2005-05-24  7:48     ` Richard Henderson
  0 siblings, 1 reply; 8+ messages in thread
From: H. J. Lu @ 2005-05-22  1:47 UTC (permalink / raw)
  To: binutils; +Cc: zack

On Sat, May 21, 2005 at 02:27:41PM -0700, H. J. Lu wrote:
> On Sat, May 21, 2005 at 02:09:12PM -0700, H. J. Lu wrote:
> > This patch
> > 
> > http://sourceware.org/ml/binutils/2005-05/msg00582.html
> > 
> > doesn't support -j N. I got
> > 
> > make[3]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> > Making info in po
> > make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
> > make[4]: Nothing to be done for `info'.
> > make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld/po'
> > make[4]: Entering directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> > ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
> >   || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
> >   || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
> > rm -f ldver.texi
> > eval `grep '^ *VERSION=' /export/linux/src/binutils/binutils/ld/../bfd/configure`; \
> >   echo "@set VERSION $VERSION" > ldver.texi
> > restore=: && backupdir=".am$$" && \
> > am__cwd=`pwd` && cd /export/linux/src/binutils/binutils/ld && \
> > rm -rf $backupdir && mkdir $backupdir && \
> > for f in /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.info-[0-9] /export/linux/src/binutils/binutils/ld/ld.info-[0-9][0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9] /export/linux/src/binutils/binutils/ld/ld.i[0-9][0-9]; do \
> >   if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
> > done; \
> > cd "$am__cwd"; \
> > if makeinfo --split-size=5000000 -I /export/linux/src/binutils/binutils/ld -I /export/linux/src/binutils/binutils/ld/../bfd/doc  -I /export/linux/src/binutils/binutils/ld \
> >  -o /export/linux/src/binutils/binutils/ld/ld.info /export/linux/src/binutils/binutils/ld/ld.texinfo; \
> > then \
> >   rc=0; \
> >   cd /export/linux/src/binutils/binutils/ld; \
> > else \
> >   rc=$?; \
> >   cd /export/linux/src/binutils/binutils/ld && \
> >   $restore $backupdir/* `echo ".//export/linux/src/binutils/binutils/ld/ld.info" | sed 's|[^/]*$||'`; \
> > fi; \
> > rm -rf $backupdir; exit $rc
> > make[4]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> > ln -s /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
> >   || ln /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi >/dev/null 2>&1 \
> >   || cp /export/linux/src/binutils/binutils/ld/gen-doc.texi ./configdoc.texi
> > cp: `/export/linux/src/binutils/binutils/ld/gen-doc.texi' and `./configdoc.texi' are the same file
> > make[3]: *** [configdoc.texi] Error 1
> > make[3]: Leaving directory `/export/build/linux/binutils-debug/build-i686-linux/ld'
> > make[2]: *** [all-ld] Error 2
> > make[2]: *** Waiting for unfinished jobs....
> > 
> > 
> 
> The problem is "info" isn't a direct target. Make may start "info" and
> "ld.1" at the same time. I will check in this patch to fix it.
> 
> 
> H.J.
> ---
> 2005-05-21  H.J. Lu  <hongjiu.lu@intel.com>
> 
> 	* Makefile.am (ld.1): Depend on "info".
> 	* Makefile.in: Regenerated.
> 

This is the real patch I checked in.


H.J.
----
Index: Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.177
retrieving revision 1.179
diff -u -p -r1.177 -r1.179
--- Makefile.am	19 May 2005 23:49:51 -0000	1.177
+++ Makefile.am	21 May 2005 22:22:19 -0000	1.179
@@ -1644,7 +1644,9 @@ ld.dvi: $(srcdir)/ld.texinfo configdoc.t
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-ld.1: $(srcdir)/ld.texinfo configdoc.texi ldver.texi
+# It depends on "info" instead of "configdoc.texi ldver.texi" to
+# support parallel build.
+ld.1: $(srcdir)/ld.texinfo info
 	touch $@
 	-$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
 	-($(POD2MAN) ld.pod | \

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-22  1:47   ` H. J. Lu
@ 2005-05-24  7:48     ` Richard Henderson
  2005-05-25  5:50       ` H. J. Lu
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2005-05-24  7:48 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils, zack

On Sat, May 21, 2005 at 03:24:03PM -0700, H. J. Lu wrote:
> +# It depends on "info" instead of "configdoc.texi ldver.texi" to
> +# support parallel build.

This commentary is not helpful at all.  Say *what specifically*
goes wrong if we don't have it.


r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-24  7:48     ` Richard Henderson
@ 2005-05-25  5:50       ` H. J. Lu
  2005-05-25  7:34         ` Richard Henderson
  0 siblings, 1 reply; 8+ messages in thread
From: H. J. Lu @ 2005-05-25  5:50 UTC (permalink / raw)
  To: Richard Henderson; +Cc: binutils, zack

On Mon, May 23, 2005 at 07:03:19PM -0700, Richard Henderson wrote:
> On Sat, May 21, 2005 at 03:24:03PM -0700, H. J. Lu wrote:
> > +# It depends on "info" instead of "configdoc.texi ldver.texi" to
> > +# support parallel build.
> 
> This commentary is not helpful at all.  Say *what specifically*
> goes wrong if we don't have it.

The current one has:

# Both info (ld.info) and ld.1 depend on configdoc.texi and ldver.texi.
# But info isn't a direct target. Make info-recursive to depend on
# ld.1 to support parallel build.
info-recursive: ld.1



H.J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-25  5:50       ` H. J. Lu
@ 2005-05-25  7:34         ` Richard Henderson
  2005-05-25 15:43           ` H. J. Lu
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2005-05-25  7:34 UTC (permalink / raw)
  To: H. J. Lu; +Cc: binutils, zack

On Tue, May 24, 2005 at 10:46:34PM -0700, H. J. Lu wrote:
> # But info isn't a direct target.

That still isn't informative.  What's important about that fact?

If you can't explain this, then I have no confidence that you
actually know what the problem is, and have fixed it, rather than
simply producing some patch that happens to remove the symptoms
by accident.  I should not have to pry this information from you.



r~

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-25  7:34         ` Richard Henderson
@ 2005-05-25 15:43           ` H. J. Lu
  2005-05-26 20:15             ` Maciej W. Rozycki
  0 siblings, 1 reply; 8+ messages in thread
From: H. J. Lu @ 2005-05-25 15:43 UTC (permalink / raw)
  To: Richard Henderson; +Cc: binutils, zack

On Tue, May 24, 2005 at 10:50:47PM -0700, Richard Henderson wrote:
> On Tue, May 24, 2005 at 10:46:34PM -0700, H. J. Lu wrote:
> > # But info isn't a direct target.
> 
> That still isn't informative.  What's important about that fact?
> 
> If you can't explain this, then I have no confidence that you
> actually know what the problem is, and have fixed it, rather than
> simply producing some patch that happens to remove the symptoms
> by accident.  I should not have to pry this information from you.
> 
> 

I changed:

all: info ld.1

ld.1: x

info: info-recursive

info-recursive:
	$(MAKE) info-am 

info-am: x

to:

all: info ld.1

ld.1: x

info-recursive: ld.1

info: info-recursive

info-recursive:
	$(MAKE) info-am 

info-am: x


H.J.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Binutils is broken with -j N
  2005-05-25 15:43           ` H. J. Lu
@ 2005-05-26 20:15             ` Maciej W. Rozycki
  0 siblings, 0 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2005-05-26 20:15 UTC (permalink / raw)
  To: H. J. Lu; +Cc: Richard Henderson, binutils, zack

On Wed, 25 May 2005, H. J. Lu wrote:

> I changed:
> 
> all: info ld.1
> 
> ld.1: x
> 
> info: info-recursive
> 
> info-recursive:
> 	$(MAKE) info-am 
> 
> info-am: x
> 
> to:
> 
> all: info ld.1
> 
> ld.1: x
> 
> info-recursive: ld.1
> 
> info: info-recursive
> 
> info-recursive:
> 	$(MAKE) info-am 
> 
> info-am: x

 This is all fiddling with internal undocumented (i.e. possibly 
version-specific) automake logic.  Which means it's quite fragile and has 
traditionally made updating to newer versions of autotools rather painful.  
E.g. you are not expected to override *-recursive targets.  Can't it 
actually be done using documented techniques?

  Maciej

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2005-05-26 19:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-21 21:27 Binutils is broken with -j N H. J. Lu
2005-05-21 22:24 ` H. J. Lu
2005-05-22  1:47   ` H. J. Lu
2005-05-24  7:48     ` Richard Henderson
2005-05-25  5:50       ` H. J. Lu
2005-05-25  7:34         ` Richard Henderson
2005-05-25 15:43           ` H. J. Lu
2005-05-26 20:15             ` Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).