As far as I can tell:
- Prior to 2001 GCC used to provide its own assert.h
- The GCC assert.h required __eprintf to emit the error message
- FreeBSD's own assert.h never used this
so objects with references to __eprintf must have been compiled with a 15 year old GCC other than the one in the base system. I'm not sure we need to worry about that.
This came up because __eprintf references __stderrp, compilerrt_mumble, fflush and fprintf. This doesn't matter much when used as libgcc.a, although introduces a small additional link-time overhead for probably no value.
I would like to extend compiler-rt to libgcc_s.so as well, and this dependency seems silly there (even if in practice it will not be a problem).