2009-12-28 09:57:51

by Martin Knoblauch

[permalink] [raw]
Subject: 2.6.33-next build errors (x86_64 defconfig) on RHEL-4.3

Hi,

when trying to build 2.6.32.2 or 2.6.33-next on RHEL-4.3(64-bit userland), I get the following errors (this is from 2.6.33-next-20091228):

================================
# make defconfig
# make CONFIG_DEBUG_SECTION_MISMATCH=y
.
.
AS arch/x86/lib/rwlock_64.o
AS arch/x86/lib/thunk_64.o
CC arch/x86/lib/usercopy_64.o
AR arch/x86/lib/lib.a
LD vmlinux.o
MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0xd2f04): Section mismatch in reference from the function hugetlb_register_node() to the function .init.text:hugetlb_sysfs_add_hstate()
The function hugetlb_register_node() references
the function __init hugetlb_sysfs_add_hstate().
This is often because hugetlb_register_node lacks a __init
annotation or the annotation of hugetlb_sysfs_add_hstate is wrong.

WARNING: vmlinux.o(.text+0x20805a): Section mismatch in reference from the function dmar_ir_support() to the variable .init.data:dmar_tbl
The function dmar_ir_support() references
the variable __initdata dmar_tbl.
This is often because dmar_ir_support lacks a __initdata
annotation or the annotation of dmar_tbl is wrong.

WARNING: vmlinux.o(.text+0x222941): Section mismatch in reference from the function acpi_early_processor_set_pdc() to the variable .cpuinit.data:processor_idle_dmi_table
The function acpi_early_processor_set_pdc() references
the variable __cpuinitdata processor_idle_dmi_table.
This is often because acpi_early_processor_set_pdc lacks a __cpuinitdata
annotation or the annotation of processor_idle_dmi_table is wrong.

WARNING: vmlinux.o(.text+0x410dce): Section mismatch in reference from the function pcibios_scan_specific_bus() to the function .devinit.text:pci_scan_bus_on_node()
The function pcibios_scan_specific_bus() references
the function __devinit pci_scan_bus_on_node().
This is often because pcibios_scan_specific_bus lacks a __devinit
annotation or the annotation of pci_scan_bus_on_node is wrong.

GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o(.init.text+0x63ee): In function `con_init':
: undefined reference to `.L949'
make: *** [.tmp_vmlinux1] Error 1
================================


For 2.6.32.2 I only get the "undefined reference to `.L949' error.

And yes, I know that RHEL-4.3 is old. But it is still widely used.

# gcc -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)
# as -v
GNU assembler version 2.15.92.0.2 (x86_64-redhat-linux) using BFD version 2.15.92.0.2 20040927
# ldd -v
ldd: missing file arguments
Try `ldd --help' for more information.
#

Cheers
Martin
------------------------------------------------------
Martin Knoblauch
email: k n o b i AT knobisoft DOT de
www: http://www.knobisoft.de


2009-12-29 09:50:16

by Martin Knoblauch

[permalink] [raw]
Subject: Re: 2.6.33-next build errors (x86_64 defconfig) on RHEL-4.3

----- Original Message ----

> From: Martin Knoblauch <[email protected]>
> To: [email protected]
> Cc: spam trap <[email protected]>
> Sent: Mon, December 28, 2009 10:51:07 AM
> Subject: 2.6.33-next build errors (x86_64 defconfig) on RHEL-4.3
>
> Hi,
>
> when trying to build 2.6.32.2 or 2.6.33-next on RHEL-4.3(64-bit userland), I get
> the following errors (this is from 2.6.33-next-20091228):
>
> ================================
> # make defconfig
> # make CONFIG_DEBUG_SECTION_MISMATCH=y
> .
> .
> AS arch/x86/lib/rwlock_64.o
> AS arch/x86/lib/thunk_64.o
> CC arch/x86/lib/usercopy_64.o
> AR arch/x86/lib/lib.a
> LD vmlinux.o
> MODPOST vmlinux.o
> WARNING: vmlinux.o(.text+0xd2f04): Section mismatch in reference from the
> function hugetlb_register_node() to the function
> .init.text:hugetlb_sysfs_add_hstate()
> The function hugetlb_register_node() references
> the function __init hugetlb_sysfs_add_hstate().
> This is often because hugetlb_register_node lacks a __init
> annotation or the annotation of hugetlb_sysfs_add_hstate is wrong.
>
> WARNING: vmlinux.o(.text+0x20805a): Section mismatch in reference from the
> function dmar_ir_support() to the variable .init.data:dmar_tbl
> The function dmar_ir_support() references
> the variable __initdata dmar_tbl.
> This is often because dmar_ir_support lacks a __initdata
> annotation or the annotation of dmar_tbl is wrong.
>
> WARNING: vmlinux.o(.text+0x222941): Section mismatch in reference from the
> function acpi_early_processor_set_pdc() to the variable
> .cpuinit.data:processor_idle_dmi_table
> The function acpi_early_processor_set_pdc() references
> the variable __cpuinitdata processor_idle_dmi_table.
> This is often because acpi_early_processor_set_pdc lacks a __cpuinitdata
> annotation or the annotation of processor_idle_dmi_table is wrong.
>
> WARNING: vmlinux.o(.text+0x410dce): Section mismatch in reference from the
> function pcibios_scan_specific_bus() to the function
> .devinit.text:pci_scan_bus_on_node()
> The function pcibios_scan_specific_bus() references
> the function __devinit pci_scan_bus_on_node().
> This is often because pcibios_scan_specific_bus lacks a __devinit
> annotation or the annotation of pci_scan_bus_on_node is wrong.
>
> GEN .version
> CHK include/generated/compile.h
> UPD include/generated/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o(.init.text+0x63ee): In function `con_init':
> : undefined reference to `.L949'
> make: *** [.tmp_vmlinux1] Error 1
> ================================
>
>
> For 2.6.32.2 I only get the "undefined reference to `.L949' error.
>
> And yes, I know that RHEL-4.3 is old. But it is still widely used.
>
> # gcc -v
> Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.5/specs
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
> --infodir=/usr/share/info --enable-shared --enable-threads=posix
> --disable-checking --with-system-zlib --enable-__cxa_atexit
> --disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
> Thread model: posix
> gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)
> # as -v
> GNU assembler version 2.15.92.0.2 (x86_64-redhat-linux) using BFD version
> 2.15.92.0.2 20040927
> # ldd -v
> ldd: missing file arguments
> Try `ldd --help' for more information.
> #
>

Not surprisingly, the problem still exists in next-20091229 :-) But actually, I think it might be even as old as 2.6.31-rc3. See

http://lkml.org/lkml/2009/7/14/120

for reference. Different (still older toolchain), but very similar failure.

@Andreas: did you ever had this resolved? I never saw a followup

Cheers
Martin

2009-12-29 13:46:44

by Andreas Mohr

[permalink] [raw]
Subject: Re: 2.6.33-next build errors (x86_64 defconfig) on RHEL-4.3

Hi,

On Tue, Dec 29, 2009 at 01:50:12AM -0800, Martin Knoblauch wrote:
> Not surprisingly, the problem still exists in next-20091229 :-) But actually, I think it might be even as old as 2.6.31-rc3. See
>
> http://lkml.org/lkml/2009/7/14/120
>
> for reference. Different (still older toolchain), but very similar failure.
>
> @Andreas: did you ever had this resolved? I never saw a followup

Sorry, I don't remember that any more (perhaps removing some CONFIG
fixed it), especially since this problem was then overlayed by
a __udivdi3 problem in the same low-versioned environment:
http://lkml.org/lkml/2009/10/9/230

I thus decommissioned that RHEL3 installation and downgraded to RHEL5
(it managed to do away with any custom kernel builds entirely, among
other things - an interesting approach to fix the problem)

Andreas Mohr