From patchwork Wed Aug 17 11:46:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 14682 Received: (qmail 100581 invoked by alias); 17 Aug 2016 11:47:20 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 100570 invoked by uid 89); 17 Aug 2016 11:47:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=AWL, BAYES_40, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=no version=3.3.2 spammy=SCORE, sk:generic, sk:GENERIC, H*RU:sk:mail-bl X-HELO: NAM02-BL2-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH 01/18] 32-bit ABI: introduce ARCH_32BIT_OFF_T config option Date: Wed, 17 Aug 2016 14:46:26 +0300 Message-ID: <1471434403-25291-2-git-send-email-ynorov@caviumnetworks.com> In-Reply-To: <1471434403-25291-1-git-send-email-ynorov@caviumnetworks.com> References: <1471434403-25291-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AM4PR02CA0040.eurprd02.prod.outlook.com (10.165.239.178) To CY1PR07MB2245.namprd07.prod.outlook.com (10.164.112.147) X-MS-Office365-Filtering-Correlation-Id: eacc74df-b00f-4e65-6b53-08d3c69435a0 X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 2:ZkRs8dIWnifiFO92VpwTF6+csPwg2EcwEHSGgW6c39g53dYVH81kd+nnkOAFKJJPf56GnmL2p0ypibNB3TMe8v/v3AtH7C+Zty+URHMcOBsAdpJV6vp9VjVzYMZngc5vSAAbD7sKpHUnu2olmZUuVLWIGHbdzvlfNtTxXb0E7pATkH8GXxjEwEC47Udyw9XK; 3:vOJUacRN/jxsGooF7EdbvzltZg6V2oSkuqOkh6UHDOdaiuSD47h0RODbKmt1mvQK80TTYZ6mKqYzcaOueQSD7y8VZ/nS/c5+36V1twuuBrQjNnXzgULXcrapr7MVvtGF; 25:y3uiU1aZy95lTjtH/mMCX6eV5n9c5JkOMhIZt6fEfwIDybw+Wcy5myqtNmUDzB6tkc/s2RmGCnqK6SRxVj/b7g/FEG0pAAoDVR0LIhi2zPs8D6gfoTBYTF9MtYObRwZd+aAOYpUdfaky1Ui2doel+u4ixGv0bJK528TnHrUCMldlc6+HQ66u6iLPKAr1NqUN4lPryWHIrwXpbi7wzAXAv3e9wNrKpZjuBukbIC+IIdmu01fjaL9bydm+VnROb/Vzmjt3Xigvl45/cjjw7dyYt4mD6h6R/bhQad4RxVQ4IPmfHdoefWCcVrHV7pQgSNHrrrmPmoZTnUcieZw4o99q/jQY6PHN7khPh/WKh3S5hyB4Nc7vYj1Djs5Xsy0HMgidbtL0sz2Vjc73tRNNRiqbgGGyww1BB8cHMuTAaXnpPkY= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2245; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 31:mPiwwPg7SLMJphiUf96NkL1C4MiUn5SZrB4NhcFXnuepgJxT2DeGLhhS9nnQRDm13dNu/qUnjbxx9/zlrx4HrdZdFq7IbzcgJ4LqGT+NlhARTH4dCfNQ0XtAWsqPquV2V8XCtQGpgIhQyQWx0q2jelT3VErzyiS1KrvishI4fi/qLJb7gWcnvTPieWtdWWOdlQaVogFJss5pbFsj6hAUik+/ByNvqzRReoJJe+x5z8s=; 20:y6dek9Et4Zp8xm/X8eXFjTAAuLMRnRIuhJEAiP8a0saPdCmS/QKQ4MqeidvIQFKPUzTxEeqiT+d+VgX6PIqLzAW4geF4E5hcE6mgSBg7hdk16Yq7ExJYFMDrhU/yiCGoDuLLaCg/lJERwo7rMy2zD178HsydqzgoNvqFRxbxAf3qgydp41JkBgZ5OjVnHzZRIJxPqoTo8+9U5q0iT62vaWLdM2yZ+/GunLbiWJKu7f0aygKpDBLj79GeDStjQA4lK81VMt4g5yHF23o5HB4+4tw2NbQw0ept8DaMISgQOI/AZj1mbWia2VHV56K7yS8wfOfqLt9gkkDpP9Rl4q7tDJM+oDkmEMjJ3BPuM44CXCBKq+8bSGy/kaz/Td6FA2Dn2afz6nrcV23cxC1C3duD+nu9NGgwsu/NvUr5Y24GeRkMiRf9QZ/1lpeE6xdTFbhOoJlkRkBO1ANsXbClouWOeMKy3YaH7dwlEqjplHRjyAvXrudZG2A2jmuqP4GjoVTdbYlHoJtwWVAKBcIDk18K61/Bk0F8svOhKqkSrDKQJ4AH1lBCWxmPBMzWaP8V6DHqI7P8hHHCMHpQQYfP7YYOpf6NPPWYe7hmHfm2XoQo/BY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(5213294742642); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001); SRVR:CY1PR07MB2245; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2245; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 4:t8Ev0P2hFnhd3N5T82BDcqGlmgx0OCJMiWfmHjkDQrmlKmHDtDyanJW/N8IR7etmIUJaDTRcU1g5r1P2j1GSTSJ+FUfQd7/7hf98arD/CLKdLtsBy4hmVMcUhuVJVrN7CDb2pp3CFZkuPzUznVhjXTp1TWGbQKRRNR0QRynmtLi8JxHBpRbypujPE4/jEAq76oSsUEB8qSTDUQB4suoA04ZwP8sY9PFPPiVJFNQrO1wPm6PYLFYESEl5sbx+OSnD31Djd2b0FN0j+vDx6PBPlo0TLoxrBfLcYp0/gozTjyihxF0Wctugg/zmnHjT5fLn9ZM63XyKFu1qNZK4iZyJoLGWdtgn+1R2OXHyRLV5Ltpe18w11S86qjdOQmNVcxnmFJXZVLS2HO5mjj1F8UQuSK9w71qCuo7E9LotJMNFWIOfEY6oxCSWp0QlMTRpeVJ0 X-Forefront-PRVS: 0037FD6480 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(76176999)(33646002)(92566002)(97736004)(76506005)(7846002)(5001770100001)(2950100001)(7736002)(50986999)(50226002)(8676002)(19580405001)(68736007)(229853001)(305945005)(19580395003)(586003)(77096005)(4326007)(101416001)(7416002)(50466002)(66066001)(47776003)(48376002)(81166006)(36756003)(106356001)(5003940100001)(2201001)(105586002)(42186005)(2906002)(3846002)(6116002)(189998001)(81156014)(15760500001)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2245; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2245; 23:9046GfkXAZpA5lnp5/Ypj0kghqlM3H2IIWEuDszE+?= =?us-ascii?Q?hMDfupK5Qd4BhswJt26AN9J+2ZtAK3s3iJjtOhV/S3Wcs/5X53v/0wJfyKqi?= =?us-ascii?Q?NArbxQi1UYJo+arHpeknYNuJqaANGh630mP3fqy9uJVTT1l650HoXC2wmgPU?= =?us-ascii?Q?s8A60opcG/b8njfsePSKJN3cp91pOKGU3S0MR1m+UWsftn9fuH4cbIEGII8B?= =?us-ascii?Q?4q7zpZhSWz58fPJ3s+ENEC5TdFlLTBfXTg1zhOn+LrXi0QL3WnzRIbvXiiGE?= =?us-ascii?Q?dhtkwGguPEkg396sOXWG20QqUu6/Mq6368AN4Lw4EOcIr1WGsBTrpUFgo3si?= =?us-ascii?Q?enIfwdB4CWhQHBXVZ5QDSOJ8q+LOJ8sezYYFLbkKN+b9RWnR0KHl1gWcMREB?= =?us-ascii?Q?4fczf6s+zX8S4gHqdytoC0NYReWwKs+dDRkzJ1REqkf9GtH80yngzmWC7BQ6?= =?us-ascii?Q?0vOK2RGo2acgUO2p48GaoaOmN1BWL6zYHOpVc3ME7Zw7Vd5Fr9U0tKr7CaEB?= =?us-ascii?Q?JGP3Sz30XVOMPN5Sh8Wv4M/cWJ3JSLDzSiBy+vMWfXR1ZmmfsC249E3uv32O?= =?us-ascii?Q?khIgau8IOXkDYVC71ntd9ZKtznufHJcQsa8H+et7oCTigCZ8AwAMqdyWABaz?= =?us-ascii?Q?azCgHLisUNfp3TVB6xF7sjRzCOQdsrW/1+tUby1IZVI8GzYkuX1tJWp8DwnT?= =?us-ascii?Q?TVSWNwfD9kVy8DVAbHAQ3fYeikGEnytJJq4L4Y7Xtx0dybqI2DAFbTbwoyNV?= =?us-ascii?Q?v3We4LmF/3SDAnqGgBM7DBq0DviTPrB0WthFsvPCj9uCl8m+8eGC/XM4IT50?= =?us-ascii?Q?dWzyoBBn5xptxp2eqDSEZjgJIJn8v3MMT0fIzXnkNG3OoQfqnawGcdw/VUlp?= =?us-ascii?Q?46/LPWcwQW8qE4KlP0pIlPmvhXZR3WlSQxac/PgJf16QE4prwWvae7miufZ+?= =?us-ascii?Q?IdeFalDz6G041PKtPQ3YG/ioMNHs7bBpbBuQXi+m1Dzbv5ldgaCiil/XmNlY?= =?us-ascii?Q?V2nj/1vXjzW5PIizQxuikeaw1ZkoEVJLQejopw7PnzU+9QTp5Cb0W91fwqGL?= =?us-ascii?Q?koxSwErCjntaxjB9gkXqAn46Q1G+OYB2/wV9gDn9FOCgcqO78cTX2fpX9rhg?= =?us-ascii?Q?DjoQViv2A0vsP4q0tWI3EST7fWZcrZNu49jJ3yxiJy1zDkoQhKIXw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2245; 6:herCYFWcqd/EXDzw1L9ZxyQ6TPaHXxKgPfHGL1pl1uKid/bsEkRwdYJLSds5rJmcazzs0FsI0PmiITFebye02U7CXOI1NH9utv1j/m+ki93BycDRTZ7fehIGytjNyR0tRHPmZU8lZTsmnsJDWX9nu7SEK1ukb+cfSOrWZnMDXJzWQCv5q+AAfzgpLahTRhRD/m7/cHhmte9ZPZWe2jqqiuJDIBrW6AKk91lnSMuuSyqWGmDHfDHa6caitdNU+eJgaZq8ZPIKiDMgSbQxFP2SQa6dU/FhuBgCJZOHk0LHIA0=; 5:jHL+4nlOp2ZhzJB+ux2wOkQNMGtRHKd0bhdOHhc8TNFP5pjzuRCTjckX/hjoTZyJPRhOGkyysSfoGbxB/DSog/e54k/TOXYscOc+a00eyb9e1OL4wf8wp1FjlZu0yVJZaaFG9qGwHc6nNwi0TWYH8w==; 24:b/MF877W7k8lQ2tgoXwngD5viHKhPq7mHGXLNH64udcJQfjZvoQHRcQnXWy5QPUw9Fkpjft7UyUDx5JqiRHrQSH30BoyrKyv8wq1ZVBcbMQ=; 7:9cyCPCp2zISNc1lIoiT6NxLXnTgZB/oR8gkam4LZelXkwrmCwxrKqBD4k7KNrR60AuwlzRjD+K2IdjCWJRUNNDTXncf2JuCvXbLw4Mk54IWDWD+dE/+6GtxdnTzDd8dpElVxYiT+d6ItSKRRzOiG/4/VjkTi0MGlovx6bQn0zGJqHGcmu2VUuaXzJvDKOa5fV0y+0uMjvGsIkv6fO/ZJS6igRDcvNvQWXWZSqWyHOGsJRDn/9nCGtXfYeSYLJNSn SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2016 11:47:04.2233 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2245 All new 32-bit architectures should have 64-bit off_t type, but existing architectures has 32-bit ones. To handle it, new config option is added to arch/Kconfig that defaults ARCH_32BIT_OFF_T to be disabled for 64-bit and new 32-bit architectures. All existing 32-bit architectures enable it explicitly here. New option affects force_o_largefile() behaviour. Namely, if off_t is 64-bits long, we have no reason to reject user to open big files. For syscalls sys_openat() and sys_open_by_handle_at() force_o_largefile() is called, to set O_LARGEFILE flag, and this is the only difference comparing to compat versions. So for now we can drop compat version of that syscalls in standard unistd, as ARCH_32BIT_OFF_T controls the behaviour explicitly. Note that even if architectures has only 64-bit off_t in the kernel (arc, c6x, h8300, hexagon, metag, nios2, openrisc, tile32 and unicore32), a libc may use 32-bit off_t, and therefore want to limit the file size to 4GB unless specified differently in the open flags. Signed-off-by: Yury Norov --- arch/Kconfig | 4 ++++ arch/arc/Kconfig | 1 + arch/arm/Kconfig | 1 + arch/blackfin/Kconfig | 1 + arch/cris/Kconfig | 1 + arch/frv/Kconfig | 1 + arch/h8300/Kconfig | 1 + arch/hexagon/Kconfig | 1 + arch/m32r/Kconfig | 1 + arch/m68k/Kconfig | 1 + arch/metag/Kconfig | 1 + arch/microblaze/Kconfig | 1 + arch/mips/Kconfig | 1 + arch/mn10300/Kconfig | 1 + arch/nios2/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/powerpc/Kconfig | 1 + arch/score/Kconfig | 1 + arch/sh/Kconfig | 1 + arch/sparc/Kconfig | 1 + arch/tile/Kconfig | 1 + arch/unicore32/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/x86/um/Kconfig | 1 + arch/xtensa/Kconfig | 1 + include/linux/fcntl.h | 2 +- include/uapi/asm-generic/unistd.h | 5 ++--- 28 files changed, 32 insertions(+), 4 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index e9c9334..eaf657c 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -234,6 +234,10 @@ config ARCH_THREAD_STACK_ALLOCATOR config ARCH_WANTS_DYNAMIC_TASK_STRUCT bool +config ARCH_32BIT_OFF_T + bool + depends on !64BIT + config HAVE_REGS_AND_STACK_ACCESS_API bool help diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 0d3e59f..d5ca749 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -9,6 +9,7 @@ config ARC def_bool y select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC + select ARCH_32BIT_OFF_T select BUILDTIME_EXTABLE_SORT select CLKSRC_OF select CLONE_BACKWARDS diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a9c4e48..888b067 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1,6 +1,7 @@ config ARM bool default y + select ARCH_32BIT_OFF_T select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAS_ELF_RANDOMIZE diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 28c63fe..097e7a5 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig @@ -12,6 +12,7 @@ config RWSEM_XCHGADD_ALGORITHM config BLACKFIN def_bool y + select ARCH_32BIT_OFF_T select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK select HAVE_DYNAMIC_FTRACE diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig index deba266..b1376a9 100644 --- a/arch/cris/Kconfig +++ b/arch/cris/Kconfig @@ -50,6 +50,7 @@ config LOCKDEP_SUPPORT config CRIS bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select GENERIC_ATOMIC64 select HAVE_UID16 diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index eefd9a4..2f14904 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig @@ -1,6 +1,7 @@ config FRV bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select HAVE_ARCH_TRACEHOOK select HAVE_PERF_EVENTS diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 3ae8525..29bbcb1 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -1,5 +1,6 @@ config H8300 def_bool y + select ARCH_32BIT_OFF_T select GENERIC_ATOMIC64 select HAVE_UID16 select VIRT_TO_BUS diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig index 1941e4b..bbcea8c 100644 --- a/arch/hexagon/Kconfig +++ b/arch/hexagon/Kconfig @@ -3,6 +3,7 @@ comment "Linux Kernel Configuration for Hexagon" config HEXAGON def_bool y + select ARCH_32BIT_OFF_T select HAVE_OPROFILE # Other pending projects/to-do items. # select HAVE_REGS_AND_STACK_ACCESS_API diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 3cc8498..efa10d3 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig @@ -1,6 +1,7 @@ config M32R bool default y + select ARCH_32BIT_OFF_T select HAVE_IDE select HAVE_OPROFILE select INIT_ALL_POSSIBLE diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 498b567..e9897e4 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -1,6 +1,7 @@ config M68K bool default y + select ARCH_32BIT_OFF_T select ARCH_MIGHT_HAVE_PC_PARPORT if ISA select HAVE_IDE select HAVE_AOUT if MMU diff --git a/arch/metag/Kconfig b/arch/metag/Kconfig index 5b7a45d..c337192 100644 --- a/arch/metag/Kconfig +++ b/arch/metag/Kconfig @@ -1,5 +1,6 @@ config METAG def_bool y + select ARCH_32BIT_OFF_T select EMBEDDED select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index 86f6572..3a6146b 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig @@ -1,5 +1,6 @@ config MICROBLAZE def_bool y + select ARCH_32BIT_OFF_T select ARCH_HAS_GCOV_PROFILE_ALL select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_WANT_IPC_PARSE_VERSION diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 2638856..4552f76 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -1,6 +1,7 @@ config MIPS bool default y + select ARCH_32BIT_OFF_T if !64BIT select ARCH_SUPPORTS_UPROBES select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig index 38e3494..c44c699 100644 --- a/arch/mn10300/Kconfig +++ b/arch/mn10300/Kconfig @@ -1,6 +1,7 @@ config MN10300 def_bool y select HAVE_EXIT_THREAD + select ARCH_32BIT_OFF_T select HAVE_OPROFILE select HAVE_UID16 select GENERIC_IRQ_SHOW diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig index 51a56c8..f9273c9 100644 --- a/arch/nios2/Kconfig +++ b/arch/nios2/Kconfig @@ -1,5 +1,6 @@ config NIOS2 def_bool y + select ARCH_32BIT_OFF_T select CLKSRC_OF select GENERIC_ATOMIC64 select GENERIC_CLOCKEVENTS diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index 489e7f9..c4c96c9 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -5,6 +5,7 @@ config OPENRISC def_bool y + select ARCH_32BIT_OFF_T select OF select OF_EARLY_FLATTREE select IRQ_DOMAIN diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index cd87781..8630385 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -1,5 +1,6 @@ config PARISC def_bool y + select ARCH_32BIT_OFF_T if !64BIT select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS select ARCH_MIGHT_HAVE_PC_PARPORT select HAVE_IDE diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 927d2ab..c28fece 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -85,6 +85,7 @@ config ARCH_HAS_DMA_SET_COHERENT_MASK config PPC bool default y + select ARCH_32BIT_OFF_T if PPC32 select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO select BINFMT_ELF diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 507d631..0a9484b 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig @@ -2,6 +2,7 @@ menu "Machine selection" config SCORE def_bool y + select ARCH_32BIT_OFF_T select GENERIC_IRQ_SHOW select GENERIC_IOMAP select GENERIC_ATOMIC64 diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index ee08695..1f99eb3 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig @@ -56,6 +56,7 @@ config SUPERH config SUPERH32 def_bool ARCH = "sh" + select ARCH_32BIT_OFF_T select HAVE_KPROBES select HAVE_KRETPROBES select HAVE_IOREMAP_PROT if MMU && !X2TLB diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 59b0960..e1a1ad3 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -47,6 +47,7 @@ config SPARC config SPARC32 def_bool !64BIT + select ARCH_32BIT_OFF_T select GENERIC_ATOMIC64 select CLZ_TAB select HAVE_UID16 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 4820a02..79434be 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@ -4,6 +4,7 @@ config TILE def_bool y select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE + select ARCH_32BIT_OFF_T if !64BIT select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS select ARCH_HAS_DEVMEM_IS_ALLOWED select ARCH_HAVE_NMI_SAFE_CMPXCHG diff --git a/arch/unicore32/Kconfig b/arch/unicore32/Kconfig index 0769066..cc642f9 100644 --- a/arch/unicore32/Kconfig +++ b/arch/unicore32/Kconfig @@ -1,6 +1,7 @@ config UNICORE32 def_bool y select ARCH_HAS_DEVMEM_IS_ALLOWED + select ARCH_32BIT_OFF_T select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO select HAVE_MEMBLOCK diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index c580d8c..5789877 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -20,6 +20,7 @@ config X86 select ACPI_LEGACY_TABLES_LOOKUP if ACPI select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI select ANON_INODES + select ARCH_32BIT_OFF_T if X86_32 select ARCH_CLOCKSOURCE_DATA select ARCH_DISCARD_MEMBLOCK select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig index ed56a1c..8436bcd 100644 --- a/arch/x86/um/Kconfig +++ b/arch/x86/um/Kconfig @@ -21,6 +21,7 @@ config 64BIT config X86_32 def_bool !64BIT select HAVE_AOUT + select ARCH_32BIT_OFF_T select ARCH_WANT_IPC_PARSE_VERSION select MODULES_USE_ELF_REL select CLONE_BACKWARDS diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 64336f6..1eeca06 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -3,6 +3,7 @@ config ZONE_DMA config XTENSA def_bool y + select ARCH_32BIT_OFF_T select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT diff --git a/include/linux/fcntl.h b/include/linux/fcntl.h index 76ce329..46960a1 100644 --- a/include/linux/fcntl.h +++ b/include/linux/fcntl.h @@ -5,7 +5,7 @@ #ifndef force_o_largefile -#define force_o_largefile() (BITS_PER_LONG != 32) +#define force_o_largefile() (!IS_ENABLED(CONFIG_ARCH_32BIT_OFF_T)) #endif #if BITS_PER_LONG == 32 diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index a26415b..4dcc38d 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -178,7 +178,7 @@ __SYSCALL(__NR_fchownat, sys_fchownat) #define __NR_fchown 55 __SYSCALL(__NR_fchown, sys_fchown) #define __NR_openat 56 -__SC_COMP(__NR_openat, sys_openat, compat_sys_openat) +__SYSCALL(__NR_openat, sys_openat) #define __NR_close 57 __SYSCALL(__NR_close, sys_close) #define __NR_vhangup 58 @@ -676,8 +676,7 @@ __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) #define __NR_name_to_handle_at 264 __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at) #define __NR_open_by_handle_at 265 -__SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \ - compat_sys_open_by_handle_at) +__SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at) #define __NR_clock_adjtime 266 __SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime) #define __NR_syncfs 267