m4 or newlib should be, in my opinion, completely hidden from the
user.
We're trying to get rid of m4 anyway.
Yes, true. There's a lot of functionality there, though. How to
replace it?
With a script which converts it to newlib at compile time. There are
quite a number of surface mount footprints in m4 which are quite useable
right now. I'm not going to scrap those, but I would like to avoid a
runtime m4 dependency.