Hi everyone, As part of my recent effort to get the D Programming Language ( https://dlang.org/) to work on Alpine Linux, I've hit what I believe is a bug in Musl. Dlang relies heavily on libc, and obviously is historically glibc-based on POSIX. When porting to Alpine/Musl, one of the unittests that failed is calling `fseek` with the value '3' for whence. The call is expected to fail, and it does on Glibc, but succeed on Musl. The reason for this difference is that Musl just forwards its whence argument to the lseek syscall, which accepts '3' (aka SEEK_DATA) as a parameter. However, glibc explicitly checks for if the value is one of SEEK_SET, SEEK_END, SEEK_CUR ( https://github.com/lattera/glibc/blob/895ef79e04a953cac1493863bcae29ad85657ee1/libio/ioseekoff.c#L32-L38), and POSIX defines the function as setting errno to EINVAL if the "whence argument is invalid" ( https://pubs.opengroup.org/onlinepubs/9699919799/functions/fseek.html). The only man page I could find that mentions 'SEEK_{DATA,HOLE}' is `lseek`'s. In light of this, it looks to me like Musl behavior is the one that should be changed. For reference, original discussions: - https://github.com/alpinelinux/aports/pull/11931#issuecomment-544831142 - https://github.com/dlang/phobos/pull/7244#issuecomment-545256706 P.S: I am not subscribed to the ML, please CC me.