[libvirt] Problems with pdwtags on Ubuntu 10.04

Eric Blake eblake at redhat.com
Tue May 18 20:53:31 UTC 2010


On 05/18/2010 11:57 AM, Matthias Bolte wrote:
> The "help avoid accidental remote_protocol.x changes" commit 180d4b2b
> added a make check rule that tried using pdwtags from the dwarves
> package to protect against accidental remote_protocol.x changes.
> 
> I installed dwarves package on Ubuntu 10.04 and make check fails for me now.

What is your 'pdwtags --version'?  On Fedora 13, it's v1.8pre1.  Very
likely, it's just a matter of slightly varying output styles between the
two versions that needs some accommodation.

> 
> 
> struct remote_nonnull_network { 
> 	remote_nonnull_string      name;                 /*     0     8 */
> 	remote_uuid                uuid;                 /*     8    16 */
> 
> 	/* size: 24, cachelines: 1 */
> 	/* last cacheline: 24 bytes */
> };
> 
> typedef struct remote_nonnull_network remote_nonnull_network;

On F-13, the same chunk looks like:

/* 80 */
struct remote_nonnull_network {
        remote_nonnull_string      name;                 /*     0     4 */
        remote_uuid                uuid;                 /*     4    16 */

        /* size: 20, cachelines: 1, members: 2 */
        /* last cacheline: 20 bytes */
}; /* size: 20 */

/* 81 */
typedef struct remote_nonnull_network remote_nonnull_network; /* size: 20 */

> 
> If i run pdwtags with the --verbose flag then the output looks like this:
> 
> 
> 
> /* <44e> remote/remote_protocol.h:71 */
> typedef struct remote_nonnull_domain remote_nonnull_domain;
> 
> /* <459> remote/remote_protocol.h:73 */
> struct remote_nonnull_network {
> 	remote_nonnull_string      name;                 /*     0     8 */
> 	remote_uuid                uuid;                 /*     8    16 */
> 
> 	/* size: 24, cachelines: 1 */
> 	/* last cacheline: 24 bytes */
> };

And here:
/* 80 */
/* <0> (null):0 */
struct remote_nonnull_network {
        remote_nonnull_string      name;                 /*     0     4 */
        remote_uuid                uuid;                 /*     4    16 */

        /* size: 20, cachelines: 1, members: 2 */
        /* last cacheline: 20 bytes */
}; /* size: 20 */

/* 81 */
/* <0> (null):0 */
typedef struct remote_nonnull_network remote_nonnull_network; /* size: 20 */


> 
> Now there are "markers" that can be used for splitting, but they still
> differ from the expected format.
> 
> The attached patch fixes this issue for me on Ubuntu, but I doubt that
> this can be the general solution.

Jim, any ideas?

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20100518/ef92e789/attachment-0001.sig>


More information about the libvir-list mailing list