svn commit: r314862 - head/sys/modules/qlxgbe
Bruce Evans
brde at optusnet.com.au
Wed Mar 8 09:04:36 UTC 2017
On Wed, 8 Mar 2017, Andriy Gapon wrote:
> On 08/03/2017 00:17, Gleb Smirnoff wrote:
>> On Tue, Mar 07, 2017 at 03:43:49PM +0000, Andriy Gapon wrote:
>> A> Author: avg
>> A> Date: Tue Mar 7 15:43:49 2017
>> A> New Revision: 314862
>> A> URL: https://svnweb.freebsd.org/changeset/base/314862
>> A>
>> A> Log:
>> A> qlxgbe: add GCC_MS_EXTENSIONS to CFLAGS to make old base GCC happy
>> A>
>> A> The module uses unnamed structure and union fields and base GCC in
>> A> stable/10 doesn't like it.
>> A> I think that that is a C11 feature, so it is courteous of more modern
>> A> compilers to not complain about it when compiling in C99 mode.
>>
>> There are a lot of code in kernel, that uses anonymous structs and unions.
>> This feature is enabled globally. Why does this module need special treatment?
There is not a lot of such code. There are a lot of ugly macros like
'define v_rdev v_un.vu_cdev' to avoid having such code since it is
unportable.
> That's a good question and I don't have a good answer to it.
> All I can say is that a GCC build of GENERIC and modules failed in that fashion
> only for this module (in stable/10).
> Maybe I described the problem incorrectly. Then, a proper explanation is welcome.
I think gcc always had anonymous struct/unions, but GCC_MS_EXTENSIONS gives
a MSS variant of them which is even more unportable (but may actually be
better).
Bruce
More information about the svn-src-all
mailing list