So far all we (explicitly) require is gcc 3.4 or better, so we shouldn''t be unconditionally using features supported only by much newer versions. Short of a proper replacement, use the "deprecated" attribute instead: It also produces a warning (thus causing the build to fail due to -Werror), and is at least getting close to the intention here. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -55,8 +55,12 @@ #ifdef LIBXL_H # error libxl.h should be included via libxl_internal.h, not separately #endif -#define LIBXL_EXTERNAL_CALLERS_ONLY \ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define LIBXL_EXTERNAL_CALLERS_ONLY \ __attribute__((warning("may not be called from within libxl"))) +#else +# define LIBXL_EXTERNAL_CALLERS_ONLY __attribute__((__deprecated__)) +#endif #include "libxl.h" #include "_paths.h" _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
Jan Beulich writes ("[Xen-devel] [PATCH] libxl: fix build for gcc prior to 4.3"):> So far all we (explicitly) require is gcc 3.4 or better, so we > shouldn''t be unconditionally using features supported only by much > newer versions.Sorry about that.> Short of a proper replacement, use the "deprecated" attribute instead: > It also produces a warning (thus causing the build to fail due to > -Werror), and is at least getting close to the intention here.I think it would be fine to simply drop this check for earlier gcc''s. That would make the compatibility ifdeffery simpler so I would prefer that. Thanks, Ian.
>>> On 13.08.12 at 15:44, Ian Jackson <Ian.Jackson@eu.citrix.com> wrote: > Jan Beulich writes ("[Xen-devel] [PATCH] libxl: fix build for gcc prior to >> Short of a proper replacement, use the "deprecated" attribute instead: >> It also produces a warning (thus causing the build to fail due to >> -Werror), and is at least getting close to the intention here. > > I think it would be fine to simply drop this check for earlier gcc''s. > That would make the compatibility ifdeffery simpler so I would prefer > that.While I think the other version was reasonable, here you go. Jan libxl: fix build for gcc prior to 4.3 So far all we (explicitly) require is gcc 3.4 or better, so we shouldn''t be unconditionally using features supported only by much newer versions. Short of a proper replacement, use the "deprecated" attribute instead: It also produces a warning (thus causing the build to fail due to -Werror), and is at least getting close to the intention here. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -55,8 +55,10 @@ #ifdef LIBXL_H # error libxl.h should be included via libxl_internal.h, not separately #endif -#define LIBXL_EXTERNAL_CALLERS_ONLY \ +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +# define LIBXL_EXTERNAL_CALLERS_ONLY \ __attribute__((warning("may not be called from within libxl"))) +#endif #include "libxl.h" #include "_paths.h"
Jan Beulich writes ("Re: [Xen-devel] [PATCH] libxl: fix build for gcc prior to 4.3"):> While I think the other version was reasonable, here you go.Thanks, Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> I removed the now-redundant paragraph about ((deprecated)) from the commit message. Ian.
>>> On 13.08.12 at 19:09, Ian Jackson <Ian.Jackson@eu.citrix.com> wrote: > Jan Beulich writes ("Re: [Xen-devel] [PATCH] libxl: fix build for gcc prior to > 4.3"): >> While I think the other version was reasonable, here you go. > > Thanks, > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> > Committed-by: Ian Jackson <ian.jackson@eu.citrix.com> > > I removed the now-redundant paragraph about ((deprecated)) from the > commit message.Oh, thanks and sorry. Jan