Skip to contentSkip to conversation

ld segfault at end of 2.6.6 compile

DISCUSSION Geoff Mishkin 1 participant 1 message Jun 17, 2004

lore
Share & tools
lore
#0 lore raw

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 <[email protected]>; */

/* 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 ([email protected])
* - 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