On 05/26/2015 10:48 PM, Paolo Bonzini wrote:
On 26/05/2015 16:45, Edward Cree wrote:
This breaks older compilers that can't initialize anon structures.
How old ? Even gcc 3.1 says you can use unnamed struct/union fields and
3.2 is the minimum version required to compile the kernel as mentioned
in the README.
We could simply just name the structure, but I doubt this is the
only place in the kernel code where it's being used this way :)
This appears to be GCC bug #10676, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676>
Says it was fixed in 4.6, but I believe the kernel supports GCCs much older
than that (back to 3.2). I personally hit it on 4.4.7, the version shipped
with RHEL6.6.
Yes, it will be fixed soon(ish). Probably before you can get rid of the
obnoxious disclaimer... :)
It has been fixed by Andrew:
From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Subject: arch/x86/kvm/mmu.c: work around gcc-4.4.4 bug
arch/x86/kvm/mmu.c: In function 'kvm_mmu_pte_write':
arch/x86/kvm/mmu.c:4256: error: unknown field 'cr0_wp' specified in initializer
arch/x86/kvm/mmu.c:4257: error: unknown field 'cr4_pae' specified in initializer
arch/x86/kvm/mmu.c:4257: warning: excess elements in union initializer
...
gcc-4.4.4 (at least) has issues when using anonymous unions in
initializers.
Fixes: edc90b7dc4ceef6 ("KVM: MMU: fix SMAP virtualization")
Cc: Xiao Guangrong <guangrong.xiao@xxxxxxxxxxxxxxx>
Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Should be found at -mm tree.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html