As Anatoly Sokolov wrote:

> I would prefer to correspond to 'C' standard completely, but we are
> ready to pay such price, for that that function 'main()' to be
> callable?

That's I would like to have that as a command-line option.  We
definately should adhere to the C standard by default, but by
suggesting the users to use an option like -momit-mainframe (:-), they
can adjust it to the current behaviour.  Documentation needs to
clarify the implications of using that option.

As for suggesting that to the users, I think the Makefile templates
(WinAVR, Mfile, AVR Studio Makefile generation) are already doing a
good enough job, so many users probably wouldn't notice it at all.

So far, I've seen a couple of users (maybe) complaining on
avrfreaks.net, not more, and in that case, it's already been the
pathological case you've been quoting.

Of course, if the command-line option is impossible for some reason
(e.g. since it would make the RTL too complicated or whatever), we
really have to see whether standards conformance or code bloat is more
important for us.

Back to the topic of that bug report: As the library does not know
whether the compiler has been generating a main() with a RET at the
end or not, it was my suggestion that the library really always calls
main(), and feeds its return value into exit(), as the cost for this
is minimal (2 to 4 bytes of ROM, and 2 or 3 bytes of stack).  Of
course, should we completely decide against a callable main() (even as
a compiler option), we don't need to do that.

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)


_______________________________________________
AVR-libc-dev mailing list
AVR-libc-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev

Reply via email to