From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752770AbdEITgV (ORCPT ); Tue, 9 May 2017 15:36:21 -0400 Received: from mail-pg0-f44.google.com ([74.125.83.44]:34712 "EHLO mail-pg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751529AbdEITgT (ORCPT ); Tue, 9 May 2017 15:36:19 -0400 From: Matthias Kaehlcke To: Matt Fleming , Ard Biesheuvel Cc: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org, Grant Grundler , Greg Hackmann , Michael Davidson , Matthias Kaehlcke , =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= Subject: [PATCH] efi/libstub: Indicate clang the relocation mode for arm64 Date: Tue, 9 May 2017 12:36:12 -0700 Message-Id: <20170509193612.64105-1-mka@chromium.org> X-Mailer: git-send-email 2.13.0.rc2.291.g57267f2277-goog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Greg Hackmann Without any extra guidance, clang will generate libstub with either absolute or relative ELF relocations. Use the right combination of -fpic and -fno-pic on different files to avoid this. Signed-off-by: Greg Hackmann Signed-off-by: Bernhard Rosenkränzer Signed-off-by: Matthias Kaehlcke --- drivers/firmware/efi/libstub/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile index f7425960f6a5..ccbaaf4d8650 100644 --- a/drivers/firmware/efi/libstub/Makefile +++ b/drivers/firmware/efi/libstub/Makefile @@ -11,6 +11,9 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \ -mno-mmx -mno-sse cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) +ifeq ($(cc-name),clang) +cflags-$(CONFIG_ARM64) += -fpic +endif cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \ -fno-builtin -fpic -mno-single-pic-base @@ -38,6 +41,9 @@ $(obj)/lib-%.o: $(srctree)/lib/%.c FORCE lib-$(CONFIG_EFI_ARMSTUB) += arm-stub.o fdt.o string.o random.o \ $(patsubst %.c,lib-%.o,$(arm-deps)) +ifeq ($(cc-name),clang) +CFLAGS_arm64-stub.o += -fno-pic +endif lib-$(CONFIG_ARM) += arm32-stub.o lib-$(CONFIG_ARM64) += arm64-stub.o -- 2.13.0.rc2.291.g57267f2277-goog