[libvirt] [PATCH] tests: work around pdwtags 1.9 failure

Daniel Veillard veillard at redhat.com
Sat Jan 7 04:06:10 UTC 2012


On Fri, Jan 06, 2012 at 04:07:34PM -0700, Eric Blake wrote:
> On rawhide, gcc is new enough to output new DWARF information that
> pdwtags has not yet learned, but the resulting 'make check' output
> was rather confusing:
> 
> $ make -C src check
> ...
>   GEN    virkeepaliveprotocol-structs
> die__process_function: DW_TAG_INVALID (0x4109) @ <0x58c> not handled!
> WARNING: your pdwtags program is too old
> WARNING: skipping the virkeepaliveprotocol-structs test
> WARNING: install dwarves-1.3 or newer
> ...
> $ pdwtags --version
> v1.9
> 
> I've filed the pdwtags deficiency as
> https://bugzilla.redhat.com/show_bug.cgi?id=772358
> 
> * src/Makefile.am (PDWTAGS): Don't leave -t file behind on version
> mismatch.  Soften warning message, since 1.9 is newer than 1.3.
> Don't leak stderr from broken version.
> ---
> 
> Although this feels pretty trivial, it's not quite a build-breaker
> (everything still worked), so I'll await a review before pushing.
> 
>  src/Makefile.am |   17 +++++++++++------
>  1 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 93bf54c..0a1221a 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1,6 +1,6 @@
>  ## Process this file with automake to produce Makefile.in
> 
> -## Copyright (C) 2005-2011 Red Hat, Inc.
> +## Copyright (C) 2005-2012 Red Hat, Inc.
>  ## See COPYING.LIB for the License of this software
> 
>  # No libraries with the exception of LIBXML should be listed
> @@ -248,8 +248,12 @@ struct_prefix = (remote_|qemu_|virNet|keepalive_)
> 
>  PDWTAGS = \
>  	$(AM_V_GEN)if (pdwtags --help) > /dev/null 2>&1; then		\
> -	  pdwtags --verbose $(<:.lo=.$(OBJEXT))				\
> -	    | perl -0777 -n						\
> +	  pdwtags --verbose $(<:.lo=.$(OBJEXT))	> $(@F)-t1 2> $(@F)-t2;	\
> +	  if test -s $(@F)-t2; then					\
> +	    rm -rf $(@F)-t?;						\
> +	    echo 'WARNING: pdwtags appears broken; skipping the $@ test' >&2;\
> +	  else								\
> +	    perl -0777 -n						\
>  		-e 'foreach my $$p (split m!\n*(?:$(r1)|$(r2))\n!) {'	\
>  		-e '  if ($$p =~ /^(struct|enum) $(struct_prefix)/ ||'	\
>  		-e '      $$p =~ /^enum {/) {'				\
> @@ -272,9 +276,10 @@ PDWTAGS = \
>  		-e '    exit 8;'					\
>  		-e '  }'						\
>  		-e '}'							\
> -		> $(@F)-t;						\
> -	  case $$? in 8) exit 0;; 0) ;; *) exit 1;; esac;		\
> -	  diff -u $(@F)-t $@; st=$$?; rm -f $(@F)-t; exit $$st;		\
> +		< $(@F)-t1 > $(@F)-t3;					\
> +	    case $$? in 8) rm -f $(@F)-t?; exit 0;; 0) ;; *) exit 1;; esac;\
> +	    diff -u $(@F)-t3 $@; st=$$?; rm -f $(@F)-t?; exit $$st;	\
> +	  fi;								\
>  	else								\
>  	  echo 'WARNING: you lack pdwtags; skipping the $@ test' >&2;	\
>  	  echo 'WARNING: install the dwarves package to get pdwtags' >&2; \

  ACK,
  That's fairly cryptic, but looks fine here, so I'm pushing to get it
in 0.9.9,

  thanks !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list