glibc/sysdeps/unix
Adhemerval Zanella e442e40de5 io: Consolidate lockf implementation
With internal fcntl64 internal (commit 06ab719d), it is possible to
consolidate lockf implementation by using the LFS fcntl interface
instead of using arch and system-specific implementations.

For Linux, the i386 implementation is used as generic implementation
by replacing the direct syscall with fcntl64 call.  The LFS symbol
alias for default LFS ABI (__OFF_T_MATCHES_OFF64_T) is used to avoid
the duplicate symbol (instead of overriding the implementation with an
empty file).

For Hurd lockf64 semantic is changed: previous generic lockf64
implementation returned EOVERFLOW if LEN input is larger than 32-bit
off_t.  However, Hurd fcntl64 implementation for F_GETLK64, F_SETLK64,
and F_SETLKW64 do accept off64_t inputs (__f_setlk accepts only off64_t
inputs).

Checked on i686-linux-gnu and x86_64-linux-gnu along with a i686-gnu
build.

	* io/Makefile (tests): Add tst-lockf.
	* io/lockf.c (lockf): Use __fcntl and only define for
	!__OFF_T_MATCHES_OFF64_T.
	* io/lockf64.c (__lockf64): Call __fcntl64 and alias to lockf for
	__OFF_T_MATCHES_OFF64_T case.
	* io/tst-lockf.c: New file.
	* sysdeps/unix/sysv/linux/i386/lockf64.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/lockf64.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c: Likewise.
2019-02-15 18:45:39 -02:00
..
alpha Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
arm Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
bsd Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
i386 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
inet Switch IDNA implementation to libidn2 [BZ #19728] [BZ #19729] [BZ #22247] 2018-05-23 15:27:24 +02:00
mips Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
powerpc Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sysv/linux io: Consolidate lockf implementation 2019-02-15 18:45:39 -02:00
x86_64 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
clock_gettime.c Cleanup clock_*time includes 2019-02-01 12:24:52 +00:00
clock_nanosleep.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
clock_settime.c Cleanup clock_*time includes 2019-02-01 12:24:52 +00:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getlogin_r.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ifreq.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Implies
make-syscalls.sh make-syscalls.sh: fix comment referencing syscall-template 2019-01-31 22:45:10 -05:00
Makefile Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pt-fcntl.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
s-proto-cancel.S
s-proto.S
setxid.h
sockatmark.c Fix a few typos in comments 2019-01-12 13:44:51 +00:00
stime.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
syscall-template.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
syscalls.list posix: Consolidate Linux fsync syscall 2017-05-18 18:06:47 -03:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00