[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