Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

can't execute a.out binaries with recent kernels

43 views
Skip to first unread message

Davide Chiarello

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to linux...@vger.rutgers.edu
I use Linux in my Pharmacy running a SCO based program with iBCS emulator (it needed only a little porting work for some shells). I think that's GREAT!
 
With kernels 2.0.36 everything works but with some recent ones like 2.2.14-22 I can't run a.out programs anymore:
I get a "Segmentation fault"
What should I do, who should I ask?
 
DETAILS:
file outputs this format:
-----------------------------------------------------------------------
./cmodem/fr.out: Microsoft a.out separate pure segmented word-swapped
not-stripped V2.3 V3.0 386 small model executable not stripped
-----------------------------------------------------------------------
(fr.out is the program)
 
trace gives this output:
----------------------------------------------------------
XOUT: binfmt_xout entry: ./fr.out
XOUT: 0001 8048 003f 00 00000400 0000542c 0000542c 00000000
XOUT: 0002 8044 0047 00 00005c00 00001288 000021b0 01880000
XOUT: flushing executable
XOUT: entry point = 0x3f:0x00000000
XOUT: mmap to 0x00000000 from 0x00000400, length 0x0000542c
XOUT: start code 0x00000000, end code 0x0000542c, end data 0x000066b4, brk
0x000075dc
XOUT: loader forces seg fault (status=-22)
XOUT: binfmt_xout: result = 0
-------------------------------------------
 

Brian K. White

unread,
Jun 29, 2000, 3:00:00 AM6/29/00
to linux...@vger.rutgers.edu

I'm running a.out SCO Xenix binaries under kernel 2.2.16
below is a binary that has had fix2000 run on it and one that has not.
So, do you have "support for a.out binaries" and "support for misc binaries"
enabled when you last compiled your kernel?


root@localhost:/root # file /usr/bbx/bbx3r3.0.y2k
/usr/bbx/bbx3r3.0.y2k: Microsoft a.out separate pure segmented word-swapped


V2.3 V3.0 386 small model executable

root@localhost:/root # file /usr/bbx/bbxlst
/usr/bbx/bbxlst: Microsoft a.out separate pure segmented word-swapped V2.3


V3.0 386 small model executable


BTW: if anyone is maintaining a list of binfmt's for use in
/etc/conf.modules, here are two:

# Microsoft a.out separate pure segmented word-swapped V2.3 V3.0 386 small
model
alias binfmt-002c iBCS # BBx / SCO Xenix386 2.3.4

# setuid 80386 COFF
alias binfmt-0004 iBCS # filePro / SCO Open Server 5

--
Brian K. White http://www.squonk.net/users/linut
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO Prosper/FACTS AutoCAD #callahans Satriani

Michel Munnix

unread,
Jul 2, 2000, 3:00:00 AM7/2/00
to ibcs 2
I am having the same problem but I think it's related to the compiler or
library :

iBCS works OK for suse 6.3 distribution
with kernel 2.2.14 compiled by gcc egcs-2.91.66 19990314

iBCS fails with segmentation fault for suse 6.4 distribution
with same kernel 2.2.14 compiled by gcc 2.95.2 19991024
(trace gives absolutely no information, so I guess it happens in the
switching over to the emulation)

suggestions ? should I try a newer compiler/library ?
is there a newer version of iBCS which fixes the problem ?

Michel Munnix

unread,
Jul 4, 2000, 3:00:00 AM7/4/00
to ibcs 2
I tried the following :
- replaced gcc by older version -> does'nt work
- copied the kernel image / map file / modules directory (including
iBCS) from
working system to bad system + rdev + lilo + rebooted ok -> iBCS does'nt
work

If it is'nt the compiler, the kernel, the module, what is between these
that
could make it fail ? modprobe ? a library ?

Michel Munnix

unread,
Jul 5, 2000, 3:00:00 AM7/5/00
to ibcs 2
Michel Munnix wrote:

> I tried the following :
> - replaced gcc by older version -> does'nt work
> - copied the kernel image / map file / modules directory (including
> iBCS) from
> working system to bad system + rdev + lilo + rebooted ok -> iBCS does'nt
> work
>
> If it is'nt the compiler, the kernel, the module, what is between these
> that
> could make it fail ? modprobe ? a library ?

I was wrong, here is the reason of this problem :

The emulator is not able to load the binary

Search in the ibcs source tree iBCSemul/binfmt_aout.c and look for
SIGSEGV

A work around is to put the binaries on a filesystem built with a block
size
of 1024 bytes, it even works if the binary is on an msdos floppy mounted
-o exec.

Brian K. White

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to ibcs 2

wow, thanks for reporting this back. that is *quite* a handy peice of
reference to tuck away. thanks.

0 new messages