atom feed1 message in org.freebsd.freebsd-bugsHelloWorld segfaults
FromSent OnAttachments
Ralf SchmittDec 25, 1998 6:56 am 
Subject:HelloWorld segfaults
From:Ralf Schmitt (schm@mail.Uni-Mainz.de)
Date:Dec 25, 1998 6:56:13 am
List:org.freebsd.freebsd-bugs

Hi,

I think i found a rather serious bug in FreeBSD 3.0 (3.0-RELEASE not current)...when i compile a short hello world program with the executable written to an ext2fs partition, i get segfaults when starting the program... /var/log/messages says: Dec 25 00:11:36 myname /kernel: pid 523 (a.out), uid 1000: exited on signal 10 (or signal 4 or 11)

A short log of a shell session is included as well as my kernel configuration file...

Thanks and merry christmas, - Ralf

Here is a short shell session: ==============================

bash-2.01# uname -a FreeBSD myname.my.domain 3.0-RELEASE FreeBSD 3.0-RELEASE #1: Tue Dec 22 13:15:28
CET 1998 ro@myname.my.domain:/usr/src/sys/compile/MYKERNEL i386 bash-2.01# mount -p /dev/wd0s4a / ufs rw 1 1 /dev/wd0s4f /usr ufs rw 2 2 /dev/wd0s4e /var ufs rw 2 2 procfs /proc procfs rw 0 0 mfs:23 /tmp mfs rw,async 0 0 /dev/da0s7 /linuxhome ext2fs rw 2 2 bash-2.01# g++ -v cc -v gcc version 2.7.2.1 bash-2.01# pwd /root bash-2.01# cat hello.cc #include <stdio.h>

int main(int argc, char **argv) { printf ("Hello World...\n"); return 0; } bash-2.01# g++ hello.cc bash-2.01# ./a.out Hello World... bash-2.01# cp a.out /linuxhome/ bash-2.01# /linuxhome/a.out Hello World... bash-2.01# g++ hello.cc -o /linuxhome/a.out bash-2.01# /linuxhome/a.out Segmentation fault (core dumped) bash-2.01# g++ hello.cc -o /linuxhome/a.out -g bash-2.01# gdb /linuxhome/a.out GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation,
Inc...BFD: /linuxhome/a.out: invalid string offset 7237490 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 1600061537 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 1694524526 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 134520236 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 134520244 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 134520252 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 134520260 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2644522495 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2645042687 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2645304831 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2645566975 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2645829119 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2646091263 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2646353407 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2646615551 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 2646877695 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 1474660693 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 495520949 >= 519 for section
`.strtab' BFD: /linuxhome/a.out: invalid string offset 134520196 >= 519 for section
`.strtab'

(gdb) run Starting program: /linuxhome/a.out

Program received signal SIGSEGV, Segmentation fault. 0x804854c in _init () (gdb) backtrace #0 0x804854c in _init () #1 0x8048629 in _start () (gdb) quit The program is running. Quit anyway (and kill it)? (y or n) y bash-2.01# g++ -c hello.cc bash-2.01# g++ -c hello.cc -o /linuxhome/hello.o bash-2.01# cmp hello.o /linuxhome/hello.o bash-2.01# g++ hello.o bash-2.01# ./a.out Hello World... bash-2.01# g++ /linuxhome/hello.o -o /linuxhome/a.out bash-2.01# /linuxhome/a.out Segmentation fault (core dumped) bash-2.01#

=======================================================================

# # GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks # # For more information read the handbook part System Administration -> # Configuring the FreeBSD Kernel -> The Configuration File. # The handbook is available in /usr/share/doc/handbook or online as # latest version from the FreeBSD World Wide Web server # <URL:http://www.FreeBSD.ORG/> # # An exhaustive list of options and more detailed explanations of the # device lines is present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $Id: GENERIC,v 1.125 1998/10/16 01:30:11 obrien Exp $

machine "i386" cpu "I386_CPU" cpu "I486_CPU" cpu "I586_CPU" cpu "I686_CPU" ident MYKERNEL maxusers 32

#options MATH_EMULATE #Support for x87 emulation options INET #InterNETworking options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] options MFS #Memory Filesystem options MFS_ROOT #MFS usable as root device, "MFS" req'ed options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device, "NFS" req'ed options MSDOSFS #MSDOS Filesystem options "CD9660" #ISO 9660 Filesystem options "CD9660_ROOT" #CD-ROM usable as root. "CD9660" req'ed options PROCFS #Process filesystem

options "EXT2FS"

options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=3000 #Be pessimistic about Joe SCSI device options UCONSOLE #Allow users to grab the console options FAILSAFE #Be conservative options USERCONFIG #boot -c editor options VISUAL_USERCONFIG #visual boot -c editor

config kernel root on wd0

controller isa0 controller eisa0 controller pci0

controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 disk fd1 at fdc0 drive 1 # Unless you know very well what you're doing, leave ft0 at drive 2, or # remove the line entirely if you don't need it. Trying to configure # it on another unit might cause surprises, see PR kern/7176. tape ft0 at fdc0 drive 2

options "CMD640" # work around CMD640 chip deficiency controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1

controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr disk wd2 at wdc1 drive 0 disk wd3 at wdc1 drive 1

options ATAPI #Enable ATAPI support for IDE bus options ATAPI_STATIC #Don't do it as an LKM device wcd0 #IDE CD-ROM device wfd0 #IDE Floppy (e.g. LS-120)

# A single entry for any of these controllers (ncr, ahb, ahc, amd) is # sufficient for any number of installed devices. #controller ncr0 #controller amd0 #controller ahb0 controller ahc0 controller isp0

# This controller offers a number of configuration options, too many to # document here - see the LINT file in this directory and look up the # dpt0 entry there for much fuller documentation on this. controller dpt0

controller adv0 at isa? port ? cam irq ? controller adw0 #controller bt0 at isa? port ? cam irq ? #controller aha0 at isa? port ? cam irq ? #controller uha0 at isa? port "IO_UHA0" bio irq ? drq 5 vector uhaintr #controller aic0 at isa? port 0x340 bio irq 11 vector aicintr #controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr #controller nca1 at isa? port 0x350 bio irq 5 vector ncaintr #controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000 vector seaintr

controller scbus0

device da0

device sa0

device pass0

device cd0 #Only need one of these, the code dynamically grows device sd0

device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr #device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr

#controller matcd0 at isa? port 0x230 bio

#device scd0 at isa? port 0x230 bio

# syscons is the default console driver, resembling an SCO console device sc0 at isa? port "IO_KBD" conflicts tty irq 1 vector scintr # Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? port "IO_KBD" conflicts tty irq 1 vector pcrint #options XSERVER # support for X server #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std

device npx0 at isa? port "IO_NPX" irq 13 vector npxintr

# # Laptop support (see LINT for more options) # device apm0 at isa? disable flags 0x31 # Advanced Power Management

# PCCARD (PCMCIA) support #controller card0 #device pcic0 at card? #device pcic1 at card?

device sio0 at isa? port "IO_COM1" flags 0x10 tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? disable port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? disable port "IO_COM4" tty irq 9 vector siointr

device lpt0 at isa? port? tty irq 7 vector lptintr

device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

# Order is important here due to intrusive probes, do *not* alphabetize # this list of network interfaces until the probes have been fixed. # Right now it appears that the ie0 must be probed before ep0. See # revision 1.20 of this file. #device de0 #device fxp0 device tl0 device tx0 #device vx0 device xl0

#device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000 vector edintr device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000 vector ieintr device ep0 at isa? port 0x300 net irq 10 vector epintr device ex0 at isa? port? net irq? vector exintr #device fe0 at isa? port 0x300 net irq ? vector feintr device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector le_intr #device lnc0 at isa? port 0x280 net irq 10 drq 0 vector lncintr #device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zeintr #device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector zpintr device cs0 at isa? port 0x300 net irq ? vector csintr

pseudo-device loop pseudo-device ether pseudo-device sl 1 pseudo-device ppp 1 pseudo-device tun 1 pseudo-device pty 16 pseudo-device gzip # Exec gzipped a.out's pseudo-device vn

# KTRACE enables the system-call tracing facility ktrace(2). # This adds 4 KB bloat to your kernel, and slightly increases # the costs of each syscall. options KTRACE #kernel tracing

# This provides support for System V shared memory. # options SYSVSHM

# The `bpfilter' pseudo-device enables the Berkeley Packet Filter. Be # aware of the legal and administrative consequences of enabling this # option. The number of devices determines the maximum number of # simultaneous BPF clients programs runnable. #pseudo-device bpfilter 4 #Berkeley packet filter

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message