1 From 5bdef6f27c91f45505ed5444147be4ed0e9bc3c7 Mon Sep 17 00:00:00 2001
2 From: Aurelien Jarno <aurelien@aurel32.net>
3 Date: Mon, 28 Aug 2023 23:30:37 +0200
4 Subject: [PATCH 12/44] io: Fix record locking contants for powerpc64 with
7 Commit 5f828ff824e3b7cd1 ("io: Fix F_GETLK, F_SETLK, and F_SETLKW for
8 powerpc64") fixed an issue with the value of the lock constants on
9 powerpc64 when not using __USE_FILE_OFFSET64, but it ended-up also
10 changing the value when using __USE_FILE_OFFSET64 causing an API change.
12 Fix that by also checking that define, restoring the pre
13 4d0fe291aed3a476a commit values:
20 With -D_FILE_OFFSET_BITS=64:
25 At the same time, it has been noticed that there was no test for io lock
26 with __USE_FILE_OFFSET64, so just add one.
28 Tested on x86_64-linux-gnu, i686-linux-gnu and
29 powerpc64le-unknown-linux-gnu.
32 Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
33 Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
34 (cherry picked from commit 434bf72a94de68f0cc7fbf3c44bf38c1911b70cb)
38 io/tst-fcntl-lock-lfs.c | 2 ++
39 sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h | 2 +-
40 4 files changed, 6 insertions(+), 1 deletion(-)
41 create mode 100644 io/tst-fcntl-lock-lfs.c
43 diff --git a/NEWS b/NEWS
44 index c339cb444e..8156572cdf 100644
47 @@ -133,6 +133,8 @@ The following bugs are resolved with this release:
48 [30579] malloc: trim_threshold in realloc lead to high memory usage
49 [30662] nscd: Group and password cache use errno in place of errval
50 [30723] posix_memalign repeatedly scans long bin lists
51 + [30804] F_GETLK, F_SETLK, and F_SETLKW value change for powerpc64 with
52 + -D_FILE_OFFSET_BITS=64
56 diff --git a/io/Makefile b/io/Makefile
57 index 6ccc0e8691..8a3c83a3bb 100644
60 @@ -192,6 +192,7 @@ tests := \
64 + tst-fcntl-lock-lfs \
68 diff --git a/io/tst-fcntl-lock-lfs.c b/io/tst-fcntl-lock-lfs.c
70 index 0000000000..f2a909fb02
72 +++ b/io/tst-fcntl-lock-lfs.c
74 +#define _FILE_OFFSET_BITS 64
75 +#include <io/tst-fcntl-lock.c>
76 diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
77 index f7615a447e..d8a291a331 100644
78 --- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
79 +++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
81 # define __O_LARGEFILE 0200000
85 +#if __WORDSIZE == 64 && !defined __USE_FILE_OFFSET64