xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* creating _libxl_list.h is racy
@ 2012-09-06 16:39 Olaf Hering
  2012-09-06 16:45 ` Ian Campbell
  0 siblings, 1 reply; 6+ messages in thread
From: Olaf Hering @ 2012-09-06 16:39 UTC (permalink / raw)
  To: xen-devel


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)

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

* Re: creating _libxl_list.h is racy
  2012-09-06 16:39 creating _libxl_list.h is racy Olaf Hering
@ 2012-09-06 16:45 ` Ian Campbell
  2012-09-06 16:55   ` Olaf Hering
  0 siblings, 1 reply; 6+ messages in thread
From: Ian Campbell @ 2012-09-06 16:45 UTC (permalink / raw)
  To: Olaf Hering; +Cc: xen-devel@lists.xen.org

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.

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

* Re: creating _libxl_list.h is racy
  2012-09-06 16:45 ` Ian Campbell
@ 2012-09-06 16:55   ` Olaf Hering
  2012-09-06 16:57     ` Olaf Hering
  0 siblings, 1 reply; 6+ messages in thread
From: Olaf Hering @ 2012-09-06 16:55 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xen.org

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

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

* Re: creating _libxl_list.h is racy
  2012-09-06 16:55   ` Olaf Hering
@ 2012-09-06 16:57     ` Olaf Hering
  2012-09-06 18:53       ` Ian Campbell
  0 siblings, 1 reply; 6+ messages in thread
From: Olaf Hering @ 2012-09-06 16:57 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xen.org

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

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

* Re: creating _libxl_list.h is racy
  2012-09-06 16:57     ` Olaf Hering
@ 2012-09-06 18:53       ` Ian Campbell
  2012-09-06 19:06         ` Olaf Hering
  0 siblings, 1 reply; 6+ messages in thread
From: Ian Campbell @ 2012-09-06 18:53 UTC (permalink / raw)
  To: Olaf Hering; +Cc: xen-devel@lists.xen.org

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.

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

* Re: creating _libxl_list.h is racy
  2012-09-06 18:53       ` Ian Campbell
@ 2012-09-06 19:06         ` Olaf Hering
  0 siblings, 0 replies; 6+ messages in thread
From: Olaf Hering @ 2012-09-06 19:06 UTC (permalink / raw)
  To: Ian Campbell; +Cc: xen-devel@lists.xen.org

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

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

end of thread, other threads:[~2012-09-06 19:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-06 16:39 creating _libxl_list.h is racy Olaf Hering
2012-09-06 16:45 ` Ian Campbell
2012-09-06 16:55   ` Olaf Hering
2012-09-06 16:57     ` Olaf Hering
2012-09-06 18:53       ` Ian Campbell
2012-09-06 19:06         ` Olaf Hering

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 NNTP newsgroup(s).