Re: ld segfault at end of 2.6.6 compile
From: Geoff Mishkin
Date: Wed Jun 16 2004 - 23:21:16 EST
I've got some new information, this is the output of the ld command with
the -v option. The original invocation is in my original post in this
topic.
GNU ld version 2.14.90.0.8 20040114
Supported emulations:
elf_i386
i386linux
elf_i386_glibc21
opened script file arch/i386/kernel/vmlinux.lds.s
using external linker script:
==================================================
/* ld script to make i386 Linux kernel
* Written by Martin Mares <mj@xxxxxxxxxxxxxxxxxxxxxxxx>;
*/
/* Kernel version magic *//* Kernel symbol table: Normal symbols *//* Kernel symbol table: GPL-only symbols *//* Kernel symbol table: Normal symbols *//* Kernel symbol table: GPL-only symbols *//* Kernel symbol table: strings */
/* thread_info.h: i386 low-level thread information
*
* Copyright (C) 2002 David Howells (dhowells@xxxxxxxxxx)
* - Incorporating suggestions made by Linus Torvalds and Dave Miller
*/
/*
* Automatically generated C config: don't edit
*/
/*
* Code maturity level options
*/
/*
* General setup
*/
/*
* Loadable module support
*/
/*
* Processor type and features
*/
/*
* Firmware Drivers
*/
/*
* Power management options (ACPI, APM)
*/
/*
* ACPI (Advanced Configuration and Power Interface) Support
*/
/*
* APM (Advanced Power Management) BIOS Support
*/
/*
* CPU Frequency scaling
*/
/*
* CPUFreq processor drivers
*/
/*
* Bus options (PCI, PCMCIA, EISA, MCA, ISA)
*/
/*
* PCMCIA/CardBus support
*/
/*
* PCI Hotplug Support
*/
/*
* Executable file formats
*/
/*
* Device Drivers
*/
/*
* Generic Driver Options
*/
/*
* Memory Technology Devices (MTD)
*/
/*
* Parallel port support
*/
/*
* Plug and Play support
*/
/*
* Block devices
*/
/*
* ATA/ATAPI/MFM/RLL support
*/
/*
* Please see Documentation/ide.txt for help/info on IDE drives
*/
/*
* IDE chipset support/bugfixes
*/
/*
* SCSI device support
*/
/*
* SCSI support type (disk, tape, CD-ROM)
*/
/*
* Some SCSI devices (e.g. CD jukebox) support multiple LUNs
*/
/*
* SCSI Transport Attributes
*/
/*
* SCSI low-level drivers
*/
/*
* PCMCIA SCSI adapter support
*/
/*
* Old CD-ROM drivers (not SCSI, not IDE)
*/
/*
* Multi-device support (RAID and LVM)
*/
/*
* Fusion MPT device support
*/
/*
* IEEE 1394 (FireWire) support
*/
/*
* I2O device support
*/
/*
* Networking support
*/
/*
* Networking options
*/
/*
* IP: Virtual Server Configuration
*/
/*
* IP: Netfilter Configuration
*/
/*
* SCTP Configuration (EXPERIMENTAL)
*/
/*
* QoS and/or fair queueing
*/
/*
* Network testing
*/
/*
* ARCnet devices
*/
/*
* Ethernet (10 or 100Mbit)
*/
/*
* Ethernet (1000 Mbit)
*/
/*
* Ethernet (10000 Mbit)
*/
/*
* Token Ring devices
*/
/*
* Wireless LAN (non-hamradio)
*/
/*
* Obsolete Wireless cards support (pre-802.11)
*/
/*
* Wireless 802.11 Frequency Hopping cards support
*/
/*
* Wireless 802.11b ISA/PCI cards support
*/
/*
* Wireless 802.11b Pcmcia/Cardbus cards support
*/
/*
* Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
*/
/*
* PCMCIA network device support
*/
/*
* Wan interfaces
*/
/*
* ISDN subsystem
*/
/*
* Telephony Support
*/
/*
* Input device support
*/
/*
* Userland interfaces
*/
/*
* Input I/O drivers
*/
/*
* Input Device Drivers
*/
/*
* Character devices
*/
/*
* Serial drivers
*/
/*
* Non-8250 serial port support
*/
/*
* IPMI
*/
/*
* Watchdog Cards
*/
/*
* Ftape, the floppy tape device driver
*/
/*
* PCMCIA character devices
*/
/*
* I2C support
*/
/*
* I2C Algorithms
*/
/*
* I2C Hardware Bus support
*/
/*
* Hardware Sensors Chip support
*/
/*
* Other I2C Chip support
*/
/*
* Misc devices
*/
/*
* Multimedia devices
*/
/*
* Video For Linux
*/
/*
* Video Adapters
*/
/*
* Radio Adapters
*/
/*
* Digital Video Broadcasting Devices
*/
/*
* Graphics support
*/
/*
* Console display driver support
*/
/*
* Logo configuration
*/
/*
* Sound
*/
/*
* Advanced Linux Sound Architecture
*/
/*
* Generic devices
*/
/*
* ISA devices
*/
/*
* PCI devices
*/
/*
* ALSA USB devices
*/
/*
* PCMCIA devices
*/
/*
* Open Sound System
*/
/*
* USB support
*/
/*
* Miscellaneous USB options
*/
/*
* USB Host Controller Drivers
*/
/*
* USB Device Class drivers
*/
/*
* USB Human Interface Devices (HID)
*/
/*
* USB HID Boot Protocol drivers
*/
/*
* USB Imaging devices
*/
/*
* USB Multimedia devices
*/
/*
* USB Network adaptors
*/
/*
* USB port drivers
*/
/*
* USB Serial Converter support
*/
/*
* USB Miscellaneous drivers
*/
/*
* USB Gadget Support
*/
/*
* File systems
*/
/*
* CD-ROM/DVD Filesystems
*/
/*
* DOS/FAT/NT Filesystems
*/
/*
* Pseudo filesystems
*/
/*
* Miscellaneous filesystems
*/
/*
* Network File Systems
*/
/*
* Partition Types
*/
/*
* Native Language Support
*/
/*
* Profiling support
*/
/*
* Kernel hacking
*/
/*
* Security options
*/
/*
* Cryptographic options
*/
/*
* Library routines
*/
/* PAGE_SHIFT determines the page size */
/* !__ASSEMBLY__ */
/* to align the pointer to the (next) page boundary */
/*
* This handles the memory map.. We could make this a config
* option, but too many people screw it up, and too few need
* it.
*
* A __PAGE_OFFSET of 0xC0000000 means that the kernel has
* a virtual address space of one gigabyte, which limits the
* amount of physical memory you can use to about 950MB.
*
* If you want more physical memory than this then see the CONFIG_HIGHMEM4G
* and CONFIG_HIGHMEM64G options in the kernel configuration.
*/
/*
* This much address space is reserved for vmalloc() and iomap()
* as well as fixmap mappings.
*/
/* __ASSEMBLY__ */
/* !CONFIG_DISCONTIGMEM */
/* __KERNEL__ */
/* _I386_PAGE_H */
/*
* low level task data that entry.S needs immediate access to
* - this struct should fit entirely inside of one cache line
* - this struct shares the supervisor stack pages
* - if the contents of this structure are changed, the assembly constants must also be changed
*/
/* !__ASSEMBLY__ */
/* offsets into the thread_info struct for assembly code access */
/*
* macros/functions for gaining access to the thread information structure
*
* preempt_count needs to be 1 initially, until the scheduler is functional.
*/
/* !__ASSEMBLY__ */
/* how to get the thread information struct from ASM */
/* use this one if reg already contains %esp */
/*
* thread information flags
* - these are process state flags that various assembly files may need to access
* - pending work-to-be-done flags are in LSW
* - other flags in MSW
*/
/* work to do on interrupt/exception return */
/*
* Thread-synchronous status.
*
* This is different from the flags in that nobody else
* ever touches our thread-synchronous status, so we don't
* have to worry about atomic accesses.
*/
/* __KERNEL__ */
/* _ASM_THREAD_INFO_H */
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(startup_32)
jiffies = jiffies_64;
SECTIONS
{
. = 0xC0000000 + 0x100000;
/* read-only */
_text = .; /* Text and read-only data */
.text : {
*(.text)
__scheduling_functions_start_here = .; *(.sched.text) __scheduling_functions_end_here = .;
*(.fixup)
*(.gnu.warning)
} = 0x9090
_etext = .; /* End of text section */
. = ALIGN(16); /* Exception table */
__start___ex_table = .;
__ex_table : { *(__ex_table) }
__stop___ex_table = .;
.rodata : AT(ADDR(.rodata) - 0) { *(.rodata) *(.rodata.*) *(__vermagic) } .rodata1 : AT(ADDR(.rodata1) - 0) { *(.rodata1) } __ksymtab : AT(ADDR(__ksymtab) - 0) { __start___ksymtab = .; *(__ksymtab) __stop___ksymtab = .; } __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - 0) { __start___ksymtab_gpl = .; *(__ksymtab_gpl) __stop___ksymtab_gpl = .; } __kcrctab : AT(ADDR(__kcrctab) - 0) { __start___kcrctab = .; *(__kcrctab) __stop___kcrctab = .; } __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - 0) { __start___kcrctab_gpl = .; *(__kcrctab_gpl) __stop___kcrctab_gpl = .; } __ksymtab_strings : AT(ADDR(__ksymtab_strings) - 0) { *(__ksymtab_strings) }
/* writeable */
.data : { /* Data */
*(.data)
CONSTRUCTORS
}
. = ALIGN(4096);
__nosave_begin = .;
.data_nosave : { *(.data.nosave) }
. = ALIGN(4096);
__nosave_end = .;
. = ALIGN(4096);
.data.page_aligned : { *(.data.idt) }
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
_edata = .; /* End of data section */
. = ALIGN((8192)); /* init_task */
.data.init_task : { *(.data.init_task) }
/* will be freed after init */
. = ALIGN(4096); /* Init code and data */
__init_begin = .;
.init.text : {
_sinittext = .;
*(.init.text)
_einittext = .;
}
.init.data : { *(.init.data) }
. = ALIGN(16);
__setup_start = .;
.init.setup : { *(.init.setup) }
__setup_end = .;
__start___param = .;
__param : { *(__param) }
__stop___param = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
}
__initcall_end = .;
__con_initcall_start = .;
.con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .;
.security_initcall.init : { __security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .; }
. = ALIGN(4);
__alt_instructions = .;
.altinstructions : { *(.altinstructions) }
__alt_instructions_end = .;
.altinstr_replacement : { *(.altinstr_replacement) }
/* .exit.text is discard at runtime, not link time, to deal with references
from .altinstructions and .eh_frame */
.exit.text : { *(.exit.text) }
.exit.data : { *(.exit.data) }
. = ALIGN(4096);
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
. = ALIGN(32);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
. = ALIGN(4096);
__init_end = .;
/* freed after init ends here */
__bss_start = .; /* BSS */
.bss : {
*(.bss.page_aligned)
*(.bss)
}
. = ALIGN(4);
__bss_stop = .;
_end = . ;
/* This is where the kernel creates the early boot page tables */
. = ALIGN(4096);
pg0 = .;
/* Sections to be discarded */
/DISCARD/ : {
*(.exitcall.exit)
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
}
==================================================
attempt to open arch/i386/kernel/head.o succeeded
arch/i386/kernel/head.o
attempt to open arch/i386/kernel/init_task.o succeeded
arch/i386/kernel/init_task.o
attempt to open init/built-in.o succeeded
init/built-in.o
attempt to open usr/built-in.o succeeded
usr/built-in.o
attempt to open arch/i386/kernel/built-in.o succeeded
arch/i386/kernel/built-in.o
attempt to open arch/i386/mm/built-in.o succeeded
arch/i386/mm/built-in.o
attempt to open arch/i386/mach-default/built-in.o succeeded
arch/i386/mach-default/built-in.o
attempt to open kernel/built-in.o succeeded
kernel/built-in.o
attempt to open mm/built-in.o succeeded
mm/built-in.o
attempt to open fs/built-in.o succeeded
fs/built-in.o
attempt to open ipc/built-in.o succeeded
ipc/built-in.o
attempt to open security/built-in.o succeeded
security/built-in.o
attempt to open crypto/built-in.o succeeded
crypto/built-in.o
attempt to open lib/lib.a succeeded
(lib/lib.a)bitmap.o
(lib/lib.a)cmdline.o
(lib/lib.a)ctype.o
(lib/lib.a)errno.o
(lib/lib.a)extable.o
(lib/lib.a)idr.o
(lib/lib.a)int_sqrt.o
(lib/lib.a)kobject.o
(lib/lib.a)parser.o
(lib/lib.a)radix-tree.o
(lib/lib.a)rbtree.o
(lib/lib.a)rwsem.o
(lib/lib.a)string.o
(lib/lib.a)vsprintf.o
attempt to open arch/i386/lib/lib.a succeeded
(arch/i386/lib/lib.a)checksum.o
(arch/i386/lib/lib.a)dec_and_lock.o
(arch/i386/lib/lib.a)delay.o
(arch/i386/lib/lib.a)getuser.o
(arch/i386/lib/lib.a)memcpy.o
(arch/i386/lib/lib.a)strstr.o
(arch/i386/lib/lib.a)usercopy.o
attempt to open lib/built-in.o succeeded
lib/built-in.o
attempt to open arch/i386/lib/built-in.o succeeded
attempt to open drivers/built-in.o succeeded
drivers/built-in.o
attempt to open sound/built-in.o succeeded
attempt to open arch/i386/pci/built-in.o succeeded
arch/i386/pci/built-in.o
attempt to open arch/i386/power/built-in.o succeeded
arch/i386/power/built-in.o
attempt to open net/built-in.o succeeded
net/built-in.o