When building with CONFIG_EFI and CONFIG_EFI_STUB on ARM, the libstub
Makefile would use -mno-single-pic-base without checking it was
supported by the compiler. As the ARM (32-bit) clang backend does not
support this flag, the build would fail.
This changes the Makefile to check the compiler's support for
-mno-single-pic-base before using it, similar to c1c386681bd7 ("ARM:
8767/1: add support for building ARM kernel with clang").
Cc: Stefan Agner <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Russell King <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Alistair Strachan <[email protected]>
---
drivers/firmware/efi/libstub/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index a34e9290a699..91339d13f2a1 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -13,7 +13,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \
cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) -fpie
cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \
- -fno-builtin -fpic -mno-single-pic-base
+ -fno-builtin -fpic \
+ $(call cc-option,-mno-single-pic-base)
cflags-$(CONFIG_EFI_ARMSTUB) += -I$(srctree)/scripts/dtc/libfdt
--
2.18.0.597.ga71716f1ad-goog
On 09.08.2018 18:40, Alistair Strachan wrote:
> When building with CONFIG_EFI and CONFIG_EFI_STUB on ARM, the libstub
> Makefile would use -mno-single-pic-base without checking it was
> supported by the compiler. As the ARM (32-bit) clang backend does not
> support this flag, the build would fail.
>
> This changes the Makefile to check the compiler's support for
> -mno-single-pic-base before using it, similar to c1c386681bd7 ("ARM:
> 8767/1: add support for building ARM kernel with clang").
Looks good to me:
Reviewed-by: Stefan Agner <[email protected]>
>
> Cc: Stefan Agner <[email protected]>
> Cc: Ard Biesheuvel <[email protected]>
> Cc: Will Deacon <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Cc: Russell King <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Alistair Strachan <[email protected]>
> ---
> drivers/firmware/efi/libstub/Makefile | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/efi/libstub/Makefile
> b/drivers/firmware/efi/libstub/Makefile
> index a34e9290a699..91339d13f2a1 100644
> --- a/drivers/firmware/efi/libstub/Makefile
> +++ b/drivers/firmware/efi/libstub/Makefile
> @@ -13,7 +13,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \
>
> cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) -fpie
> cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \
> - -fno-builtin -fpic -mno-single-pic-base
> + -fno-builtin -fpic \
> + $(call cc-option,-mno-single-pic-base)
>
> cflags-$(CONFIG_EFI_ARMSTUB) += -I$(srctree)/scripts/dtc/libfdt
On 11 August 2018 at 10:49, Stefan Agner <[email protected]> wrote:
> On 09.08.2018 18:40, Alistair Strachan wrote:
>> When building with CONFIG_EFI and CONFIG_EFI_STUB on ARM, the libstub
>> Makefile would use -mno-single-pic-base without checking it was
>> supported by the compiler. As the ARM (32-bit) clang backend does not
>> support this flag, the build would fail.
>>
>> This changes the Makefile to check the compiler's support for
>> -mno-single-pic-base before using it, similar to c1c386681bd7 ("ARM:
>> 8767/1: add support for building ARM kernel with clang").
>
> Looks good to me:
>
> Reviewed-by: Stefan Agner <[email protected]>
>
Thanks. I will queue this after the merge window closes
>>
>> Cc: Stefan Agner <[email protected]>
>> Cc: Ard Biesheuvel <[email protected]>
>> Cc: Will Deacon <[email protected]>
>> Cc: Greg Kroah-Hartman <[email protected]>
>> Cc: Russell King <[email protected]>
>> Cc: [email protected]
>> Cc: [email protected]
>> Signed-off-by: Alistair Strachan <[email protected]>
>> ---
>> drivers/firmware/efi/libstub/Makefile | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/firmware/efi/libstub/Makefile
>> b/drivers/firmware/efi/libstub/Makefile
>> index a34e9290a699..91339d13f2a1 100644
>> --- a/drivers/firmware/efi/libstub/Makefile
>> +++ b/drivers/firmware/efi/libstub/Makefile
>> @@ -13,7 +13,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \
>>
>> cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) -fpie
>> cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \
>> - -fno-builtin -fpic -mno-single-pic-base
>> + -fno-builtin -fpic \
>> + $(call cc-option,-mno-single-pic-base)
>>
>> cflags-$(CONFIG_EFI_ARMSTUB) += -I$(srctree)/scripts/dtc/libfdt