[libvirt] [PATCH] Make sure sys/types.h is included after sys/sysmacros.h
Michal Privoznik
mprivozn at redhat.com
Mon Sep 12 15:15:53 UTC 2016
On 12.09.2016 16:54, Daniel P. Berrange wrote:
> On Tue, Sep 06, 2016 at 03:46:59PM +0200, Michal Privoznik wrote:
>> In the latest glibc, major() and minor() functions are marked as
>> deprecated (glibc commit dbab6577):
>>
>> CC util/libvirt_util_la-vircgroup.lo
>> util/vircgroup.c: In function 'virCgroupGetBlockDevString':
>> util/vircgroup.c:768:5: error: '__major_from_sys_types' is deprecated:
>> In the GNU C Library, `major' is defined by <sys/sysmacros.h>.
>> For historical compatibility, it is currently defined by
>> <sys/types.h> as well, but we plan to remove this soon.
>> To use `major', include <sys/sysmacros.h> directly.
>> If you did not intend to use a system-defined macro `major',
>> you should #undef it after including <sys/types.h>.
>> [-Werror=deprecated-declarations]
>> if (virAsprintf(&ret, "%d:%d ", major(sb.st_rdev), minor(sb.st_rdev)) < 0)
>> ^~
>> In file included from /usr/include/features.h:397:0,
>> from /usr/include/bits/libc-header-start.h:33,
>> from /usr/include/stdio.h:28,
>> from ../gnulib/lib/stdio.h:43,
>> from util/vircgroup.c:26:
>> /usr/include/sys/sysmacros.h:87:1: note: declared here
>> __SYSMACROS_DEFINE_MAJOR (__SYSMACROS_FST_IMPL_TEMPL)
>> ^
>>
>> Moreover, in the glibc commit, there's suggestion to keep
>> ordering of including of header files as implemented here.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>
>> This still won't solve the build issue completely as AC_HEADER_MAJOR still
>> reports that major() is defined by sys/types.h instead of sys/sysmacros.h.
>
> AFAICT, it doesn't appear to have even fixed the vircgroups.c file
> compile failure - our CI is still broken with the exact same error
> message you have above
Yes, that's because autoconf macro checking where does major() come from
hasn't been fixed yet. As soon as it is fixed the problem will go away.
Eric, any update on this?
Michal
More information about the libvir-list
mailing list