Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp12488620rwd; Fri, 23 Jun 2023 06:53:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6dmou9tJwT3QAOxIKhzT1g/yoOUPfchRR+SfmOIn2jneoFDL1wPPPl6bl8KyuDAuMAKdJJ X-Received: by 2002:a17:903:2696:b0:1b0:3576:c2b5 with SMTP id jf22-20020a170903269600b001b03576c2b5mr13876247plb.7.1687528437626; Fri, 23 Jun 2023 06:53:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687528437; cv=none; d=google.com; s=arc-20160816; b=NpjF00wuICf/g6xNfl+++7AKM8kx8nGZdhXj58lBlZWkG6d5RjL3MlUL1fLf9vMVTf bO2tzuBGs4QiaY0dfc1n9PUE01R2E16GecteBCH6s8ItUSZRcLHf8Bho3T0ADhUvJVUd gQ0cUoUF/84Sn3K8BG+nPEjvGrWKkbnKgwsJEUVZFYO9i0dNHkIVg8fj+Cip6ui0VC+m kQuyztjxv9hxsPwJoBdO5W8pbk6e86EYjISPjGLNVuWEdDpVRR7urpp48mAOHHHOL/EG Q6pzmAU/B7is/yHVTLjrZRHYn9W2HZnqh4rnQgsDfT5mQpZ3uni9o0XCrpAaFK/n95YR zv1g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=uguDKKYzc25WuSdcvNu44f/fQhL/A3igG49PN/UnnCI=; b=UyjOt1W1vScp/vb8vyovzMx1+ByT/NT4Zko8ZxJuAC1kRI6JQBeD0P6j62PGkkZ/vd DwebYs1kj/OJBFJ8RJfvGT3Hlz+zkIULQMr/jjPbyamPEy809VPKPxhtu7Z35vUJoxlF QOfj/0+Odr7KQXHq1XB+5EEMJho5F/oGoa0r2X3RsIemlqHjH5ppIiF9Kw1uCSvKECoA yIleolIzDSRETHBuWvW2xBmXREN41Po8on/suy3ahUW/0zAUcgIAqrCstNOZdV1/PrqZ ndi96hzYB9lRktju3FcsndcPD+Zv/tUT9/6cOqubFtveaIXhPFCvOJYX8xu9ZEUqBGrX nVtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=LbZUAwOB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m18-20020a170902e41200b001b516b77c42si8094391ple.402.2023.06.23.06.53.43; Fri, 23 Jun 2023 06:53:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b=LbZUAwOB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231769AbjFWNof (ORCPT + 99 others); Fri, 23 Jun 2023 09:44:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58560 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231757AbjFWNoT (ORCPT ); Fri, 23 Jun 2023 09:44:19 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A7862696; Fri, 23 Jun 2023 06:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1687527855; bh=gdMT1VPu7/T52oiYEqx+LXNHcCWHe7wIMOjlRAhlRp4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LbZUAwOBMJDqn53dBYM6vkJk0QzMOlZIpO4XkyKJcp3LLA9UYdeAm4QO5NmZ7Hg3B Vt+LbbPcmhvdXLiI0FkO/5nhUEIBUWVSEtSRRIdYOwWk112ZSFfz99lXjB22Kxq1Fl /y4el0HPuzUO6cB2bR4t3fQdnRceT87sRecquOAw= Received: from ld50.lan (unknown [101.88.25.181]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id AC758605F4; Fri, 23 Jun 2023 21:44:15 +0800 (CST) From: WANG Xuerui To: Huacai Chen Cc: WANG Rui , Xi Ruoyao , loongarch@lists.linux.dev, linux-kbuild@vger.kernel.org, llvm@lists.linux.dev, linux-kernel@vger.kernel.org, WANG Xuerui Subject: [PATCH 7/9] LoongArch: Tweak CFLAGS for Clang compatibility Date: Fri, 23 Jun 2023 21:43:49 +0800 Message-Id: <20230623134351.1898379-8-kernel@xen0n.name> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230623134351.1898379-1-kernel@xen0n.name> References: <20230623134351.1898379-1-kernel@xen0n.name> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: WANG Xuerui Now the arch code is mostly ready for LLVM/Clang consumption, it is time to re-organize the CFLAGS a little to actually enable the LLVM build. A build with !RELOCATABLE && !MODULE is confirmed working within a QEMU environment; support for the two features are currently blocked by LLVM/Clang, and will come later. Signed-off-by: WANG Xuerui --- arch/loongarch/Makefile | 14 +++++++++++--- arch/loongarch/vdso/Makefile | 6 +++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile index a27e264bdaa5..efe9b50bd829 100644 --- a/arch/loongarch/Makefile +++ b/arch/loongarch/Makefile @@ -46,12 +46,18 @@ ld-emul = $(64bit-emul) cflags-y += -mabi=lp64s endif -cflags-y += -G0 -pipe -msoft-float -LDFLAGS_vmlinux += -G0 -static -n -nostdlib +ifndef CONFIG_CC_IS_CLANG +cflags-y += -G0 +LDFLAGS_vmlinux += -G0 +endif +cflags-y += -pipe +LDFLAGS_vmlinux += -static -n -nostdlib # When the assembler supports explicit relocation hint, we must use it. # GCC may have -mexplicit-relocs off by default if it was built with an old -# assembler, so we force it via an option. +# assembler, so we force it via an option. For LLVM/Clang the desired behavior +# is the default, and the flag is not supported, so don't pass it if Clang is +# being used. # # When the assembler does not supports explicit relocation hint, we can't use # it. Disable it if the compiler supports it. @@ -61,8 +67,10 @@ LDFLAGS_vmlinux += -G0 -static -n -nostdlib # combination of a "new" assembler and "old" compiler is not supported. Either # upgrade the compiler or downgrade the assembler. ifdef CONFIG_AS_HAS_EXPLICIT_RELOCS +ifndef CONFIG_CC_IS_CLANG cflags-y += -mexplicit-relocs KBUILD_CFLAGS_KERNEL += -mdirect-extern-access +endif else cflags-y += $(call cc-option,-mno-explicit-relocs) KBUILD_AFLAGS_KERNEL += -Wa,-mla-global-with-pcrel diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile index 4c859a0e4754..19f6c75a1106 100644 --- a/arch/loongarch/vdso/Makefile +++ b/arch/loongarch/vdso/Makefile @@ -25,13 +25,17 @@ endif cflags-vdso := $(ccflags-vdso) \ -isystem $(shell $(CC) -print-file-name=include) \ $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \ - -O2 -g -fno-strict-aliasing -fno-common -fno-builtin -G0 \ + -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \ -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \ $(call cc-option, -fno-asynchronous-unwind-tables) \ $(call cc-option, -fno-stack-protector) aflags-vdso := $(ccflags-vdso) \ -D__ASSEMBLY__ -Wa,-gdwarf-2 +ifndef CONFIG_CC_IS_CLANG +cflags-vdso += -G0 +endif + ifneq ($(c-gettimeofday-y),) CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y) endif -- 2.40.0