Latest working kernel version: Earliest failing kernel version: Distribution: Gentoo ~amd64 Hardware Environment: amd64 X2 Software Environment: gcc-4.2.2 Problem Description: With "make CONFIG_DEBUG_SECTION_MISMATCH=y" above kernel building occurs these section mismatch warnings : MODPOST vmlinux.o WARNING: vmlinux.o(.text+0x6c67): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node The function nearby_node() references the variable __cpuinitdata apicid_to_node. This is often because nearby_node lacks a __cpuinitdata annotation or the annotation of apicid_to_node is wrong. WARNING: vmlinux.o(.text+0x6c9a): Section mismatch in reference from the function nearby_node() to the variable .cpuinit.data:apicid_to_node The function nearby_node() references the variable __cpuinitdata apicid_to_node. This is often because nearby_node lacks a __cpuinitdata annotation or the annotation of apicid_to_node is wrong. WARNING: vmlinux.o(.text+0x6dcd): Section mismatch in reference from the function srat_detect_node() to the variable .cpuinit.data:apicid_to_node The function srat_detect_node() references the variable __cpuinitdata apicid_to_node. This is often because srat_detect_node lacks a __cpuinitdata annotation or the annotation of apicid_to_node is wrong. WARNING: vmlinux.o(.text+0x6dfd): Section mismatch in reference from the function srat_detect_node() to the function .cpuinit.text:numa_set_node() The function srat_detect_node() references the function __cpuinit numa_set_node(). This is often because srat_detect_node lacks a __cpuinit annotation or the annotation of numa_set_node is wrong. WARNING: vmlinux.o(.text+0x1cb4c): Section mismatch in reference from the function reserve_hotadd() to the function .init.text:absent_pages_in_range() The function reserve_hotadd() references the function __init absent_pages_in_range(). This is often because reserve_hotadd lacks a __init annotation or the annotation of absent_pages_in_range is wrong. WARNING: vmlinux.o(.text+0x18c62d): Section mismatch in reference from the function pci_scan_child_bus() to the function .devinit.text:pcibios_fixup_bus() The function pci_scan_child_bus() references the function __devinit pcibios_fixup_bus(). This is often because pci_scan_child_bus lacks a __devinit annotation or the annotation of pcibios_fixup_bus is wrong. WARNING: vmlinux.o(.text+0x1c8666): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:mtrr The function param_set_scroll() references the variable __devinitdata mtrr. This is often because param_set_scroll lacks a __devinitdata annotation or the annotation of mtrr is wrong. WARNING: vmlinux.o(.text+0x1c86a6): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:mtrr The function param_set_scroll() references the variable __devinitdata mtrr. This is often because param_set_scroll lacks a __devinitdata annotation or the annotation of mtrr is wrong. WARNING: vmlinux.o(.text+0x1c86d4): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:pmi_setpal The function param_set_scroll() references the variable __devinitdata pmi_setpal. This is often because param_set_scroll lacks a __devinitdata annotation or the annotation of pmi_setpal is wrong. WARNING: vmlinux.o(.text+0x1c86da): Section mismatch in reference from the function param_set_scroll() to the variable .devinit.data:pmi_setpal The function param_set_scroll() references the variable __devinitdata pmi_setpal. This is often because param_set_scroll lacks a __devinitdata annotation or the annotation of pmi_setpal is wrong. WARNING: vmlinux.o(.text+0x1ed37b): Section mismatch in reference from the function acpi_pci_root_add() to the function .devinit.text:pci_acpi_scan_root() The function acpi_pci_root_add() references the function __devinit pci_acpi_scan_root(). This is often because acpi_pci_root_add lacks a __devinit annotation or the annotation of pci_acpi_scan_root is wrong. WARNING: vmlinux.o(.cpuinit.text+0x33c4): Section mismatch in reference from the function setup_trampoline() to the variable .init.data:trampoline_data The function __cpuinit setup_trampoline() references a variable __initdata trampoline_data. If setup_trampoline is only used by trampoline_data then annotate setup_trampoline with a matching annotation. WARNING: vmlinux.o(.cpuinit.text+0x33cb): Section mismatch in reference from the function setup_trampoline() to the variable .init.data:trampoline_end The function __cpuinit setup_trampoline() references a variable __initdata trampoline_end. If setup_trampoline is only used by trampoline_end then annotate setup_trampoline with a matching annotation. WARNING: vmlinux.o(.data+0x25720): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_ite887x_exit() The variable pci_serial_quirks references the function __devexit pci_ite887x_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25748): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit() The variable pci_serial_quirks references the function __devexit pci_plx9050_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25770): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit() The variable pci_serial_quirks references the function __devexit pci_plx9050_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x257c0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit() The variable pci_serial_quirks references the function __devexit pci_plx9050_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x257e8): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit() The variable pci_serial_quirks references the function __devexit pci_plx9050_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25810): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:pci_plx9050_exit() The variable pci_serial_quirks references the function __devexit pci_plx9050_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25838): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit() The variable pci_serial_quirks references the function __devexit sbs_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25860): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit() The variable pci_serial_quirks references the function __devexit sbs_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x25888): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit() The variable pci_serial_quirks references the function __devexit sbs_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.data+0x258b0): Section mismatch in reference from the variable pci_serial_quirks to the function .devexit.text:sbs_exit() The variable pci_serial_quirks references the function __devexit sbs_exit() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console, WARNING: vmlinux.o(.cpuinit.data+0x0): Section mismatch in reference from the variable initial_code to the function .init.text:x86_64_start_kernel() The variable __cpuinitdata initial_code references a function __init x86_64_start_kernel(). If initial_code is only used by x86_64_start_kernel then annotate initial_code with a matching annotation. Building modules, stage 2. MODPOST 85 modules WARNING: drivers/parport/parport_pc.o(.text+0x11e1): Section mismatch in reference from the function parport_pc_probe_port() to the function .devinit.text:parport_ECP_supported() The function parport_pc_probe_port() references the function __devinit parport_ECP_supported(). This is often because parport_pc_probe_port lacks a __devinit annotation or the annotation of parport_ECP_supported is wrong. Steps to reproduce:
Created attachment 14812 [details] .config
Created attachment 15784 [details] Section mismatches reported on the 2.6.25 kernel (x86_64).