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