From patchwork Sun Jan 12 10:33:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 37314 Received: (qmail 10094 invoked by alias); 12 Jan 2020 10:40:15 -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 10057 invoked by uid 89); 12 Jan 2020 10:40:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: esa6.hgst.iphmx.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1578825614; x=1610361614; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wId+Laet6mw4vDeuuNVX1W0Y5cphO4IAOPYWId/O9yU=; b=XeUUpUSFHukhbsd1IXXmfLwjREivqQDVAxx4lFTEhvWUAbK7+cDjoLHK bAxw7jYR7pxjs5cU1Kufd5SsRAs2ELW+M260D32CaDOr94DxlIBpt1qIa Pe5nDNwTWrGXV9eXlYr8hk7nCy9z9AeBOfWOXw6qa3nlTTMHJhfF4f+Ph E9rh61j8GlQN15jHDkfipGufn/rRexjfgYVjG6miJlQ0ssCm8gTK46Btd XvQ6083ucR5YJH2weSC9yLpvANAlILFWQtbds+Ld7DmGozRUHbSacZK4u wA302JM1IpRrfrIlLByeVtB+fEuNkzqDwVfBDb2IlZjxKdOCGiVBAGVOZ Q==; IronPort-SDR: sXbXOOD6Hu2gxRyXf5eMp3vcjO+3nacGUTf0kM2ao635W+6sbcDPAw0XMqEOlJBP6B6JyY5YJ+ 6CRTdBJam/Acc4YdAsOCcFaLvncKn//8QtBYLA9IqsDi6VXCGqRoDopyOAKYZhBGT+exyK4Q2l fW6XQB9+qj8L7D+wp2+YydpyJYsiWXYSzMersP6Sp7LCiRWsqrPhRHxm09B3k2I9ivgdsJ0o8R zrCO6pnh3QSkxyY44LirH8b5gMenj9Gq8UI+vYFde4GqXD3RFnmneqwIWnJ3W0EYWiBM9PNCkY CEE= IronPort-SDR: QKz7pn1D2CuesDMLpjNJO0qgZH+GfbN+B/3ea8GDPLBLPxszupMSn+MIfQ4k3nnlCfqsx6IMsj KNxgpgU/Zf8ce8/F9TLDR+58EzFhOWrIXvXPF3ZfFixb0KaXU4jx182pFQyvY/3Gn2L1ku8k++ KIekOEabdAN7Ix5UFaytok7EYK5ixyVTnZiEb5XBeIQrSQ2GbRFwGXOZvjoAQd/ddsf4X7CnIr j4QVyB0cCmPBdfW6ACuIG/WHArBSTMmGtzkY1z4PL7n46EAVRxl7XdZkf4lWxPXW0Um9XGzvKd Eipe1me3+2g9gapziLsIAWk3 IronPort-SDR: VaXU+HDy06GfBzvbNS9/83tyzWHR7LtWYBUWSBRa1u462lt6FZltlbxylh7458hasUspQuNVW4 owqqItvc1c5HtU3031zeBiAZWKPJKARRWXMcS7Vkzkei21b2VzX3/EHsPrUsjRjg0N906EjOC+ PUHKBcF/a9/GC5jc9Oey+JpgndON8GT2n3BGiWoXvkrR1MK/vOJlHVe3BtaBA2iH4V/uW7pagI k6deNSlLEQ3cBPV2x8hc5y+xYt607/rSkCEYCHTQEfZNRSCvLwBMh7f5StUUh16cTcI731d3VU IeM= WDCIronportException: Internal From: Alistair Francis To: libc-alpha@sourceware.org Cc: arnd@arndb.de, adhemerval.zanella@linaro.org, fweimer@redhat.com, joseph@codesourcery.com, palmerdabbelt@google.com, macro@wdc.com, zongbox@gmail.com, alistair.francis@wdc.com, alistair23@gmail.com Subject: [RFC v6 06/23] sysdeps: Use long types with 64-bit time_t on 32-bit archs Date: Sun, 12 Jan 2020 02:33:47 -0800 Message-Id: <96c5552629ae8b306cff4b5cef44ba00634276d2.1578824547.git.alistair.francis@wdc.com> In-Reply-To: References: MIME-Version: 1.0 If we are using a 32-bit architecture with a 64-bit time_t let's define __SEM_PAD_BEFORE_TIME as 1. This is because the kernel is expecting a type __kernel_old_time_t which is 32-bit even with a 64-bit time_t. Instead of adding another check, let's just set __SEM_PAD_BEFORE_TIME as that will use a long type instead of long long. --- sysdeps/unix/sysv/linux/bits/sem-pad.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sysdeps/unix/sysv/linux/bits/sem-pad.h b/sysdeps/unix/sysv/linux/bits/sem-pad.h index 566ce039cc..4b419a6100 100644 --- a/sysdeps/unix/sysv/linux/bits/sem-pad.h +++ b/sysdeps/unix/sysv/linux/bits/sem-pad.h @@ -30,4 +30,15 @@ layout conversions for this structure. */ #define __SEM_PAD_AFTER_TIME (__TIMESIZE == 32) -#define __SEM_PAD_BEFORE_TIME 0 + +/* If we are using a 32-bit architecture with a 64-bit time_t let's + define __SEM_PAD_BEFORE_TIME as 1. This is because the kernel is + expecting a type __kernel_old_time_t which is 32-bit even with a + 64-bit time_t. Instead of adding another check, let's just set + __SEM_PAD_BEFORE_TIME as that will use a long type instead of + long long. */ +#if __WORDSIZE == 32 && __TIMESIZE == 64 +# define __SEM_PAD_BEFORE_TIME 1 +#else +# define __SEM_PAD_BEFORE_TIME 0 +#endif