There is apparently a race in creating _libxl_list.h, in xen-unstable 25821:19d367bf07b7: [ 261s] + make -j8 -k docs stubdom ... [ 379s] make -C libxl install [ 379s] make[3]: Entering directory `/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl'' [ 379s] /usr/bin/perl /usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include/xen-external/bsd-sys-queue-h-seddery /usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include/xen-external/bsd-sys-queue.h --prefix=libxl >_libxl_list.h.new [ 380s] rm -f _paths.h.tmp.tmp; echo "SBINDIR=\"/usr/sbin\"" >>_paths.h.tmp.tmp; echo "BINDIR=\"/usr/bin\"" >>_paths.h.tmp.tmp; echo "LIBEXEC=\"/usr/lib/xen/bin\"" >>_paths.h.tmp.tmp; echo "LIBDIR=\"/usr/lib64\"" >>_paths.h.tmp.tmp; echo "SHAREDIR=\"/usr/share\"" >>_paths.h.tmp.tmp; echo "PRIVATE_BINDIR=\"/usr/lib64/xen/bin\"" >>_paths.h.tmp.tmp; echo "XENFIRMWAREDIR=\"/usr/lib/xen/boot\"" >>_paths.h.tmp.tmp; echo "XEN_CONFIG_DIR=\"/etc/xen\"" >>_paths.h.tmp.tmp; echo "XEN_SCRIPT_DIR=\"/etc/xen/scripts\"" >>_paths.h.tmp.tmp; echo "XEN_LOCK_DIR=\"/var/lock\"" >>_paths.h.tmp.tmp; echo "XEN_RUN_DIR=\"/var/run/xen\"" >>_paths.h.tmp.tmp; echo "XEN_PAGING_DIR=\"/var/lib/xen/xenpaging\"" >>_paths.h.tmp.tmp; if ! cmp -s _paths.h.tmp.tmp _paths.h.tmp; then mv -f _paths.h.tmp.tmp _paths .h.tmp; else rm -f _paths.h.tmp.tmp; fi [ 380s] /usr/bin/perl -w libxl_save_msgs_gen.pl _libxl_save_msgs_callout.h >_libxl_save_msgs_callout.h.new [ 380s] /usr/bin/perl -w libxl_save_msgs_gen.pl _libxl_save_msgs_helper.h >_libxl_save_msgs_helper.h.new [ 380s] python gentypes.py libxl_types.idl __libxl_types.h __libxl_types_json.h __libxl_types.c [ 380s] python gentypes.py libxl_types_internal.idl __libxl_types_internal.h __libxl_types_internal_json.h __libxl_types_internal.c [ 380s] /usr/bin/perl -w libxl_save_msgs_gen.pl _libxl_save_msgs_callout.c >_libxl_save_msgs_callout.c.new [ 380s] Parsing libxl_types.idl [ 380s] if ! cmp -s _libxl_save_msgs_callout.h.new _libxl_save_msgs_callout.h; then mv -f _libxl_save_msgs_callout.h.new _libxl_save_msgs_callout.h; else rm -f _libxl_save_msgs_callout.h.new; fi [ 380s] /usr/bin/perl -w libxl_save_msgs_gen.pl _libxl_save_msgs_helper.c >_libxl_save_msgs_helper.c.new [ 380s] Parsing libxl_types_internal.idl [ 380s] if ! cmp -s _libxl_save_msgs_helper.h.new _libxl_save_msgs_helper.h; then mv -f _libxl_save_msgs_helper.h.new _libxl_save_msgs_helper.h; else rm -f _libxl_save_msgs_helper.h.new; fi [ 380s] outputting libxl type definitions to __libxl_types_internal.h [ 380s] outputting libxl JSON definitions to __libxl_types_internal_json.h [ 380s] outputting libxl type implementations to __libxl_types_internal.c [ 380s] if ! cmp -s __libxl_types_internal.h _libxl_types_internal.h; then mv -f __libxl_types_internal.h _libxl_types_internal.h; else rm -f __libxl_types_internal.h; fi [ 380s] sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" _paths.h.tmp >_paths.h.2.tmp [ 380s] if ! cmp -s __libxl_types_internal_json.h _libxl_types_internal_json.h; then mv -f __libxl_types_internal_json.h _libxl_types_internal_json.h; else rm -f __libxl_types_internal_json.h; fi [ 380s] rm -f _paths.h.tmp [ 380s] if ! cmp -s _paths.h.2.tmp _paths.h; then mv -f _paths.h.2.tmp _paths.h; else rm -f _paths.h.2.tmp; fi [ 380s] if ! cmp -s __libxl_types_internal.c _libxl_types_internal.c; then mv -f __libxl_types_internal.c _libxl_types_internal.c; else rm -f __libxl_types_internal.c; fi [ 380s] outputting libxl type definitions to __libxl_types.h [ 380s] outputting libxl JSON definitions to __libxl_types_json.h [ 380s] outputting libxl type implementations to __libxl_types.c [ 380s] if ! cmp -s __libxl_types.h _libxl_types.h; then mv -f __libxl_types.h _libxl_types.h; else rm -f __libxl_types.h; fi [ 380s] if ! cmp -s __libxl_types_json.h _libxl_types_json.h; then mv -f __libxl_types_json.h _libxl_types_json.h; else rm -f __libxl_types_json.h; fi [ 380s] if ! cmp -s __libxl_types.c _libxl_types.c; then mv -f __libxl_types.c _libxl_types.c; else rm -f __libxl_types.c; fi [ 380s] gcc -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF ._libxl.api-for-check.d -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Werror -Wno-format-zero-length -Wmissing-declarations -Wno-declaration-after-statement -Wformat-nonliteral -I. -fPIC -pthread -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxl -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../. ./tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -include /usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/config.h -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -c -E libxl.h \ [ 380s] -DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \ [ 380s] >_libxl.api-for-check.new [ 380s] if ! cmp -s _libxl_save_msgs_callout.c.new _libxl_save_msgs_callout.c; then mv -f _libxl_save_msgs_callout.c.new _libxl_save_msgs_callout.c; else rm -f _libxl_save_msgs_callout.c.new; fi [ 380s] if ! cmp -s _libxl_save_msgs_helper.c.new _libxl_save_msgs_helper.c; then mv -f _libxl_save_msgs_helper.c.new _libxl_save_msgs_helper.c; else rm -f _libxl_save_msgs_helper.c.new; fi [ 380s] libxl.h:260:25: fatal error: _libxl_list.h: No such file or directory [ 380s] compilation terminated. [ 380s] make[3]: *** [_libxl.api-for-check] Error 1 [ 381s] if ! cmp -s _libxl_list.h.new _libxl_list.h; then mv -f _libxl_list.h.new _libxl_list.h; else rm -f _libxl_list.h.new; fi [ 381s] make[3]: Target `install'' not remade because of errors. [ 381s] make[3]: Leaving directory `/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl'' [ 381s] make[2]: *** [subdir-install-libxl] Error 2 [ 381s] make[2]: Leaving directory `/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools'' [ 381s] make[1]: *** [subdirs-install] Error 2 [ 381s] make[1]: Target `install'' not remade because of errors. [ 381s] make[1]: Leaving directory `/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools'' [ 381s] make: *** [install-tools] Error 2 [ 381s] make: Target `stubdom'' not remade because of errors. [ 381s] error: Bad exit status from /var/tmp/rpm-tmp.TNgYuT (%build)
On Thu, 2012-09-06 at 17:39 +0100, Olaf Hering wrote:> There is apparently a race in creating _libxl_list.h, > in xen-unstable 25821:19d367bf07b7:[...]> [ 380s] gcc -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -D__XEN_TOOLS__ -MMD -MF ._libxl.api-for-check.d -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -fno-optimize-sibling-calls -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Werror -Wno-format-zero-length -Wmissing-declarations -Wno-declaration-after-statement -Wformat-nonliteral -I. -fPIC -pthread -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxl -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -include /usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/config.h -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/libxc -I/usr/src/packages/BUILD/xen-4.2.25821/non-dbg/tools/libxl/../../tools/include -c -E libxl.h \> [ 380s] -DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \ > [ 380s] >_libxl.api-for-check.new > [..] > [ 380s] libxl.h:260:25: fatal error: _libxl_list.h: No such file or directory > [ 380s] compilation terminated. > [ 380s] make[3]: *** [_libxl.api-for-check] Error 1[...] I think this is the new api check rule. We have _libxl.api-for-check which is created by: _%.api-for-check: %.h $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_$*.o) -c -E $< $(APPEND_CFLAGS) \ -DLIBXL_EXTERNAL_CALLERS_ONLY=LIBXL_EXTERNAL_CALLERS_ONLY \ >$@.new mv -f $@.new $@ so it depends on libxl.h which includes the autogenerated list stuff. But there is no depends on _libxl_list.h which is in $(AUTOINCS). Could fix by adding AUTOINCS here somewhere but is there any reason not to add libxl.h: $(AUTOINCS) ? Ian.
On Thu, Sep 06, Ian Campbell wrote:> But there is no depends on _libxl_list.h which is in $(AUTOINCS). Could > fix by adding AUTOINCS here somewhere but is there any reason not to add > > libxl.h: $(AUTOINCS)There is already a libxl.h: _libxl_types.h, perhaps _libxl_list.h should be added here as well. Olaf
On Thu, Sep 06, Olaf Hering wrote:> On Thu, Sep 06, Ian Campbell wrote: > > > But there is no depends on _libxl_list.h which is in $(AUTOINCS). Could > > fix by adding AUTOINCS here somewhere but is there any reason not to add > > > > libxl.h: $(AUTOINCS) > > There is already a libxl.h: _libxl_types.h, perhaps _libxl_list.h should > be added here as well.And libxl.h includes also libxl_event.h, so it should depend on that file als well I think. Olaf
On Thu, 2012-09-06 at 17:57 +0100, Olaf Hering wrote:> On Thu, Sep 06, Olaf Hering wrote: > > > On Thu, Sep 06, Ian Campbell wrote: > > > > > But there is no depends on _libxl_list.h which is in $(AUTOINCS). Could > > > fix by adding AUTOINCS here somewhere but is there any reason not to add > > > > > > libxl.h: $(AUTOINCS) > > > > There is already a libxl.h: _libxl_types.h, perhaps _libxl_list.h should > > be added here as well. > > And libxl.h includes also libxl_event.h, so it should depend on that > file als well I think.libxl_event.h isn''t autogenerated so the usual gcc generated dependency stuff can handle that. Ian.
On Thu, Sep 06, Ian Campbell wrote:> On Thu, 2012-09-06 at 17:57 +0100, Olaf Hering wrote: > > On Thu, Sep 06, Olaf Hering wrote: > > > > > On Thu, Sep 06, Ian Campbell wrote: > > > > > > > But there is no depends on _libxl_list.h which is in $(AUTOINCS). Could > > > > fix by adding AUTOINCS here somewhere but is there any reason not to add > > > > > > > > libxl.h: $(AUTOINCS) > > > > > > There is already a libxl.h: _libxl_types.h, perhaps _libxl_list.h should > > > be added here as well. > > > > And libxl.h includes also libxl_event.h, so it should depend on that > > file als well I think. > > libxl_event.h isn''t autogenerated so the usual gcc generated dependency > stuff can handle that.Ok, should I resend my patch? Olaf