On Fri, Sep 17, 2021, at 9:36 PM, James Y Knight via Libc-alpha wrote:
> Glibc currently implements bcmp as an alias to memcmp -- which is valid,
> but provides more than just the boolean equality semantics. There was
> concern raised that modifying that might break existing binaries. However,
> this concern can be easily addressed in the same way glibc typically
> addresses such compatibility concerns: creating a new symbol-version for
> the new bcmp implementation, with the previous bcmp symbol-version
> remaining as a memcmp alias.

Not speaking for anyone but myself, but IMO this tactic has proven not to 
preserve _enough_ backward compatibility.  Old binaries keep working, but old 
code breaks when recompiled with new glibc.  It's especially troublesome to do 
this for a semantic change that manifests only at runtime; the break can go 
undetected for quite some time and then cause catastrophe when someone finally 
hits the relevant edge case.

zw

Reply via email to