From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from hall.aurel32.net (hall.aurel32.net [IPv6:2001:bc8:30d7:100::1]) by sourceware.org (Postfix) with ESMTPS id 6A9FC3858414 for ; Thu, 31 Aug 2023 19:16:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6A9FC3858414 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=aurel32.net Authentication-Results: sourceware.org; spf=none smtp.mailfrom=aurel32.net DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=aurel32.net ; s=202004.hall; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date: Subject:Cc:To:From:Content-Type:From:Reply-To:Subject:Content-ID: Content-Description:In-Reply-To:References:X-Debbugs-Cc; bh=YmN/68Hrd8boAF4y/nKq2fNIQ4JyMFh13zu48a4mBV8=; b=kXcsHP1/FK5yq+LBew8IZBaPtL KHSowIFGrZO1mFtCvcj5DqYBXOzQbpH5kHGvLD7JRvcaU+yTmNJcMvFV3X8u/lq+7/9lesr+uWsgQ LBrTXzEw7IydpybkGFw8HUrI7QtDK3/+Bi4tIx5rvMKz36J80mKplBLWcjvMJufgx+ZaQuhoP9u5P UNn5LVZ2Pm40ccKnO9fOVTBz/kQYDojl7EOkFfFPSYPeIVMVthzeMMmhyIX3dAlZWGW4UzgkrrpeR 9ZIBIURr7+9BQ2m6XLE7kuZ9mw6hWh5Hur1zDyhBBAhe2u9dzM07bZXn/j/Vi0fo60V0znCio8CCK j3efxS3Q==; Received: from [2a01:e34:ec5d:a741:9a7b:5831:531:65c9] (helo=ohm.rr44.fr) by hall.aurel32.net with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qbn98-001Mk8-JY; Thu, 31 Aug 2023 21:16:02 +0200 Received: from aurel32 by ohm.rr44.fr with local (Exim 4.96) (envelope-from ) id 1qbn98-009Wve-0n; Thu, 31 Aug 2023 21:16:02 +0200 From: Aurelien Jarno To: libc-alpha@sourceware.org Cc: Aurelien Jarno , Adhemerval Zanella Subject: [PATCH v3] io: Fix record locking contants for powerpc64 with __USE_FILE_OFFSET64 Date: Thu, 31 Aug 2023 21:15:42 +0200 Message-Id: <20230831191541.2271412-1-aurelien@aurel32.net> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_NUMSUBJECT,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Commit 5f828ff824e3b7cd1 ("io: Fix F_GETLK, F_SETLK, and F_SETLKW for powerpc64") fixed an issue with the value of the lock constants on powerpc64 when not using __USE_FILE_OFFSET64, but it ended-up also changing the value when using __USE_FILE_OFFSET64 causing an API change. Fix that by also checking that define, restoring the pre 4d0fe291aed3a476a commit values: Default values: - F_GETLK: 5 - F_SETLK: 6 - F_SETLKW: 7 With -D_FILE_OFFSET_BITS=64: - F_GETLK: 12 - F_SETLK: 13 - F_SETLKW: 14 At the same time, it has been noticed that there was no test for io lock with __USE_FILE_OFFSET64, so just add one. Tested on x86_64-linux-gnu, i686-linux-gnu and powerpc64le-unknown-linux-gnu. Resolves: BZ #30804. Co-authored-by: Adhemerval Zanella Signed-off-by: Aurelien Jarno --- io/Makefile | 1 + io/tst-fcntl-lock-lfs.c | 2 ++ sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 io/tst-fcntl-lock-lfs.c Changelog: v1 -> v2: Add a test for io lock with __USE_FILE_OFFSET64 v2 -> v3: Improve the commit message to note it's an API change, not an ABI breakage diff --git a/io/Makefile b/io/Makefile index 6ccc0e8691..8a3c83a3bb 100644 --- a/io/Makefile +++ b/io/Makefile @@ -192,6 +192,7 @@ tests := \ tst-fchownat \ tst-fcntl \ tst-fcntl-lock \ + tst-fcntl-lock-lfs \ tst-fstatat \ tst-fts \ tst-fts-lfs \ diff --git a/io/tst-fcntl-lock-lfs.c b/io/tst-fcntl-lock-lfs.c new file mode 100644 index 0000000000..f2a909fb02 --- /dev/null +++ b/io/tst-fcntl-lock-lfs.c @@ -0,0 +1,2 @@ +#define _FILE_OFFSET_BITS 64 +#include diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h index f7615a447e..d8a291a331 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h @@ -33,7 +33,7 @@ # define __O_LARGEFILE 0200000 #endif -#if __WORDSIZE == 64 +#if __WORDSIZE == 64 && !defined __USE_FILE_OFFSET64 # define F_GETLK 5 # define F_SETLK 6 # define F_SETLKW 7 -- 2.39.2