From patchwork Mon May 14 03:52:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 10396695 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 9C6176038F for ; Mon, 14 May 2018 03:52:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8E7A529094 for ; Mon, 14 May 2018 03:52:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8342A29097; Mon, 14 May 2018 03:52:49 +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 31A1A29094 for ; Mon, 14 May 2018 03:52:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751284AbeENDws (ORCPT ); Sun, 13 May 2018 23:52:48 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:41582 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751093AbeENDwr (ORCPT ); Sun, 13 May 2018 23:52:47 -0400 Received: by mail-pf0-f194.google.com with SMTP id v63-v6so5336556pfk.8 for ; Sun, 13 May 2018 20:52:47 -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=BMHeYMY21DGZBaqGSUroD8WTssy/yTFJ59ltNQM5hDs=; b=O3gCXvx4d0GO0HOsMGFTj8YuckT3L14xYsDey/HyUhxkTrQrBDekrmVaGnekdvpiCt XKx+w3iWMdnI7nUh1MdlZH1ZAOs8+hqPTMJ9svzMoQWHAvAG2Xz44m5YVbRc3v8fTXLL aaNkoTF3fthR0kjze0PN9uhhhiDz+IUigJVJPwn+IAZBVn967pDCkAlItWRysZyomVJN oCwQ4nVl9OY9IfDBdJSc8hsKGZETIZZP9LK5KHktElFKLKc0lfDT88MvI8pPNhn0vw4P 1VY8wLY5zrctmC1l5wwZc7VzE8/8BLSB6ax4eBIDDVB9b+PM+zZlM8QJYOZwOBToJfVU EzSA== 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=BMHeYMY21DGZBaqGSUroD8WTssy/yTFJ59ltNQM5hDs=; b=RWJwjk6gEHzoyaBNiPLr3pwGW5dhE9ZDJpkZyK174F7YGepmLadsCVa3HolBTVjTmK YH7aK8q8XuRlIVRro5ynx8DU2PQIR10+zAPhZ/w2lTvNOJswPOfr9TnETGYA6Zuc3nqX AVxRuZd221ZDngzDiBI0Xe0Z75l8b5ft6f3dJQqdsAkm+so7jibPK/73/ND5KEPU6YEB CKnJNs2nymROnj5HoRflYrfXZ/feeq3vqHqGza8J4hLblgiZTMUA920gB710Bw+6d0yv CQdl8VKDeUnx8MoVHVPJAdYafLBCfFnxw/5weIgowiXRZ/RwZOwShYyuqcwMwAppiAcH cc2A== X-Gm-Message-State: ALKqPwewYSh007I4Y2WO/58kJarmzVVsKq4hVjV5UPvlWPvXYNTUo9Hb aEneQ8xMI5k3F/p+OieH90nowQ== X-Google-Smtp-Source: AB8JxZqnFrQ9jV2KGb66M7rmTgetHAMS16x4hfk/0akiZrbZy0Y1IU5i3WWflCYe1LnujH7HUejLmw== X-Received: by 2002:a62:c95c:: with SMTP id k89-v6mr8575343pfg.47.1526269967138; Sun, 13 May 2018 20:52:47 -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 d71-v6sm15668943pfd.48.2018.05.13.20.52.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 13 May 2018 20:52:46 -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 v3 1/4] powerpc/kbuild: set default generic machine type for 32-bit compile Date: Mon, 14 May 2018 13:52:25 +1000 Message-Id: <20180514035228.21316-2-npiggin@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180514035228.21316-1-npiggin@gmail.com> References: <20180514035228.21316-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. Signed-off-by: Nicholas Piggin --- Since v2: - reworded changelog to explain the cause of the problem, (thanks Segher). - moved the flags into the 64-32 cross compile case so as not to disturb native 32-bit builds. 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),)