diff mbox

Makefile: disable parallel build with dtc

Message ID 20130704080607.GA25850@redhat.com
State New
Headers show

Commit Message

Michael S. Tsirkin July 4, 2013, 8:06 a.m. UTC
Sometimes I get this error when building with -j 4:
ar: two different operation options specified
make[1]: *** [libfdt/libfdt.a] Error 1
make: *** [subdir-dtc] Error 2

dtc make does not seem to support parallel make.
Force non-parallel build to fix this.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell July 4, 2013, 9:17 a.m. UTC | #1
On 4 July 2013 09:06, Michael S. Tsirkin <mst@redhat.com> wrote:
> Sometimes I get this error when building with -j 4:
> ar: two different operation options specified
> make[1]: *** [libfdt/libfdt.a] Error 1
> make: *** [subdir-dtc] Error 2
>
> dtc make does not seem to support parallel make.
> Force non-parallel build to fix this.

So, this is the second time somebody's reported this, and
I think it would be better to try to figure out what's
going on. Can you report what the actual ar command is
when run with V=1 ?

Also, can you confirm that you haven't got an environment
that sets ARFLAGS to something weird (including "") ?

thanks
-- PMM
Andreas Färber July 4, 2013, 9:45 a.m. UTC | #2
Am 04.07.2013 11:17, schrieb Peter Maydell:
> On 4 July 2013 09:06, Michael S. Tsirkin <mst@redhat.com> wrote:
>> Sometimes I get this error when building with -j 4:
>> ar: two different operation options specified
>> make[1]: *** [libfdt/libfdt.a] Error 1
>> make: *** [subdir-dtc] Error 2
>>
>> dtc make does not seem to support parallel make.
>> Force non-parallel build to fix this.
> 
> So, this is the second time somebody's reported this, and
> I think it would be better to try to figure out what's
> going on. Can you report what the actual ar command is
> when run with V=1 ?
> 
> Also, can you confirm that you haven't got an environment
> that sets ARFLAGS to something weird (including "") ?

I did confirm that my environment does not have ARFLAGS set; I believe
the issue is that ARFLAGS="$(ARFLAGS)" is being passed in the Makefile,
effectively setting it to "".

Andreas
Michael S. Tsirkin July 4, 2013, 9:49 a.m. UTC | #3
On Thu, Jul 04, 2013 at 10:17:46AM +0100, Peter Maydell wrote:
> On 4 July 2013 09:06, Michael S. Tsirkin <mst@redhat.com> wrote:
> > Sometimes I get this error when building with -j 4:
> > ar: two different operation options specified
> > make[1]: *** [libfdt/libfdt.a] Error 1
> > make: *** [subdir-dtc] Error 2
> >
> > dtc make does not seem to support parallel make.
> > Force non-parallel build to fix this.
> 
> So, this is the second time somebody's reported this, and
> I think it would be better to try to figure out what's
> going on. Can you report what the actual ar command is
> when run with V=1 ?

it stopped reproducing now :(

> Also, can you confirm that you haven't got an environment
> that sets ARFLAGS to something weird (including "") ?
> 
> thanks
> -- PMM

I can confirm that.
Peter Maydell July 4, 2013, 9:52 a.m. UTC | #4
On 4 July 2013 10:45, Andreas Färber <afaerber@suse.de> wrote:
> Am 04.07.2013 11:17, schrieb Peter Maydell:
>> Also, can you confirm that you haven't got an environment
>> that sets ARFLAGS to something weird (including "") ?
>
> I did confirm that my environment does not have ARFLAGS set; I believe
> the issue is that ARFLAGS="$(ARFLAGS)" is being passed in the Makefile,
> effectively setting it to "".

That should set it to "rv", because the top level make will
default ARFLAGS to that if you haven't set it explicitly.

You can test this by seeing whether a V=1 build runs the libfdt make
with ARFLAGS="rv" or something else:

cam-vm-266:precise:qemu$ make -C build/x86 -j4 V=1
make: Entering directory `/home/petmay01/linaro/qemu-from-laptop/qemu/build/x86'
make -I/home/petmay01/linaro/qemu-from-laptop/qemu/dtc
VPATH=/home/petmay01/linaro/qemu-from-laptop/qemu/dtc -C dtc V="1"
LIBFDT_srcdir=/home/petmay01/linaro/qemu-from-laptop/qemu/dtc/libfdt
CPPFLAGS="-I/home/petmay01/linaro/qemu-from-laptop/qemu/build/x86/dtc
-I/home/petmay01/linaro/qemu-from-laptop/qemu/dtc
-I/home/petmay01/linaro/qemu-from-laptop/qemu/dtc/libfdt" CFLAGS="-O2
-D_FORTIFY_SOURCE=2 -g  -Werror -m64 -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes
-Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes
-fno-strict-aliasing  -Wendif-labels -Wmissing-include-dirs
-Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k
-Winit-self -Wignored-qualifiers -Wold-style-declaration
-Wold-style-definition -Wtype-limits -fstack-protector-all
-I/usr/include/libpng12   -I/usr/include/pixman-1
-I/home/petmay01/linaro/qemu-from-laptop/qemu/dtc/libfdt -pthread
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
-I/home/petmay01/linaro/qemu-from-laptop/qemu/tests"
LDFLAGS="-Wl,--warn-common -m64 -static -g " ARFLAGS="rv" CC="ccache
gcc" AR="ar" LD="ld"
BUILD_DIR=/home/petmay01/linaro/qemu-from-laptop/qemu/build/x86
libfdt/libfdt.a
make[1]: Entering directory
`/home/petmay01/linaro/qemu-from-laptop/qemu/build/x86/dtc'

(this is GNU Make 3.81 from ubuntu package 3.81-8.1ubuntu1.1)

-- PMM
diff mbox

Patch

diff --git a/Makefile b/Makefile
index c06bfab..e86c15a 100644
--- a/Makefile
+++ b/Makefile
@@ -145,7 +145,7 @@  pixman/Makefile: $(SRC_PATH)/pixman/configure
 $(SRC_PATH)/pixman/configure:
 	(cd $(SRC_PATH)/pixman; autoreconf -v --install)
 
-DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
+DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt --jobs=1
 DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
 DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt