This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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]

Re: fix newlib parallel build issue: crt0


Ralf Wildenhues wrote:
Hello,

I noticed parallel build failures of the form:

| Making all in machine
| make[7]: Entering directory `/tmp/build/i686-pc-linux-gnu/newlib/libc/sys/linux/machine'
| gcc -m32 -L/tmp/build/./ld    -I/tmp/build/i686-pc-linux-gnu/newlib/targ-include -I/tmp/build...
| Making all in i386
| make[8]: Entering directory `/tmp/build/i686-pc-linux-gnu/newlib/libc/sys/linux/machine/i386'
| /bin/sh ./libtool --tag=CC --mode=compile gcc -m32 -L/tmp/build/./ld    -I/tmp/build/i686-pc-...
| libtool: compile:  gcc -m32 -L/tmp/build/./ld -I/tmp/build/i686-pc-linux-gnu/newlib/targ-incl...
| rm -f crt0.o
| ln machine/crt0.o crt0.o >/dev/null 2>/dev/null || cp machine/crt0.o crt0.o
| cp: cannot stat `machine/crt0.o': No such file or directory
| make[6]: *** [crt0.o] Error 1
| make[6]: *** Waiting for unfinished jobs....

Details aren't very interesting.  The reason for them is that there are
some
  all: crt0.o

rules.  These are problematic because 'all' is a target that automake
defines to depend upon the (undocumented) all-recursive rule which
recurses and eventually updates the (undocumented) 'all-am' rule
in the current directory.  With above, crt0.o is not guaranteed to
strictly run after subdirectories have been all processed.  'all-local'
is a documented way to extend the 'all-am' rule and is safe this way.

The patch below fixes this.  It also removes the 'all: Makefile' line in
iconvdata which should not be necessary, I think (otherwise, that would
be a bug in Automake).

OK to apply?

Yes. Thanks.
Thanks,
Ralf

newlib: all-local should depend upon crt0, not all.

newlib/ChangeLog:
2009-08-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* iconvdata/Makefile.am (all): Remove.
	* libc/sys/a29khif/Makefile.am (all-am): Rename from ...
	(all): ... this.
	* libc/sys/arc/Makefile.am: Likewise.
	* libc/sys/arm/Makefile.am: Likewise.
	* libc/sys/d10v/Makefile.am: Likewise.
	* libc/sys/decstation/Makefile.am: Likewise.
	* libc/sys/h8300hms/Makefile.am: Likewise.
	* libc/sys/h8500hms/Makefile.am: Likewise.
	* libc/sys/linux/Makefile.am: Likewise.
	* libc/sys/linux/machine/i386/Makefile.am: Likewise.
	* libc/sys/m88kbug/Makefile.am: Likewise.
	* libc/sys/mmixware/Makefile.am: Likewise.
	* libc/sys/netware/Makefile.am: Likewise.
	* libc/sys/rdos/Makefile.am: Likewise.
	* libc/sys/rtems/Makefile.am: Likewise.
	* libc/sys/sh/Makefile.am: Likewise.
	* libc/sys/sparc64/Makefile.am: Likewise.
	* libc/sys/sun4/Makefile.am: Likewise.
	* libc/sys/sysmec/Makefile.am: Likewise.
	* libc/sys/sysnec810/Makefile.am: Likewise.
	* libc/sys/sysnecv850/Makefile.am: Likewise.
	* libc/sys/sysvi386/Makefile.am: Likewise.
	* libc/sys/sysvnecv70/Makefile.am: Likewise.
	* libc/sys/tic80/Makefile.am: Likewise.
	* libc/sys/w65/Makefile.am: Likewise.
	* libc/sys/z8ksim/Makefile.am: Likewise.
	* iconvdata/Makefile.in: Regenerate.
	* libc/sys/a29khif/Makefile.in: Likewise.
	* libc/sys/arc/Makefile.in: Likewise.
	* libc/sys/arm/Makefile.in: Likewise.
	* libc/sys/d10v/Makefile.in: Likewise.
	* libc/sys/decstation/Makefile.in: Likewise.
	* libc/sys/h8300hms/Makefile.in: Likewise.
	* libc/sys/h8500hms/Makefile.in: Likewise.
	* libc/sys/linux/Makefile.in: Likewise.
	* libc/sys/linux/machine/i386/Makefile.in: Likewise.
	* libc/sys/m88kbug/Makefile.in: Likewise.
	* libc/sys/mmixware/Makefile.in: Likewise.
	* libc/sys/netware/Makefile.in: Likewise.
	* libc/sys/rdos/Makefile.in: Likewise.
	* libc/sys/rtems/Makefile.in: Likewise.
	* libc/sys/sh/Makefile.in: Likewise.
	* libc/sys/sparc64/Makefile.in: Likewise.
	* libc/sys/sun4/Makefile.in: Likewise.
	* libc/sys/sysmec/Makefile.in: Likewise.
	* libc/sys/sysnec810/Makefile.in: Likewise.
	* libc/sys/sysnecv850/Makefile.in: Likewise.
	* libc/sys/sysvi386/Makefile.in: Likewise.
	* libc/sys/sysvnecv70/Makefile.in: Likewise.
	* libc/sys/tic80/Makefile.in: Likewise.
	* libc/sys/w65/Makefile.in: Likewise.
	* libc/sys/z8ksim/Makefile.in: Likewise.


diff --git a/newlib/iconvdata/Makefile.am b/newlib/iconvdata/Makefile.am
index 177484a..9b1e6dd 100644
--- a/newlib/iconvdata/Makefile.am
+++ b/newlib/iconvdata/Makefile.am
@@ -12,8 +12,6 @@ endif
AM_CFLAGS = -DNDEBUG
-all: Makefile
-
pkglib_LTLIBRARIES = EUC-JP.la
EUC_JP_la_SOURCES = dummy.c
EUC_JP_la_LIBADD = $(LIB_OBJS)
diff --git a/newlib/libc/sys/a29khif/Makefile.am b/newlib/libc/sys/a29khif/Makefile.am
index 308373d..b026f9b 100644
--- a/newlib/libc/sys/a29khif/Makefile.am
+++ b/newlib/libc/sys/a29khif/Makefile.am
@@ -47,7 +47,7 @@ lib_a_SOURCES = \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/arc/Makefile.am b/newlib/libc/sys/arc/Makefile.am
index ecdb2c8..bd9bbc1 100644
--- a/newlib/libc/sys/arc/Makefile.am
+++ b/newlib/libc/sys/arc/Makefile.am
@@ -13,7 +13,7 @@ EXTRA_lib_a_SOURCES = dummy.S
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/arm/Makefile.am b/newlib/libc/sys/arm/Makefile.am
index 29d5f8f..0d51958 100644
--- a/newlib/libc/sys/arm/Makefile.am
+++ b/newlib/libc/sys/arm/Makefile.am
@@ -22,7 +22,7 @@ lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
if MAY_SUPPLY_SYSCALLS
-all: crt0.o
+all-local: crt0.o
endif
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
diff --git a/newlib/libc/sys/d10v/Makefile.am b/newlib/libc/sys/d10v/Makefile.am
index cefa6aa..203cf56 100644
--- a/newlib/libc/sys/d10v/Makefile.am
+++ b/newlib/libc/sys/d10v/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = syscalls.c trap.S creat.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/decstation/Makefile.am b/newlib/libc/sys/decstation/Makefile.am
index e7f3f88..f4a1ddf 100644
--- a/newlib/libc/sys/decstation/Makefile.am
+++ b/newlib/libc/sys/decstation/Makefile.am
@@ -38,7 +38,7 @@ lib_a_LIBADD = $(COPYOFILES)
$(COPYOFILES):
ar x /lib/libc.a $(COPYOFILES) -all: crt0.o
+all-local: crt0.o
crt0.o:
cp /lib/crt0.o crt0.o
diff --git a/newlib/libc/sys/h8300hms/Makefile.am b/newlib/libc/sys/h8300hms/Makefile.am
index e36ca85..100deda 100644
--- a/newlib/libc/sys/h8300hms/Makefile.am
+++ b/newlib/libc/sys/h8300hms/Makefile.am
@@ -13,7 +13,7 @@ lib_a_SOURCES = syscalls.c _exit.S sbrk.c misc.c crt1.c \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/h8500hms/Makefile.am b/newlib/libc/sys/h8500hms/Makefile.am
index 2bf3406..7999351 100644
--- a/newlib/libc/sys/h8500hms/Makefile.am
+++ b/newlib/libc/sys/h8500hms/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = syscalls.c misc.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/linux/Makefile.am b/newlib/libc/sys/linux/Makefile.am
index 2a1306c..eca7783 100644
--- a/newlib/libc/sys/linux/Makefile.am
+++ b/newlib/libc/sys/linux/Makefile.am
@@ -220,7 +220,7 @@ objectlist.awk.in: $(noinst_LTLIBRARIES) $(SUBLIBS)
fi; \
done
-all: crt0.o crt1.o
+all-local: crt0.o crt1.o
crt0.o: machine/crt0.o
rm -f $@
diff --git a/newlib/libc/sys/linux/machine/i386/Makefile.am b/newlib/libc/sys/linux/machine/i386/Makefile.am
index 94f55a8..1864d29 100644
--- a/newlib/libc/sys/linux/machine/i386/Makefile.am
+++ b/newlib/libc/sys/linux/machine/i386/Makefile.am
@@ -25,7 +25,7 @@ endif # USE_LIBTOOL
include $(srcdir)/../../../../../Makefile.shared
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../../../.. -I ../../../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/m88kbug/Makefile.am b/newlib/libc/sys/m88kbug/Makefile.am
index 7c767f5..cf77a1c 100644
--- a/newlib/libc/sys/m88kbug/Makefile.am
+++ b/newlib/libc/sys/m88kbug/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = syscalls.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/mmixware/Makefile.am b/newlib/libc/sys/mmixware/Makefile.am
index c255642..0874dd9 100644
--- a/newlib/libc/sys/mmixware/Makefile.am
+++ b/newlib/libc/sys/mmixware/Makefile.am
@@ -16,7 +16,7 @@ lib_a_SOURCES = _exit.c access.c chmod.c chown.c close.c creat.c \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/netware/Makefile.am b/newlib/libc/sys/netware/Makefile.am
index ccf74d6..3bd29aa 100644
--- a/newlib/libc/sys/netware/Makefile.am
+++ b/newlib/libc/sys/netware/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = \
getpid.c \
link.c
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/rdos/Makefile.am b/newlib/libc/sys/rdos/Makefile.am
index 27bae64..4ddcd85 100644
--- a/newlib/libc/sys/rdos/Makefile.am
+++ b/newlib/libc/sys/rdos/Makefile.am
@@ -15,7 +15,7 @@ lib_a_SOURCES = chown.c close.c execve.c fork.c fstat.c getenv.c \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/rtems/Makefile.am b/newlib/libc/sys/rtems/Makefile.am
index ece2abc..c516c9b 100644
--- a/newlib/libc/sys/rtems/Makefile.am
+++ b/newlib/libc/sys/rtems/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = dummysys.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sh/Makefile.am b/newlib/libc/sys/sh/Makefile.am
index 77aadaf..15faeab 100644
--- a/newlib/libc/sys/sh/Makefile.am
+++ b/newlib/libc/sys/sh/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = syscalls.c trap.S creat.c ftruncate.c truncate.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sparc64/Makefile.am b/newlib/libc/sys/sparc64/Makefile.am
index 8f7ba86..5f1aa8d 100644
--- a/newlib/libc/sys/sparc64/Makefile.am
+++ b/newlib/libc/sys/sparc64/Makefile.am
@@ -97,7 +97,7 @@ stamp-srcs: Makefile template.S template_r.S
$(TEMPLATE_SFILES:_=.S) $(TEMPLATE_SFILES_R:_=.S): stamp-srcs
-all: crt0.o
+all-local: crt0.o
close_r.o: close.S
fork_r.o: fork.S
diff --git a/newlib/libc/sys/sun4/Makefile.am b/newlib/libc/sys/sun4/Makefile.am
index a910bcc..e6a067c 100644
--- a/newlib/libc/sys/sun4/Makefile.am
+++ b/newlib/libc/sys/sun4/Makefile.am
@@ -90,7 +90,7 @@ $(COPYRENAMEOFILES):
$(COPYOMFILES):
$(AR) x /lib/libm.a $(COPYOMFILES) -all: crt0.o
+all-local: crt0.o
crt0.o:
cp /lib/crt0.o crt0.o
diff --git a/newlib/libc/sys/sysmec/Makefile.am b/newlib/libc/sys/sysmec/Makefile.am
index 9f49b32..4a504d0 100644
--- a/newlib/libc/sys/sysmec/Makefile.am
+++ b/newlib/libc/sys/sysmec/Makefile.am
@@ -16,7 +16,7 @@ lib_a_SOURCES = _exit.c access.c chmod.c chown.c close.c creat.c crt1.c \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sysnec810/Makefile.am b/newlib/libc/sys/sysnec810/Makefile.am
index e87e4a6..0ae3fc5 100644
--- a/newlib/libc/sys/sysnec810/Makefile.am
+++ b/newlib/libc/sys/sysnec810/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = io.S write.c sbrk.c misc.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sysnecv850/Makefile.am b/newlib/libc/sys/sysnecv850/Makefile.am
index 1528d22..615e9a4 100644
--- a/newlib/libc/sys/sysnecv850/Makefile.am
+++ b/newlib/libc/sys/sysnecv850/Makefile.am
@@ -17,7 +17,7 @@ lib_a_SOURCES = \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sysvi386/Makefile.am b/newlib/libc/sys/sysvi386/Makefile.am
index 3c6552f..bd325a3 100644
--- a/newlib/libc/sys/sysvi386/Makefile.am
+++ b/newlib/libc/sys/sysvi386/Makefile.am
@@ -21,7 +21,7 @@ lib_a_SOURCES = \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/sysvnecv70/Makefile.am b/newlib/libc/sys/sysvnecv70/Makefile.am
index 38179fa..0a421b7 100644
--- a/newlib/libc/sys/sysvnecv70/Makefile.am
+++ b/newlib/libc/sys/sysvnecv70/Makefile.am
@@ -13,7 +13,7 @@ lib_a_SOURCES = ioctl.S isatty.S read.S lseek.S close.S sbrk.S fstat.S \
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/tic80/Makefile.am b/newlib/libc/sys/tic80/Makefile.am
index f77fc77..847b759 100644
--- a/newlib/libc/sys/tic80/Makefile.am
+++ b/newlib/libc/sys/tic80/Makefile.am
@@ -17,7 +17,7 @@ lib_a_CFLAGS = $(AM_CFLAGS)
EXTRA_LIBRARIES = libfoo.a
libfoo_a_SOURCES = crt0.c
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/w65/Makefile.am b/newlib/libc/sys/w65/Makefile.am
index ef81b7d..6507a91 100644
--- a/newlib/libc/sys/w65/Makefile.am
+++ b/newlib/libc/sys/w65/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = syscalls.c trap.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/z8ksim/Makefile.am b/newlib/libc/sys/z8ksim/Makefile.am
index 51ec48f..513b0fe 100644
--- a/newlib/libc/sys/z8ksim/Makefile.am
+++ b/newlib/libc/sys/z8ksim/Makefile.am
@@ -12,7 +12,7 @@ lib_a_SOURCES = glue.c
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)
-all: crt0.o
+all-local: crt0.o
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host


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