news@brian386.UUCP (Wm. Brian McCane) (05/04/89)
Okay, I have a question. While compiling a program recently posted on
the net, with GNU CC, I got:
gnucc: Program cc1 got fatal signal 6.
I looked this up in the SDS manual, and it says that signal 6 is SIGIOT,
and has the ever helpful description:
SIGIOT 06 IOT instruction
(Thanks guys ;-) Anyway, what is an IOT instruction and why would I be
getting one during a compile.
My system is MicroPort V386r3.0e.
Any help greatly appreciated
brian
--
Wm. Brian McCane | Life is full of doors that won't open
| when you knock, equally spaced amid
Disclaimer: I don't think they even | those that open when you don't want
admit I work here. | them to. - Roger Zelazny "Blood of Amber"
guy@auspex.auspex.com (Guy Harris) (05/06/89)
>gnucc: Program cc1 got fatal signal 6. > >I looked this up in the SDS manual, and it says that signal 6 is SIGIOT, >and has the ever helpful description: > >SIGIOT 06 IOT instruction > >(Thanks guys ;-) Anyway, what is an IOT instruction and why would I be >getting one during a compile. > >My system is MicroPort V386r3.0e. And the manual is being stupid. An IOT instruction is an instruction on the PDP-11; a routine called "abort()" in PDP-11 UNIX executed this instruction. That routine was to be used by programs that were "at the end of their rope", and wanted to exit and force a core dump. In later UNIX releases, "abort()" just sent a SIGIOT signal to the process itself, which means it didn't have to execute some instruction that might not even exist. In even later UNIX releases, such as S5R3 - upon which the Microport release in question is, I assume, based, so I don't understand why it doesn't follow suit here - the signal SIGIOT was renamed SIGABRT, to reflect the fact that it now meant "program-generated abort" rather than "IOT instruction executed". The message means "Program cc1 came to the end of its rope and executed 'abort()' in the hopes that somebody might be able to paw through its core dump and figure out what went wrong." Have fun with the "core" file....
news@brian386.UUCP (Wm. Brian McCane) (05/06/89)
In article <433@brian386.UUCP> news@brian386.UUCP (Wm. Brian McCane) writes: >... While compiling a program recently posted on >the net, with GNU CC, I got: > >gnucc: Program cc1 got fatal signal 6. > >I looked this up in the SDS manual, and it says that signal 6 is SIGIOT, > >SIGIOT 06 IOT instruction > >Anyway, what is an IOT instruction and why would I be >getting one during a compile. > >My system is MicroPort V386r3.0e. A new twist on the same theme. I have discovered that when I am compiling, I only get the problem with the '-g' option, if I compile with no options or with -O, it works just fine. Of course this isn't too helpful when your debugging a program. The command I am using is: gnucc -DUSG -g -c file.c I am also using GNU MAKE 3.47, and am not using the GNU assembler. thx in advantz brian -- Wm. Brian McCane | Life is full of doors that won't open | when you knock, equally spaced amid Disclaimer: I don't think they even | those that open when you don't want admit I work here. | them to. - Roger Zelazny "Blood of Amber"
bzs@bu-cs.BU.EDU (Barry Shein) (05/06/89)
From: news@brian386.UUCP (Wm. Brian McCane) >SIGIOT 06 IOT instruction > >(Thanks guys ;-) Anyway, what is an IOT instruction and why would I be >getting one during a compile. > >My system is MicroPort V386r3.0e. Aha! That's your problem, an IOT is an instruction on a PDP-11, you have the wrong machine! What's probably happened is the compiler has called abort(3) after detecting an internal error to try to force a core dump of itself, abort() uses SIGIOT (sends itself a kill(0,SIGIOT) on the assumption that it won't be used for anything else so will take the default action and core dump.) IOT really is a PDP-11 instruction (I/O Trap) so the name is just a hangover tho the concept probably could have been valid (eg. asynchronous I/O completion or I/O error) but alas they couldn't keep their grubby little hands off it :-) -- -Barry Shein, Software Tool & Die There's nothing more terrifying to hardware vendors than satisfied customers.
phd_ivo@gsbacd.uchicago.edu (05/11/89)
***************************************************** >A new twist on the same theme. I have discovered that when I am >compiling, I only get the problem with the '-g' option, if I compile >with no options or with -O, it works just fine. Well, I have a program running on NeXt's gnu that aborts with 6 if I compile with -gg -O, but not with -gg only (i.e., no -O). :-) It's not even a program I wrote, but a simple function from the Numerical Recipees book. Now I have to figure out where to send bug reports... /ivo welch phd_ivo@gsbacd.uchicago.edu