https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63344
Bug ID: 63344 Summary: [5 Regression] Linux (makeallyes config) compilation error: error: apic_numachip causes a section type conflict with numachip_system Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: mliska at suse dot cz CC: hubicka at ucw dot cz During testing of latest compiler, I've encountered an error in Linux kernel: https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/arch/x86/kernel/apic/apic_numachip.c?id=refs/tags/next-20140923 arch/x86/kernel/apic/apic_numachip.c:33:12: error: numachip_system causes a section type conflict with apic_numachip static int numachip_system __read_mostly; ^ arch/x86/kernel/apic/apic_numachip.c:205:26: note: 'apic_numachip' was declared here static const struct apic apic_numachip __refconst = { There's a testcase reduced by creduce: $ cat testcase.ii struct apic { int *name } numachip_system __attribute__((__section__(".data..read_mostly"))); static const struct apic apic_numachip __attribute__((__section__(".data..read_mostly"))); static const struct apic apic_numachip __attribute__((__section__(""))) = {.name = ""}; $ gcc testcase.i -S /home/marxin/Programming/testcases/kernel_numa/testcase.i:6:26: error: apic_numachip causes a section type conflict with numachip_system The problem started with: r211363 Older gcc produces: /home/marxin/Programming/testcases/kernel_numa/testcase.i:3:1: warning: no semicolon at end of struct or union [enabled by default] } numachip_system __attribute__((__section__(".data..read_mostly"))); ^ /home/marxin/Programming/testcases/kernel_numa/testcase.i:7:5: warning: initialization from incompatible pointer type [enabled by default] __attribute__((__section__(""))) = {.name = ""}; ^ /home/marxin/Programming/testcases/kernel_numa/testcase.i:7:5: warning: (near initialization for ‘apic_numachip.name’) [enabled by default] I am not familiar with section attribute magic, but it looks like a regression. Thank you, Martin