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

Jan Beich jbeich at FreeBSD.org
Sat Feb 17 09:33:48 UTC 2018


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.


More information about the svn-src-all mailing list