From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2104.outbound.protection.outlook.com [40.107.21.104]) by sourceware.org (Postfix) with ESMTPS id 997E33851AB0 for ; Fri, 1 Jul 2022 12:40:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 997E33851AB0 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=Syrmia.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Syrmia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=imMdhtHvQ8zCI2KtnNYiLHKyf68q73xL8eePwqnf4uM9yQ4SKBjYjatcLpZp+6m4HykyiG+MuTpiIqx8h7Bls21BXVHfTv1PLhPMb8KOOgDoapNtjzLJ9AyI8fFxZkzSzFdWNRe+6jdRHxF8OX70ZRGyI9XVF5/hmJNgPBkZ6Z68fPyjC8lqhN8o8ww5KdoqhbhlLFldwlyV2Mo8OQ8fDgZz8MhIfn9Jokd4vbhSZIv1+6ieo0cmThb6Fvvwasp0OL6DJ0/4taZZmr2Js1CcxBNIKsFtQTiDPWTBCczmCmzVJRhzYwZljEGTC74jFp6LQ5ddZTuRplHutdEvMIgMJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/7g1fRU8BLnOtrqtGTvHfE64/LDpUjD1t7zjzoeKTCs=; b=SQIfpCdbDtf+o4U7nyyYB0BZnf1ljUeTn8QNdb1Xs+eyukOC55R8qpxLwsBoa9KKNrWo1Ksj6oYmVGCAz0rLAHK+ofGw5WWeYV7zSIpQsoTku6W83Aavji0NvyLtrfSjoaXHDlrrcTdcY03qFzX+H4NbeRPMpfep7P1o8XIvDPkJwLFIU+herVyfKSNPki5jJDNZS4Xm/saRDGe8jOdQflYQtXXWe963tmzyVv/lj7zSMMjon3oO14KzDp2BfnJtNpHbipYRX8b8x/1iIeJ/x/vTRIDSkN5kPjEVl6ApcdrqiYYcuYpSXF47A8fVi4sLqzni+ABD66sxvJa3omtxfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=syrmia.com; dmarc=pass action=none header.from=syrmia.com; dkim=pass header.d=syrmia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=syrmia.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/7g1fRU8BLnOtrqtGTvHfE64/LDpUjD1t7zjzoeKTCs=; b=iddM323IFSTphVxTIYlyyboY5WecEy7DyzCytm2o3qXcEWVQdrcP+ZhCnTmP5JNbk37p/4CSc0KyQeU7jMXzf9R0vhvdmNrQeEi404T3h8Qk51bD/aPoBCXcbKofG7svHFOK4/Ur+FUbD5Gg6Ycm1ekeo7mYobOlAlQOUOlC+hE= Received: from AM0PR03MB4882.eurprd03.prod.outlook.com (2603:10a6:208:fb::17) by VI1PR03MB4991.eurprd03.prod.outlook.com (2603:10a6:803:be::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Fri, 1 Jul 2022 12:40:33 +0000 Received: from AM0PR03MB4882.eurprd03.prod.outlook.com ([fe80::3926:6805:c765:27ec]) by AM0PR03MB4882.eurprd03.prod.outlook.com ([fe80::3926:6805:c765:27ec%7]) with mapi id 15.20.5395.015; Fri, 1 Jul 2022 12:40:33 +0000 From: Dimitrije Milosevic To: "gcc-patches@gcc.gnu.org" CC: Djordje Todorovic , "xry111@xry111.site" Subject: [PATCH] Mips: Resolve build issues for the n32 ABI Thread-Topic: [PATCH] Mips: Resolve build issues for the n32 ABI Thread-Index: AQHYjUAM8Riuvn2Gr0qsVbwfC8Nq8w== Date: Fri, 1 Jul 2022 12:40:33 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: f633aabc-8c29-467d-dec4-b7c09d770acb authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=Syrmia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 21dd082b-314e-418f-4957-08da5b5ee3d0 x-ms-traffictypediagnostic: VI1PR03MB4991:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UyVHgnCDMpGmR+ZptLnUbtNRMep+zq666irFFIE7hHqgXTy/sgT54I58Iu8MzM+rvmZOkkDufcrK0R1SkZ/jvQknFZ2K26VkBhFrzkEHOKIFUIycrnKI5bH0hFheNgQvWgp0APwPNCjGHUSrEBanPkoh6N7idp8LHnTuzTwJtQOlU8Gj/HQlO1L1Apdq6ZQAGCfPyAjJmxOB/5rh4Va9CDUnaH8FG05xDJRMQNgthlVee8zQkq110HpaiFsz1rZMBYI/tKLIYm78MRpDeVpJCfvSCWZL3KH0nSmOLJbSCr15bFGVhM64lRwuPeTSQCAUwf1GAi6EfunSv0ZK8KSVXif5NHaXBAGbcGrEZ33rH/NuOnYF4e7K8Q5WkQ7ibxoIHZwwiTbfHq7SRZ0jl69ss9Jdj2mxLDEBoovL72iwlUH+Jvaa74f59yObAL3GQrPrsZ/umh/hBeQa8Qd+knS1gwz4oVozcwVa8raqT6r1AaMz5PWGXledDZtEYb1jKuA8mbrN3n4rRsT3BqQ27h1z9qQleUfAHrsRc6v/LKinJZWz+zPCwesphIksN90Pbc+lZzq0nu+uK6F88kpBzSCsLwlUxM+F+H/OlCGq3AzEerCvfKo+vXYvlD0+azfH8xAsoS/MAoAcIy9vIBOoV+vtzW2a8DFcf0lITZIGTum/lltReKMBfvZM1a3HdSX07Dd8QlcoJ6RVHQ/sZlflV5X7SMyI0Tsa+USaaqC9GQNW/zULVYeg3Uf4M88AwlN2gA/dOOGcVNBPLd7EPB6l3rr1xDuKsn2PIuxzlhgYQhOtj9OVBEkwOKKx6rqHHidLLXqRRYqndirdbb+yuvrp9vHAVt44o7ey57A1DL+8cpCEHyg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR03MB4882.eurprd03.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(376002)(39830400003)(346002)(136003)(396003)(6506007)(7696005)(122000001)(55016003)(8936002)(52536014)(6916009)(316002)(54906003)(9686003)(86362001)(38100700002)(64756008)(76116006)(2906002)(66946007)(5660300002)(33656002)(66556008)(186003)(38070700005)(966005)(41300700001)(66446008)(66476007)(478600001)(71200400001)(4326008)(8676002)(91956017)(83380400001)(26005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Vocm5Qqhuc9hMaPt845nJ58CLxjw6mSVCKln70C/VtZtkRyjoEUtbd/qCg?= =?iso-8859-1?Q?c2N/5hPf2rgUotDX1HG9Sp5LfXIsWznd7fJIq5IGY/kzMk7k8IZIsi+nuR?= =?iso-8859-1?Q?VkLhUTTjU7GNuiiJZ+eX5LKzD8jDo+yB8nk22J7zHWRTpl5jmUycyv+byI?= =?iso-8859-1?Q?5ZSqGAGdP9yBxWwemvRfSKaumaRgIkcFNxWNp5gN5bHCT/RILRssJI0cSf?= =?iso-8859-1?Q?Zq9c1kxm3Suwxe+np+lbkhNpWh20CsK4IzUyU/o9PDY2vaB9H3R8L+FjCP?= =?iso-8859-1?Q?FK4WZiOgF7XckV1IsBfT5Uu3828U/FMejDVvA/nRsrJmaFZIU0fJ04v5qK?= =?iso-8859-1?Q?/MA/se0R2qw1cWH0nJolbQh0p6KO1YB0mMlU2FNeTVn3eEOn11igV6+Equ?= =?iso-8859-1?Q?alB0ToeMZ+TafnYtGjhZPLZ6ngHqGUtW8La1sazQMmPZhIjiPrG+J6vt3q?= =?iso-8859-1?Q?x8nOiiNcbFXst0zid2Q3MzZICgmAN24mc4IeEoRE+OIfYDuA79AnT6JdM3?= =?iso-8859-1?Q?rIHcpDDH3i6mATZJ0z1Oy31WlovUO+LooczhDbsbmoUlbPeb2lmiGI20gf?= =?iso-8859-1?Q?TmeyZCGE+FhsMh1N6y7ZImShm6vtYzVM3MuzfLx46ZYudg+wE1fFmdCf0t?= =?iso-8859-1?Q?ixw94Xnu1o16Sg1D2p6VDG8oqlgc+sFrpeID2M76VskzgrRd7n87z12lCk?= =?iso-8859-1?Q?UMnTSNhPwW0+yqdQKJOUaXPiHNWS86qbNCyP+uppKWW/uAk+BoOIckfatD?= =?iso-8859-1?Q?Yl+yMCg/DLXqpwO0cLGbIrC3Jgibf5PNF8PA/YD5J1xTXAXRzZXKmM2F8Z?= =?iso-8859-1?Q?vMoeYJ5pSrT9LnMvB7CZZT6MhZedG6bQSKcPcWNfco2s3DdBrJPZT72pc2?= =?iso-8859-1?Q?wmp3ZH2W42FI2N+sNtCq9OXvIadeygTk3pL1fngZOVRnYMCaQ0sl+YgQqk?= =?iso-8859-1?Q?5OBOeb5mRG6VwNdbOOIOOwyUIt92VJhdXUYvVF/Ono1Fgyf6itQFHHFI93?= =?iso-8859-1?Q?7zR7RGCFq4KYFmeqxJ5k7mwEwZTvmq2HsbFjGmiN0NNYYVYfz4jJ1WXVho?= =?iso-8859-1?Q?0PJcmfWimYzturGBxjfnbF8i3LDZbPVMmKu4ZaDK6zYEDtJuKMhRQN7By6?= =?iso-8859-1?Q?93+lZA7jdr2LjiiLes11YhYUPPnx7IFjKwRt43LkUhyx/E+SI4FnG7ahnK?= =?iso-8859-1?Q?SCNWdCcEpIBwv9ZfRoaDdia2n/mrDK94OEUpX115KUKpGT9HvD35BQX0KD?= =?iso-8859-1?Q?tq600H+OJjJjJ9xcW/RrG0+sOQc7y0FCk4PuhD4QcCTqTLEZEylp3KL2OR?= =?iso-8859-1?Q?CcCvqwRF6NR5wHGqpcsBLY2HlFjB7kGe1fB5TkNiZFHj2YWXNjoZCsb0aF?= =?iso-8859-1?Q?OtqlwtekvTPX1/cJ7LHFtIkf9iR9MdDOIHvgDTIIGD36SWqa2jQG1Xb57n?= =?iso-8859-1?Q?eTnouVc7AreUIgTlNqWwO/t11tjeaIUYwOFl0NRX9RwYsK5HO3fLx+/kit?= =?iso-8859-1?Q?nZsXjjKOdFfRomwSgo5qVp9QoV7TRw9etrs7HZQjx5Ge91rwl+hH/b2Yd9?= =?iso-8859-1?Q?qVOK4tAt6TbsHTO8cBi7he72Zq/ExeHFJqQB0EB5mDbrLcCqi/T6bssR3N?= =?iso-8859-1?Q?70OwP4YsBwfaYKK8SRJOZOMN6AQyPWl5sKK6bTDMmAj6s3iUICbvg9tQ?= =?iso-8859-1?Q?=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: syrmia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR03MB4882.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21dd082b-314e-418f-4957-08da5b5ee3d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2022 12:40:33.3009 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 19214a73-c1ab-4e19-8f59-14bdcb09a66e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hwiclesqqfzUksITd43FSz0v/F6u7NdEo6XTEsEjyYsyaPxW0XNGlSlfjcX4veviTKbu04A+RG7xwpEDQaHEdMPXI2dlqGobAoKzVSuK6kE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR03MB4991 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jul 2022 12:40:37 -0000 Building the ASAN for the n32 MIPS ABI currently fails, due to a few reason= s:=0A= - defined(__mips64), which is set solely based on the architecture type (32= -bit/64-bit), =0A= was still used in some places. Therefore, defined(__mips64) is swapped with= SANITIZER_MIPS64, =0A= which takes the ABI into account as well - defined(__mips64) && =0A= _MIPS_SIM =3D=3D ABI64.=0A= - The n32 ABI still uses 64-bit *Linux* system calls, even though the word = size is 32 bits.=0A= - After the transition to canonical system calls =0A= (https://reviews.llvm.org/D124212), the n32 ABI still didn't use them, =0A= even though they are supported,=0A= as per https://github.com/torvalds/linux/blob/master/arch/mips/kernel/sysca= lls/syscall_n32.tbl.=0A= =0A= See https://reviews.llvm.org/D127098.=0A= =0A= libsanitizer/ChangeLog:=0A= =0A= * sanitizer_common/sanitizer_linux.cpp (defined): Resolve=0A= ASAN build issues for the Mips n32 ABI.=0A= * sanitizer_common/sanitizer_platform.h (defined): Likewise.=0A= =0A= ---=0A= =0A= libsanitizer/sanitizer_common/sanitizer_linux.cpp | 17 ++++++++++-------= =0A= libsanitizer/sanitizer_common/sanitizer_platform.h | 2 +-=0A= 2 files changed, 11 insertions(+), 8 deletions(-)=0A= =0A= diff --git a/libsanitizer/sanitizer_common/sanitizer_linux.cpp b/libsanitiz= er/sanitizer_common/sanitizer_linux.cpp=0A= index e2c32d679ad..5ba033492e7 100644=0A= --- a/libsanitizer/sanitizer_common/sanitizer_linux.cpp=0A= +++ b/libsanitizer/sanitizer_common/sanitizer_linux.cpp=0A= @@ -34,7 +34,7 @@=0A= // format. Struct kernel_stat is defined as 'struct stat' in asm/stat.h. T= o=0A= // access stat from asm/stat.h, without conflicting with definition in=0A= // sys/stat.h, we use this trick.=0A= -#if defined(__mips64)=0A= +#if SANITIZER_MIPS64=0A= #include =0A= #include =0A= #define stat kernel_stat=0A= @@ -124,8 +124,9 @@ const int FUTEX_WAKE_PRIVATE =3D FUTEX_WAKE | FUTEX_PRI= VATE_FLAG;=0A= // Are we using 32-bit or 64-bit Linux syscalls?=0A= // x32 (which defines __x86_64__) has SANITIZER_WORDSIZE =3D=3D 32=0A= // but it still needs to use 64-bit syscalls.=0A= -#if SANITIZER_LINUX && (defined(__x86_64__) || defined(__powerpc64__) || = \=0A= - SANITIZER_WORDSIZE =3D=3D 64)=0A= +#if SANITIZER_LINUX && (defined(__x86_64__) || defined(__powerpc64__) || \= =0A= + SANITIZER_WORDSIZE =3D=3D 64 || = \=0A= + (defined(__mips__) && _MIPS_SIM =3D=3D _ABIN32))= =0A= # define SANITIZER_LINUX_USES_64BIT_SYSCALLS 1=0A= #else=0A= # define SANITIZER_LINUX_USES_64BIT_SYSCALLS 0=0A= @@ -289,7 +290,7 @@ static void stat64_to_stat(struct stat64 *in, struct st= at *out) {=0A= }=0A= #endif=0A= =0A= -#if defined(__mips64)=0A= +#if SANITIZER_MIPS64=0A= // Undefine compatibility macros from =0A= // so that they would not clash with the kernel_stat=0A= // st_[a|m|c]time fields=0A= @@ -343,7 +344,8 @@ uptr internal_stat(const char *path, void *buf) {=0A= #if SANITIZER_FREEBSD=0A= return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path, (uptr)bu= f, 0);=0A= # elif SANITIZER_LINUX=0A= -# if SANITIZER_WORDSIZE =3D=3D 64 || SANITIZER_X32=0A= +# if SANITIZER_WORDSIZE =3D=3D 64 || SANITIZER_X32 || \=0A= + (defined(__mips__) && _MIPS_SIM =3D=3D _ABIN32)=0A= return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr= )buf,=0A= 0);=0A= # else=0A= @@ -366,7 +368,8 @@ uptr internal_lstat(const char *path, void *buf) {=0A= return internal_syscall(SYSCALL(fstatat), AT_FDCWD, (uptr)path, (uptr)bu= f,=0A= AT_SYMLINK_NOFOLLOW);=0A= # elif SANITIZER_LINUX=0A= -# if defined(_LP64) || SANITIZER_X32=0A= +# if defined(_LP64) || SANITIZER_X32 || \=0A= + (defined(__mips__) && _MIPS_SIM =3D=3D _ABIN32)=0A= return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr= )buf,=0A= AT_SYMLINK_NOFOLLOW);=0A= # else=0A= @@ -1053,7 +1056,7 @@ uptr GetMaxVirtualAddress() {=0A= return (1ULL << (MostSignificantSetBitIndex(GET_CURRENT_FRAME()) + 1)) -= 1;=0A= #elif SANITIZER_RISCV64=0A= return (1ULL << 38) - 1;=0A= -# elif defined(__mips64)=0A= +# elif SANITIZER_MIPS64=0A= return (1ULL << 40) - 1; // 0x000000ffffffffffUL;=0A= # elif defined(__s390x__)=0A= return (1ULL << 53) - 1; // 0x001fffffffffffffUL;=0A= diff --git a/libsanitizer/sanitizer_common/sanitizer_platform.h b/libsaniti= zer/sanitizer_common/sanitizer_platform.h=0A= index 8fe0d831431..8bd9a327623 100644=0A= --- a/libsanitizer/sanitizer_common/sanitizer_platform.h=0A= +++ b/libsanitizer/sanitizer_common/sanitizer_platform.h=0A= @@ -159,7 +159,7 @@=0A= =0A= #if defined(__mips__)=0A= # define SANITIZER_MIPS 1=0A= -# if defined(__mips64)=0A= +# if defined(__mips64) && _MIPS_SIM =3D=3D _ABI64=0A= # define SANITIZER_MIPS32 0=0A= # define SANITIZER_MIPS64 1=0A= # else=0A= =0A= ---=