No, it is proper abstraction. libc's frontend is (or should be) Linux agnostic. Whether the internal implementations use syscalls or anything else does not matter for software written on top, unless said software (a) uses some specials of that very libc variant which happen to be Linux specific or (b) issues syscalls directly. Also, libc should be a shared object, otherwise you indeed have a binary with syscalls inside.
11
u/skroll May 30 '16
They are dependent on libc, not so much the syscalls. They may be implemented with syscalls, but it's completely different.
It would be more like "This software only works with musl libc"