Beyond simple API replacement

Some platform differences resist simple solutions like direct API replacement

A common case of this is when platform export different APIs to do the same thing

An example in OpenSSH is login/logout recording

Most platforms support one or more of utmp(x), wtmp(x), lastlog and btmp
But they tend to pick different subsets of the possible fields
E.g. skipping IPv6 support

There is a standard API (pututxline), but
It isn't widely supported
It doesn't do everything we need