diff mbox series

arm64: Turn "broken gas inst" into real config option

Message ID 1579097905-128661-1-git-send-email-vladimir.murzin@arm.com (mailing list archive)
State New, archived
Headers show
Series arm64: Turn "broken gas inst" into real config option | expand

Commit Message

Vladimir Murzin Jan. 15, 2020, 2:18 p.m. UTC
So it is available everywhere and there is no need to keep
CONFIG_ARM64 workaround.

Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
---
 arch/arm64/Kconfig  |  3 +++
 arch/arm64/Makefile | 10 +++-------
 2 files changed, 6 insertions(+), 7 deletions(-)

Comments

Will Deacon Jan. 15, 2020, 2:42 p.m. UTC | #1
On Wed, Jan 15, 2020 at 02:18:25PM +0000, Vladimir Murzin wrote:
> So it is available everywhere and there is no need to keep
> CONFIG_ARM64 workaround.
> 
> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
> ---
>  arch/arm64/Kconfig  |  3 +++
>  arch/arm64/Makefile | 10 +++-------
>  2 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 63c19ef..4139c927 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -303,6 +303,9 @@ config ARCH_SUPPORTS_UPROBES
>  config ARCH_PROC_KCORE_TEXT
>  	def_bool y
>  
> +config BROKEN_GAS_INST
> +	def_bool y if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)

Guessing you can drop the 'y if' part here?

No need to resend just for that, but would be nice to know that it works.

Will
Vladimir Murzin Jan. 15, 2020, 4:08 p.m. UTC | #2
On 1/15/20 2:42 PM, Will Deacon wrote:
> On Wed, Jan 15, 2020 at 02:18:25PM +0000, Vladimir Murzin wrote:
>> So it is available everywhere and there is no need to keep
>> CONFIG_ARM64 workaround.
>>
>> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
>> ---
>>  arch/arm64/Kconfig  |  3 +++
>>  arch/arm64/Makefile | 10 +++-------
>>  2 files changed, 6 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 63c19ef..4139c927 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -303,6 +303,9 @@ config ARCH_SUPPORTS_UPROBES
>>  config ARCH_PROC_KCORE_TEXT
>>  	def_bool y
>>  
>> +config BROKEN_GAS_INST
>> +	def_bool y if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)
> 
> Guessing you can drop the 'y if' part here?
> 
> No need to resend just for that, but would be nice to know that it works.

With 

+config BROKEN_GAS_INST
+	def_bool if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)

I'm getting

arch/arm64/Kconfig:308: syntax error
arch/arm64/Kconfig:307: invalid statement

:(

Cheers
Vladimir

> 
> Will
>
Vladimir Murzin Jan. 15, 2020, 4:12 p.m. UTC | #3
On 1/15/20 4:08 PM, Vladimir Murzin wrote:
> On 1/15/20 2:42 PM, Will Deacon wrote:
>> On Wed, Jan 15, 2020 at 02:18:25PM +0000, Vladimir Murzin wrote:
>>> So it is available everywhere and there is no need to keep
>>> CONFIG_ARM64 workaround.
>>>
>>> Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
>>> ---
>>>  arch/arm64/Kconfig  |  3 +++
>>>  arch/arm64/Makefile | 10 +++-------
>>>  2 files changed, 6 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>>> index 63c19ef..4139c927 100644
>>> --- a/arch/arm64/Kconfig
>>> +++ b/arch/arm64/Kconfig
>>> @@ -303,6 +303,9 @@ config ARCH_SUPPORTS_UPROBES
>>>  config ARCH_PROC_KCORE_TEXT
>>>  	def_bool y
>>>  
>>> +config BROKEN_GAS_INST
>>> +	def_bool y if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)
>>
>> Guessing you can drop the 'y if' part here?
>>
>> No need to resend just for that, but would be nice to know that it works.
> 
> With 
> 
> +config BROKEN_GAS_INST
> +	def_bool if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)
> 
> I'm getting
> 
> arch/arm64/Kconfig:308: syntax error
> arch/arm64/Kconfig:307: invalid statement
> 
> :(

Because I did not drop "if". Indeed, without "y if" everything still works fine.

Vladimir


> 
> Cheers
> Vladimir
> 
>>
>> Will
>>
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 63c19ef..4139c927 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -303,6 +303,9 @@  config ARCH_SUPPORTS_UPROBES
 config ARCH_PROC_KCORE_TEXT
 	def_bool y
 
+config BROKEN_GAS_INST
+	def_bool y if !$(as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n)
+
 config KASAN_SHADOW_OFFSET
 	hex
 	depends on KASAN
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 6dd8eca..dca1a97 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -42,19 +42,15 @@  cc_has_k_constraint := $(call try-run,echo				\
 		return 0;						\
 	}' | $(CC) -S -x c -o "$$TMP" -,,-DCONFIG_CC_HAS_K_CONSTRAINT=1)
 
-ifeq ($(CONFIG_ARM64), y)
-brokengasinst := $(call as-instr,1:\n.inst 0\n.rept . - 1b\n\nnop\n.endr\n,,-DCONFIG_BROKEN_GAS_INST=1)
-
-  ifneq ($(brokengasinst),)
+ifeq ($(CONFIG_BROKEN_GAS_INST),y)
 $(warning Detected assembler with broken .inst; disassembly will be unreliable)
-  endif
 endif
 
-KBUILD_CFLAGS	+= -mgeneral-regs-only $(brokengasinst)	\
+KBUILD_CFLAGS	+= -mgeneral-regs-only	\
 		   $(compat_vdso) $(cc_has_k_constraint)
 KBUILD_CFLAGS	+= -fno-asynchronous-unwind-tables
 KBUILD_CFLAGS	+= $(call cc-disable-warning, psabi)
-KBUILD_AFLAGS	+= $(brokengasinst) $(compat_vdso)
+KBUILD_AFLAGS	+= $(compat_vdso)
 
 KBUILD_CFLAGS	+= $(call cc-option,-mabi=lp64)
 KBUILD_AFLAGS	+= $(call cc-option,-mabi=lp64)