From patchwork Wed Sep 21 11:31:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: YunQiang Su X-Patchwork-Id: 57842 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6FB5D385840A for ; Wed, 21 Sep 2022 11:32:16 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2131.outbound.protection.outlook.com [40.107.215.131]) by sourceware.org (Postfix) with ESMTPS id 3C9F23858C52 for ; Wed, 21 Sep 2022 11:31:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3C9F23858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cipunited.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cipunited.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QrwGRXGqwavgGb//Va9thxB65+wPUaGR3OaqFzEBSqfB0sslgsT0v+bgBCqar/W02dU/5Ab16hYb8Aob72dU79XyLt0uAVPRGpRghTkUriaCtoIPNTqIe6JQFLqG32GcBmxPW4ox9DB39OKZYQVeb8T7Nhc7MaqNp02FWCmDdO9M/eNIynnA9euiEJ7WuU612bqA++HOQ1n6OuIAxgVy9vekSJkwuoC621RUxkSFgJkVXrNKJxe5/5BT2TTMjApav+6CWYoT68LhR2fIcnbK0ZvD06E+tjEbsbCCDIS+k3irU5Vo8p+DpgrVWpNxKL6itsxKmFKSi5oppNPydbWuTQ== 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=7Tv2Tvq/NNqK79fgHpvcDv3Lw27Xo2t6HNBOb9SoVTE=; b=od+dCikd4htC/JyiNyaQ+g0oMi4njWxYgDjKLAIWql1K93uoRlpte5tQEKo6zwL8G1rtBvsp69Tt9X5z9JRtOGS5HIUCK+ReqLNRtypyWryHa7kvzTpSlvPKLSlrykNMtjZ1qA1V9enkoxPIn4lAmgYO2WbqXJUtW1SDShdeu/nUH8M9tQBrQTPpjIdepxLbMLa4affPHAEIFZQVxOGD5RxzXpcjBvvP7muG6S9D/1CYxZMdu+olox/uOCdvuzLacpGQqhZxxaJLTwFAZdzLevA+Hci61S9CgCGOVZ1/aaQugVygDOnoTUC04Q/F62SZaQfLp5SdeJrQOgiQR6cFPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cipunited.com; dmarc=pass action=none header.from=cipunited.com; dkim=pass header.d=cipunited.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cipunited.onmicrosoft.com; s=selector1-cipunited-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7Tv2Tvq/NNqK79fgHpvcDv3Lw27Xo2t6HNBOb9SoVTE=; b=iKH9Qfg0nQT8wnJ9e054jeuRfqXg33EM35BdT2vIK/Oidnn/g+z34hxQ1FVR4qnfkaD43bhogAZujyO454sJuDT714RMJ7sgf0h938ZQG4YUa7MEhdWtQIfXkuH5CqbdfWkAlPVMv5UA2qhSDDsG4Q5pvIyRbIufhiqdUC+bqOw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cipunited.com; Received: from HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) by KL1PR0401MB4243.apcprd04.prod.outlook.com (2603:1096:820:2a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Wed, 21 Sep 2022 11:31:47 +0000 Received: from HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::b49a:e8b:f907:610]) by HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::b49a:e8b:f907:610%9]) with mapi id 15.20.5654.016; Wed, 21 Sep 2022 11:31:47 +0000 From: YunQiang Su To: gcc-patches@gcc.gnu.org Subject: [PATCH] MIPS: fix building on multiarch platform Date: Wed, 21 Sep 2022 11:31:17 +0000 Message-Id: <20220921113118.520824-1-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: TYCP286CA0077.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b3::9) To HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HKAPR04MB3956:EE_|KL1PR0401MB4243:EE_ X-MS-Office365-Filtering-Correlation-Id: bd3aedb9-878d-4581-b1a5-08da9bc4de1a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xrWuslPU9DLf9x4/j5tkKCRgdu1w7gjO++SlqoEilGq5LdxFeUmomwALYr+wA2MTxICu5V+HhrtPc+yRyKtFDrqCs6EjEZD7p26lloF/EUFmowRhls/P0ggUPyAnFBJwjh6DdtXFGLPihy+bpnopYYKpjec0Ti+RMjZqU2PtlwRj4duCGVkNFldBIfsFgEO9F5VRjkA4trj2NBqmKJ26MILeVFRWOclSp/888aphQ05KZRnqft6XZAWaJs3OL3TweoubRoJgLk9v7yWPeOCoe6apu2LgGSn6yFZc4r2QB9jwZ3DN6qXtxkOWAr9dhsrlrMGHdR5YqPnp802R0y4JRgw5x1bEYJ+KJL0UeO769PYZNaYAvn65QkWOiyb1NfVn5G8X/joSE7se/WDL+Ya/rJZVZdsXG0IQzWysBJCzB0l0HIZrv+0jcNyXLaG+U7j9iG4Zm4DUdFsvs/iT9oUDQFkC52O/StZHeqcI50SFGmqD8UG2C/eFR44jWXkxbl/Sx8kThdnGdLcuv47MLcYBmLJqlvampLW0AWOxbhvUC4LOZ8BR0VOS/hcSBBR0Qv7KamdPRHyUy+K1VxEwcr3ZWC5AlxAU6uBlv7Bj2iNhFrEjNpvE6pV+HeMqLPDFZP1FSgvdDrpnGwCPmtekV/S0zGp8BjGRrtA8jXJCl+vm5DyT0Qr4hcVoIMomIU35C1Bbvc5MLwb+4LIsHdTTIcae3hb+9l4KdM80F4SjM8hVOxhAmjd0O2D7cyBY/peV6Id2C2O1pIPBCE7gMQFxFna+tA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HKAPR04MB3956.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(376002)(346002)(136003)(39830400003)(396003)(366004)(451199015)(2906002)(6916009)(6666004)(36756003)(107886003)(52116002)(86362001)(5660300002)(478600001)(6506007)(6486002)(8936002)(186003)(1076003)(2616005)(41300700001)(6512007)(26005)(38100700002)(38350700002)(8676002)(66476007)(4326008)(316002)(66556008)(66946007)(83380400001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gyOpfSkUTHRwDxObyWT/jUlyqukNMyo6O7ieRU4lgeWsqSJx8S2haFbeZgYK96aWmPcgdaxoct8+I1cB+dNfLWmZMPH0iF3psUNOj9iNyf2ICXBF1plwQAOFaHKHEGevMvb9jl/XZRl2VfwyAI+TG5rtQB/J3Viac0N1GTWG84ltefgFF4xZjr/gecUYLWCITZVzRS0Jya10NEuGVGbfE8ZBDIKwIG3vf1dHc5rtESsByV6kd7jTuFqVptrBFVI9FKUNG28mllGNnUz+9HI3BIVS74bJbKoFxZ8kbnKKn5nU1kYq/zr9wTNKhGgW7wYEf6m02io/xWrk2WOoz0/R4ttfbji8DYB3dIIbDS5nARHRqbUG/haoOS40NqSYTlbcbfqQSNPEkvN+FtKNAThqZNMwMFXLaKo2He0F0Y4eydjP41NON6Qm03k0P7ulw/yr/jwsfH7j5tum3eMXOdSFEzIg/L2o1vCcD9LbuM4YJNl7LzngEFH9FKwbWAv4PTjFXI7w3uqIzbQeqP147w5a4+DFRevTMq/Igwv4sAJC8dZKBWz4jCOo32zRMB4Z4shvYp2RG7rEs+bytTSd4pJ1zBbf7ytZqsI3RLQi0s4rXLZQ5TYkmwm7Ptog07epNzf0Dj/W/oOEbylNpbIJBwebbpYyuPU8ewTDCZ8SgQj30GTjPxLIheyRT6iuvdsEHGlNHr5Qe4krKKMv40PBEzpcHnLpIREIbSKIPdge6+4R5AJZ5PJgR8ZIYwBgKqysWAO+hnbM+mTYTIbdEMA4JvBOGY29sXY3o71GgXmQet+RziOXzyjMvb41AMMcXnBTsaiCEveMkw5e+8LgbTBsfmSIMh+FV3Bb9KoVBpeneY9xnnwYe3ntVrVPb4IL1mSQwCJ09ildMqyAU+dbDLXKzDMeautvSa1EzyonisSJqqgqk5LI+klXTmutWKaJAMrQgZNihj0G4CVESJi0imIZQ2KYbUkI9E0+JrVxGpyV34Ta5J32TV/0PH6zaEDT2aXIegWDoJjcriPX/8jWzvchOFBDz8vLCjXGxsCeu2jO9SuDgcPJa8wz1vy2X9iiTaWLa10Rb+MwHPwtl5ctLhV31Kx3y7Y6oh1ZMojLXjJJgtPWYkrdPu+TIkjkHMfhZOZc0r3hlEG2fDt9S/3Hxl3t/UIma8hsvbsOO4ECLcSV84ek6QqmUunpVm1JxaI0KxJJImWdSwf1z4SZSTMBIPI6ZpFBgg2pPtKApdhYvJIVl91HYJowj00PmHSROXtcxmBUo8qryv0PQox6N9xHuBZNhoccfc1TZoUMkyGSfAPqovAQF9LSV/KxF7NY5pQ/9kXzKftr1qLti3aCS1Dn3SZP2BhxrzHIiJ1KBv5locFhkVxo59ulHgr8gNiMZuc/UAbKyFA2U3igSt5YjxhYIWiZgkWMfGfLhVPP+kGQgFE2g3RXWpL9l1QQghR/iPtzeEI+UD9b24J/bWiL9+hod3nNj55oadWP8duvdLSTgEVsH1tz4Qp5tz35lFB2bdSrfTQoBbnKIFmQ7pYx9MOPc69H8Ii6IGH5gdSceyBvjWcKm9YzMlFarcR54E1n68auFhok9lzPBfJlBp86M8Y6jrFbZz2fMw== X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd3aedb9-878d-4581-b1a5-08da9bc4de1a X-MS-Exchange-CrossTenant-AuthSource: HKAPR04MB3956.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 11:31:47.1970 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e31cf5b5-ee69-4d5f-9c69-edeeda2458c0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ePsuTumTxP1qgFDuRDUwlNB4caPcFK0vIulfhpshtQwuyDBctPEMM1phgg4pjp1otromlYTIqHfwejo6oHSdW8Tq3mCz3JlKaScRZB7gGpY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0401MB4243 X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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 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: , Cc: YunQiang Su , doko@debian.org, macro@orcam.me.uk Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" On platforms that support multiarch, such as Debian, the filesystem hierarchy doesn't fellow the old Irix style: lib & lib/ for native lib64 for N64 on N32/O32 systems lib32 for N32 on N64/O32 systems libo32 for O32 on N64/N32 systems Thus we cannot #define STANDARD_STARTFILE_PREFIX_1 #define STANDARD_STARTFILE_PREFIX_2 on N32 or N64 systems, else collect2 won't look for libraries on /lib/. gcc/ChangeLog: * configure.ac: AC_DEFINE(ENABLE_MULTIARCH, 1) * configure: Regenerated. * config.in: Regenerated. * config/mips/mips.h: don't define STANDARD_STARTFILE_PREFIX_1 if ENABLE_MULTIARCH is defined. * config/mips/t-linux64: define correct multiarch path when multiarch is enabled. --- gcc/config.in | 6 ++++++ gcc/config/mips/mips.h | 2 ++ gcc/config/mips/t-linux64 | 21 ++++++++++++++++++++- gcc/configure | 4 ++++ gcc/configure.ac | 3 +++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/gcc/config.in b/gcc/config.in index 6ac17be189e..b2ce6361327 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -2312,6 +2312,12 @@ #endif +/* Specify if mutliarch is enabled. */ +#ifndef USED_FOR_TARGET +#undef ENABLE_MULTIARCH +#endif + + /* The size of `dev_t', as computed by sizeof. */ #ifndef USED_FOR_TARGET #undef SIZEOF_DEV_T diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 74b6e11aabb..fe7f5b274b9 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3427,6 +3427,7 @@ struct GTY(()) machine_function { /* If we are *not* using multilibs and the default ABI is not ABI_32 we need to change these from /lib and /usr/lib. */ +#ifndef ENABLE_MULTIARCH #if MIPS_ABI_DEFAULT == ABI_N32 #define STANDARD_STARTFILE_PREFIX_1 "/lib32/" #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib32/" @@ -3434,6 +3435,7 @@ struct GTY(()) machine_function { #define STANDARD_STARTFILE_PREFIX_1 "/lib64/" #define STANDARD_STARTFILE_PREFIX_2 "/usr/lib64/" #endif +#endif /* Load store bonding is not supported by micromips and fix_24k. The performance can be degraded for those targets. Hence, do not bond for diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 index 2fdd8e00407..37d176ea309 100644 --- a/gcc/config/mips/t-linux64 +++ b/gcc/config/mips/t-linux64 @@ -20,7 +20,26 @@ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 MULTILIB_DIRNAMES = n32 32 64 MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) -MULTILIB_OSDIRNAMES = \ +ifeq (yes,$(enable_multiarch)) + ifneq (,$(findstring gnuabi64,$(target))) + MULTILIB_OSDIRNAMES = \ + ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ + ../libo32$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ + ../lib$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) + else ifneq (,$(findstring gnuabin32,$(target))) + MULTILIB_OSDIRNAMES = \ + ../lib$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ + ../libo32$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ + ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) + else + MULTILIB_OSDIRNAMES = \ + ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ + ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ + ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) + endif +else + MULTILIB_OSDIRNAMES = \ ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) +endif diff --git a/gcc/configure b/gcc/configure index 817d765568e..f9a796d6bb4 100755 --- a/gcc/configure +++ b/gcc/configure @@ -7841,6 +7841,10 @@ if test x${enable_multiarch} = xauto; then enable_multiarch=no fi fi +if test x${enable_multiarch} = xyes; then + $as_echo "#define ENABLE_MULTIARCH 1" >>confdefs.h + +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multiarch configuration" >&5 $as_echo_n "checking for multiarch configuration... " >&6; } diff --git a/gcc/configure.ac b/gcc/configure.ac index 59f205a1781..44631e23033 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -886,6 +886,9 @@ if test x${enable_multiarch} = xauto; then enable_multiarch=no fi fi +if test x${enable_multiarch} = xyes; then + AC_DEFINE(ENABLE_MULTIARCH, 1) +fi AC_MSG_CHECKING(for multiarch configuration) AC_SUBST(enable_multiarch) AC_MSG_RESULT($enable_multiarch$ma_msg_suffix)