From patchwork Wed May 16 14:14:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 10404051 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E218060383 for ; Wed, 16 May 2018 14:17:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CD8402884A for ; Wed, 16 May 2018 14:17:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C21FC2898B; Wed, 16 May 2018 14:17:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C592E289ED for ; Wed, 16 May 2018 14:15:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752129AbeEPOPO (ORCPT ); Wed, 16 May 2018 10:15:14 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:35634 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751595AbeEPOPN (ORCPT ); Wed, 16 May 2018 10:15:13 -0400 Received: by mail-pl0-f65.google.com with SMTP id i5-v6so512572plt.2 for ; Wed, 16 May 2018 07:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1GeBK5SSztMEHl9rgjJyLefK/ad1o6jtXXL8fkHGm5M=; b=QwzkBDh+jN+u0a5XOk40sxbua60Izl5xrS95HDiCqolxnYpHH4KwHYU9QemCsQhWKa uf46EOa/EZOyZo46s9voM3w7DcexiT7A2Y75ccm7ClpXsZ1zjBoaqwRPU2xmtYxmX/8g 3ubugCGf+GRAIMvpO/+E1sOacVCVL8qKap44TyU2Txe+LgHf3QwXyGMFYx0/FVjnt4z+ vd2klPjBWw17RcKYlcjpKLv190RlUNN0eM7uAB18V3sdi3xoXkqkvIwe8vLW4iq6hJMe U/qmlePxzuV1KKmKA/TBNSBdHpVfyh8F9/pVon8W8esVXO+QvNuxP+IkU999lPhifnSz MUhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1GeBK5SSztMEHl9rgjJyLefK/ad1o6jtXXL8fkHGm5M=; b=fx7ekySn/FghLzwOcI8J/t4Yz0KEy9t4eL+zFyT1EmvjvO6xZJsY6lnnW35+uHW2/N MifOX5glSQ/pAlaNUhuU5inv1Isg3Zg67y6aAWvc6W9b6sa1O0YV8MBwpTHTlt5wofwE ONiJ3bUpSm+FE04LqWU6wqrCfJkSnjHYQ3UuuswfukyMvoN97YKz8dUqGZqmUT1W3buI FmmhVIhwOwKnOOuhRMrXFfk/1cp9bbBOjO+zydWsH9+AEcgZuSJF31/YwBHuJjrjQs/H 1h61jl+QW715CsKH5o8GILTjJcEIblC2Z5LMFW8Tzj42AnmXDQNPopFqfZhXxM3xkB5s cNEw== X-Gm-Message-State: ALKqPwe3EF11bDRoJDLWCC8kSOmBpJyrlRM6ohnQtAH+XqjYfDQvCc8G Vuwn9yLXCF2t4rXQ5pgGxxQ6BQ== X-Google-Smtp-Source: AB8JxZqigzwlU+6VGc+WGlouavKlrKF9h1htmy8HzIbe5n85DiezI3FC7SYhydEU1u/tuUjVIo+Vdw== X-Received: by 2002:a17:902:265:: with SMTP id 92-v6mr1121494plc.368.1526480113247; Wed, 16 May 2018 07:15:13 -0700 (PDT) Received: from roar.au.ibm.com (59-102-70-78.tpgi.com.au. [59.102.70.78]) by smtp.gmail.com with ESMTPSA id h130-v6sm7365162pfc.98.2018.05.16.07.15.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 May 2018 07:15:12 -0700 (PDT) From: Nicholas Piggin To: linux-kbuild@vger.kernel.org Cc: Nicholas Piggin , linuxppc-dev@lists.ozlabs.org, Masahiro Yamada , Segher Boessenkool Subject: [PATCH v4 1/4] powerpc/kbuild: set default generic machine type for 32-bit compile Date: Thu, 17 May 2018 00:14:55 +1000 Message-Id: <20180516141458.18996-2-npiggin@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180516141458.18996-1-npiggin@gmail.com> References: <20180516141458.18996-1-npiggin@gmail.com> Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some 64-bit toolchains uses the wrong ISA variant for compiling 32-bit kernels, even with -m32. Debian's powerpc64le is one such case, and that is because it is built with --with-cpu=power8. So when cross compiling a 32-bit kernel with a 64-bit toolchain, set -mcpu=powerpc initially, which is the generic 32-bit powerpc machine type and scheduling model. CPU and platform code can override this with subsequent -mcpu flags if necessary. This is not done for 32-bit toolchains otherwise it would override their defaults, which are presumably set appropriately for the environment (moreso than a 64-bit cross compiler). This fixes a lot of build failures due to incompatible assembly when compiling 32-bit kernel with th Debian powerpc64le 64-bit toolchain. Cc: Segher Boessenkool Signed-off-by: Nicholas Piggin --- arch/powerpc/Makefile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 95813df90801..15ca4bafad82 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -24,9 +24,20 @@ ifeq ($(HAS_BIARCH),y) ifeq ($(CROSS32_COMPILE),) CROSS32CC := $(CC) -m32 KBUILD_ARFLAGS += --target=elf32-powerpc + +ifdef CONFIG_PPC32 +# These options will be overridden by any -mcpu option that the CPU +# or platform code sets later on the command line, but they are needed +# to set a sane 32-bit cpu target for the 64-bit cross compiler which +# may default to the wrong ISA. +KBUILD_CFLAGS += -mcpu=powerpc +KBUILD_AFLAGS += -mcpu=powerpc +endif + endif endif + export CROSS32CC CROSS32AR ifeq ($(CROSS_COMPILE),)