[libvirt] [PATCH] MacOS: Handle changes to xdrproc_t definition

Doug Goldstein cardoe at cardoe.com
Wed Oct 30 19:05:04 UTC 2013


On Wed, Oct 30, 2013 at 11:28 AM, Doug Goldstein <cardoe at cardoe.com> wrote:
> With Mac OS X 10.9, xdrproc_t is no longer defined as:
>
> typedef bool_t (*xdrproc_t)(XDR *, ...);
>
> but instead as:
>
> typdef bool_t (*xdrproc_t)(XDR *, void *, unsigned int);
>
> For reference, Linux systems typically define it as:
>
> typedef bool_t (*xdrproc_t)(XDR *, void *, ...);
>
> The rationale explained in the header is that using a vararg is
> incorrect and has a potential to change the ABI slightly do to compiler
> optimizations taken and the undefined behavior. They decided
> to specify the exact number of parameters and for compatibility with old
> code decided to make the signature require 3 arguments. The third
> argument is ignored for cases that its not used and its recommended to
> supply a 0.
> ---

This patch is another option to fix the issue seen on Mac OS X. The
original is available here:
https://www.redhat.com/archives/libvir-list/2013-October/msg01153.html

-- 
Doug Goldstein




More information about the libvir-list mailing list