svn commit: r329371 - head/sys/compat/linuxkpi/common/include/asm

Hans Petter Selasky hps at selasky.org
Sat Feb 17 09:47:47 UTC 2018


On 02/17/18 10:33, Jan Beich wrote:
> Hans Petter Selasky <hps at selasky.org> writes:
> 
>> On 02/17/18 01:42, Jan Beich wrote:
>>
>>> Hans Petter Selasky <hselasky at FreeBSD.org> writes:
>>>
>>>> Author: hselasky
>>>> Date: Fri Feb 16 15:20:21 2018
>>>> New Revision: 329371
>>>> URL: https://svnweb.freebsd.org/changeset/base/329371
>>>>
>>>> Log:
>>>>     Allow the cmpxchg() macro in the LinuxKPI to work on pointers without
>>>>     generating compiler warnings, -Wint-conversion .
>>> [...]
>>>
>>> To generate errors instead ?
>>>
>>> $ make clean all -C /usr/ports/graphics/drm-next-kmod
>>> [...]
>>> drm_lock.c:72:10: error: flexible array member 'u8' in a union is not allowed
>>>                   prev = cmpxchg(lock, old, new);
>>>                          ^
>>
>> I believe this is a regression issue in GCC:
>>
>> https://gcc.gnu.org/ml/gcc-patches/2016-07/msg01505.html
> 
> If you didn't notice that bug is for C++, not C. GCC and Clang accept
> flexible array members in unions only in C++. cmpxchg() from linuxkpi
> doesn't seem to be used anywhere in the tree. If the macro didn't expand
> there's nothing to produce an error for.
> 
> Anyway, I confirm r329447 fixed graphics/drm-next-kmod build.
> 

Hi,

It looks like there has been a testing issue on my side:

drm_lock.c:72:10: error: field has incomplete type 'u64 []'

This is an older clang.

Thanks for reporting!

--HPS


More information about the svn-src-head mailing list