[systemd-devel] [PATCH] Fix compilation under clang/LLVM

Dan McGee dan at archlinux.org
Tue Aug 5 19:47:09 PDT 2014


On Tue, Aug 5, 2014 at 9:11 PM, Greg KH <greg at kroah.com> wrote:

> On Tue, Aug 05, 2014 at 07:58:47PM -0500, Dan McGee wrote:
> > Compilation is failing because we are doing something not allowed by the
> > language spec, but OK by GCC extensions in our MAX() macro.
> >
> > src/resolve/resolved-manager.c:759:43: error: non-const static data
> member must be initialized out of line
> >                 uint8_t buffer[CMSG_SPACE(MAX(sizeof(struct in_pktinfo),
> sizeof(struct in6_pktinfo)))
> >                                           ^
> >
> > Add a new constant that does this in a way both compilers are OK with,
> > since we know all factors in the size computation are static.
>
> Why not just fix MAX()?
>
> Mainly because 1) I'm not a preprocessor expert, and 2) this code is the
only broken usage of MAX() and it was recently introduced.

I'm all for someone fixing this the "right" way if this is deemed
incorrect, but right now one can't even compile on what most would consider
a non-experimental C toolchain, and this was the quickest and easiest fix I
could come up with.

-Dan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20140805/de20eafc/attachment.html>


More information about the systemd-devel mailing list