fseek(3) is implemented by just calling fseeko(3), the POSIX addition version that takes an off_t instead of a long:
int fseek(FILE *fp, long offset, int whence) { return (fseeko(fp, offset, whence)); } ...so there's no reason for libc to be using fseek() internally, as that just loses range on ILP32 platforms and adds that (tail)call overhead. Diff below converts the last three such uses** and then updates the symbol naming for fseek to block attempts to reference it in the future so uses don't accidentally crawl back in. ok? Philip ** theoretically fixing the handling of xdr_setpos() to a position beyond 2GB on an xdrstdio, I guess Index: gen/getcap.c =================================================================== RCS file: /data/src/openbsd/src/lib/libc/gen/getcap.c,v retrieving revision 1.35 diff -u -p -r1.35 getcap.c --- gen/getcap.c 3 Jul 2019 03:24:04 -0000 1.35 +++ gen/getcap.c 23 Dec 2019 23:21:11 -0000 @@ -244,7 +244,7 @@ getent(char **cap, u_int *len, char **db * Open database if not already open. */ if (fp != NULL) { - (void)fseek(fp, 0L, SEEK_SET); + fseeko(fp, 0, SEEK_SET); myfd = 0; opened++; } else { Index: rpc/xdr_stdio.c =================================================================== RCS file: /data/src/openbsd/src/lib/libc/rpc/xdr_stdio.c,v retrieving revision 1.16 diff -u -p -r1.16 xdr_stdio.c --- rpc/xdr_stdio.c 14 Feb 2022 03:38:59 -0000 1.16 +++ rpc/xdr_stdio.c 14 May 2022 01:40:56 -0000 @@ -144,7 +144,7 @@ static bool_t xdrstdio_setpos(XDR *xdrs, u_int pos) { - return ((fseek((FILE *)xdrs->x_private, (long)pos, SEEK_SET) == -1) ? + return ((fseeko((FILE *)xdrs->x_private, pos, SEEK_SET) == -1) ? FALSE : TRUE); } Index: stdio/rewind.c =================================================================== RCS file: /data/src/openbsd/src/lib/libc/stdio/rewind.c,v retrieving revision 1.6 diff -u -p -r1.6 rewind.c --- stdio/rewind.c 31 Aug 2015 02:53:57 -0000 1.6 +++ stdio/rewind.c 23 Dec 2019 23:30:22 -0000 @@ -37,7 +37,7 @@ void rewind(FILE *fp) { - (void) fseek(fp, 0L, SEEK_SET); + fseeko(fp, 0, SEEK_SET); clearerr(fp); errno = 0; /* not required, but seems reasonable */ } Index: hidden/stdio.h =================================================================== RCS file: /data/src/openbsd/src/lib/libc/hidden/stdio.h,v retrieving revision 1.7 diff -u -p -r1.7 stdio.h --- hidden/stdio.h 6 Sep 2016 19:56:36 -0000 1.7 +++ hidden/stdio.h 14 May 2022 02:01:51 -0000 @@ -65,7 +65,7 @@ PROTO_NORMAL(fputs); PROTO_NORMAL(fread); PROTO_NORMAL(freopen); PROTO_NORMAL(fscanf); -PROTO_NORMAL(fseek); +PROTO_STD_DEPRECATED(fseek); PROTO_NORMAL(fseeko); PROTO_NORMAL(fsetpos); PROTO_NORMAL(ftell); Index: stdio/fseek.c =================================================================== RCS file: /data/src/openbsd/src/lib/libc/stdio/fseek.c,v retrieving revision 1.13 diff -u -p -r1.13 fseek.c --- stdio/fseek.c 28 Jun 2019 13:32:42 -0000 1.13 +++ stdio/fseek.c 14 May 2022 02:00:03 -0000 @@ -250,4 +250,3 @@ fseek(FILE *fp, long offset, int whence) { return (fseeko(fp, offset, whence)); } -DEF_STRONG(fseek);