1008 segfaults in genattr

Robert Lipe robertl@dgii.com
Mon Nov 17 14:21:00 GMT 1997


> > If this doesn't make the difference, then there's probably a problem 
> > with the way .fini is being built.
> 
> If .fini on SCO is supported as ELF, atexit () should not be used

SCO makes two distinctly different products  - OpenServer and Unixware.
The Unixware product is the stuff formerly from AT&T/USL/USG/Univel/Novell.

SVR4/386 has never supported generation of COFF binaries - it was ELF
out of the gate and never looked back.   Yes, it will execute many COFF
binaries, but can't create them.   GCC on SVR4/386 reflects this 
"ELF-only" statistic, so I think we can count on having a functional
.fini section.

> at all. BTW, by ".fini", I mean a section which will be called
> by the system automatically upon exit and the only thing you 
> have to do is stick some stuff you want in it. If you need
> to do more than that, it is not the ".fini" gcc wants.

That is part of the ELF spec, and I'm pretty sure that Unixware
does exactly what you're asking of it.


The problem is that "config/svr4.h" #defines HAVE_ATEXIT and nothing
in config/i386/sysv4.h #undefs it.  This is why we see the potentially 
goofy double exit thing on systems that are SVR4-ish on x86, which 
would certainly include Unixware.

Whether config/svr4.h shouldn't define it or i386/sysv4.h should 
undefine it is left as an exercise for someone with a better feel
for risk management. :-)

Things were uglier on OpenServer where we have both COFF and ELF, but
I think that's all behind us now.

RJL



More information about the Gcc mailing list