Never mind API semantics. It's an ABI semantic change.
The only difference between an API and an ABI is that the API applies to source code and the ABI applies to the executable ("binary", e.g. ELF file).
An API change means that source code that used to be able to expect a certain behavior, once compiled and run, can't anymore.
An ABI change means that an executable that used to be able to expect a certain behavior when run, can't anymore.
The behavioral change might be that the program used to run and now won't even start because the format of the ELF header changed, but it might also be that the kernel returns half the requested data for a read() where it returned all of it before.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds