From patchwork Thu May 10 05:16:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 10391153 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 71E0B6028E for ; Thu, 10 May 2018 05:17:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 61C9E28866 for ; Thu, 10 May 2018 05:17:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 56B1828870; Thu, 10 May 2018 05:17:25 +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 ECE5B28866 for ; Thu, 10 May 2018 05:17:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756547AbeEJFRY (ORCPT ); Thu, 10 May 2018 01:17:24 -0400 Received: from mail-pl0-f68.google.com ([209.85.160.68]:36322 "EHLO mail-pl0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756501AbeEJFRX (ORCPT ); Thu, 10 May 2018 01:17:23 -0400 Received: by mail-pl0-f68.google.com with SMTP id v24-v6so610941plo.3 for ; Wed, 09 May 2018 22:17:23 -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=LCA2sIXkuwHXYEX3Y9Z9STk3T74x16ELpb+mRaJaxvI=; b=LkLxqQlWqef/iNUxDyDuxGGVUc8kcYS8Rd4ZXu9C7RukU7RiI0Qve4X2gZ/bhDt6kS 0GXH2yYbr+PZnrQstSbuhBKREFnwbYGyeVdPoD8An4oz/7OcZ4jTrm4h0E8eYVNFN4k+ vUbDxn+kk+IobZNoEmDFuraKMjWzkRzYNE+38pZ0PYTUYUCFF/ufHSEQkue6lShvEPRn IxSsKw9x9BiF5G+r7zEYvVu2i2aggGKvdN+dPZiPvZ7tdpcJQD+NL6cKcWm2a2BFFjA6 D7ADnPIfVEb3/rnoUem1OmLbnRRdC1phDueK5Huc5LSI8low4zZhbGhqyYkJoHERtwyR zwMg== 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=LCA2sIXkuwHXYEX3Y9Z9STk3T74x16ELpb+mRaJaxvI=; b=rkYLU/cEpMOXLb0Oj7w0gCpovzSDP+x13zh8h3DmBCcPcKeuznxwVxJ9MY7Jk6BafJ 3MBMkzlzGxRBXLPegIaFBS39fmLKtfbLyZgQbh3hTdyAbwAery0yQb/YkDiHnY4BU/vf PCi8s9HzXjStuxwZr/RFjGwzrN3oEvF8W7ntjg1nHfYWvrroKboi6MlJTKcktxgFGsRs jfUrto0w1lfYgRR8h8xsLdXFAJUbg/NeFMdGjYyvrcKDQ4W7saG3QPgC1C9V4nF8D2cK J6jGcGnhrgpoUJGYjKIsdGM1N5XdfwwFiqCPzaGrnAriAF9kRhggupj2LveBcYTFftyG erdw== X-Gm-Message-State: ALKqPwdQ3Mrgsu/REPeJ0gbHiHweirxu0cdJwvEMSODWGgyuVjc0GfAz sh2rD7YnmxiqHFsO5G3BIw91Xg== X-Google-Smtp-Source: AB8JxZq4a+f9MNzstu5p/t9JhKgw4wskUlT5koGA2ZqlyjI9huGuGPpbMCujzAMxh+J4xZznOSQPFw== X-Received: by 2002:a17:902:1566:: with SMTP id b35-v6mr2945621plh.107.1525929442952; Wed, 09 May 2018 22:17:22 -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 a7-v6sm8922265pgc.68.2018.05.09.22.17.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 May 2018 22:17:22 -0700 (PDT) From: Nicholas Piggin To: linux-kbuild@vger.kernel.org Cc: Nicholas Piggin , Masahiro Yamada , linuxppc-dev@lists.ozlabs.org Subject: [PATCH v2 4/5] powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS Date: Thu, 10 May 2018 15:16:58 +1000 Message-Id: <20180510051659.15356-5-npiggin@gmail.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180510051659.15356-1-npiggin@gmail.com> References: <20180510051659.15356-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 The powerpc toolchain can compile combinations of 32/64 bit and big/little endian, so it's convenient to consider, e.g., `CC -m64 -mbig-endian` To be the C compiler for the purpose of invoking it to build target artifacts. So overriding the the CC variable to include thse flags works for this purpose. Unfortunately that is not compatible with the way the proposed new Kconfig macro language will work. After previous patches in this series, these flags can be carefully passed in using flags instead. Signed-off-by: Nicholas Piggin --- arch/powerpc/Makefile | 16 +++++++++------- scripts/recordmcount.pl | 8 ++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index a40f59ca2afe..5f3ec8029e50 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -70,13 +70,15 @@ endif endif ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y) -override LD += -EL +KBUILD_CFLAGS += -mlittle-endian +LDFLAGS += -EL LDEMULATION := lppc GNUTARGET := powerpcle MULTIPLEWORD := -mno-multiple KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-save-toc-indirect) else -override LD += -EB +KBUILD_CFLAGS += $(call cc-option,-mbig-endian) +LDFLAGS += -EB LDEMULATION := ppc GNUTARGET := powerpc MULTIPLEWORD := -mmultiple @@ -89,19 +91,19 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mabi=elfv1) aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mabi=elfv2 endif -cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian -cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mbig-endian) ifneq ($(cc-name),clang) cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mno-strict-align endif +cflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mbig-endian) +cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mbig-endian) aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian ifeq ($(HAS_BIARCH),y) -override AS += -a$(BITS) -override LD += -m elf$(BITS)$(LDEMULATION) -override CC += -m$(BITS) +KBUILD_CFLAGS += -m$(BITS) +KBUILD_AFLAGS += -m$(BITS) -Wl,-a$(BITS) +LDFLAGS += -m elf$(BITS)$(LDEMULATION) KBUILD_ARFLAGS += --target=elf$(BITS)-$(GNUTARGET) endif diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl index 191eb949d52c..919711dd9d6c 100755 --- a/scripts/recordmcount.pl +++ b/scripts/recordmcount.pl @@ -274,6 +274,14 @@ if ($arch eq "x86_64") { if ($bits == 64) { $type = ".quad"; } + $ld .= " -EB "; + if ($endian eq "big") { + $cc .= " -mbig-endian "; + $ld .= " -EB "; + } else { + $cc .= " -mlittle-endian "; + $ld .= " -EL "; + } } elsif ($arch eq "arm") { $alignment = 2;