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]"