Attempting to fix printf, which is totally broken on-calc.

Appears the printf tests pass on x86_64 only due to platform quirks; ANSI C
says a va_list passed to a function which modifies it has undefined value
on return. Turns out we were doing this.