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
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to