* [PATCH 0/2] LoongArch: Allow building with kcov
@ 2023-07-04 12:53 Feiyang Chen
2023-07-04 12:53 ` [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset Feiyang Chen
2023-07-04 12:53 ` [PATCH 2/2] LoongArch: Allow building with kcov coverage Feiyang Chen
0 siblings, 2 replies; 8+ messages in thread
From: Feiyang Chen @ 2023-07-04 12:53 UTC (permalink / raw)
To: chenhuacai
Cc: Feiyang Chen, hejinyang, dvyukov, andreyknvl, loongarch,
kasan-dev, chris.chenfeiyang, loongson-kernel
Provide kaslr_offset() and allow building with kcov.
Feiyang Chen (2):
LoongArch: relocatable: Provide kaslr_offset() to get the kernel
offset
LoongArch: Allow building with kcov coverage
arch/loongarch/Kconfig | 1 +
arch/loongarch/include/asm/setup.h | 6 ++++++
arch/loongarch/kernel/relocate.c | 18 ++++++++----------
arch/loongarch/kernel/setup.c | 3 +++
arch/loongarch/vdso/Makefile | 2 ++
5 files changed, 20 insertions(+), 10 deletions(-)
--
2.39.3
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset
2023-07-04 12:53 [PATCH 0/2] LoongArch: Allow building with kcov Feiyang Chen
@ 2023-07-04 12:53 ` Feiyang Chen
2023-07-09 3:50 ` Huacai Chen
2023-07-04 12:53 ` [PATCH 2/2] LoongArch: Allow building with kcov coverage Feiyang Chen
1 sibling, 1 reply; 8+ messages in thread
From: Feiyang Chen @ 2023-07-04 12:53 UTC (permalink / raw)
To: chenhuacai
Cc: Feiyang Chen, dvyukov, andreyknvl, loongarch, kasan-dev,
chris.chenfeiyang, loongson-kernel
Provide kaslr_offset() to get the kernel offset when KASLR is enabled.
Rename reloc_offset to __reloc_offset and export it.
Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
---
arch/loongarch/include/asm/setup.h | 6 ++++++
arch/loongarch/kernel/relocate.c | 18 ++++++++----------
arch/loongarch/kernel/setup.c | 3 +++
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/arch/loongarch/include/asm/setup.h b/arch/loongarch/include/asm/setup.h
index 2dca0d1dd90a..39f9964bbdd4 100644
--- a/arch/loongarch/include/asm/setup.h
+++ b/arch/loongarch/include/asm/setup.h
@@ -37,4 +37,10 @@ extern unsigned long __init relocate_kernel(void);
#endif
+extern unsigned long __reloc_offset;
+static inline unsigned long kaslr_offset(void)
+{
+ return __reloc_offset;
+}
+
#endif /* __SETUP_H */
diff --git a/arch/loongarch/kernel/relocate.c b/arch/loongarch/kernel/relocate.c
index 6c3eff9af9fb..9ba560d514e1 100644
--- a/arch/loongarch/kernel/relocate.c
+++ b/arch/loongarch/kernel/relocate.c
@@ -16,11 +16,9 @@
#include <asm/sections.h>
#include <asm/setup.h>
-#define RELOCATED(x) ((void *)((long)x + reloc_offset))
+#define RELOCATED(x) ((void *)((long)x + __reloc_offset))
#define RELOCATED_KASLR(x) ((void *)((long)x + random_offset))
-static unsigned long reloc_offset;
-
static inline void __init relocate_relative(void)
{
Elf64_Rela *rela, *rela_end;
@@ -154,7 +152,7 @@ static inline void __init update_reloc_offset(unsigned long *addr, long random_o
{
unsigned long *new_addr = (unsigned long *)RELOCATED_KASLR(addr);
- *new_addr = (unsigned long)reloc_offset;
+ *new_addr = (unsigned long)__reloc_offset;
}
unsigned long __init relocate_kernel(void)
@@ -173,7 +171,7 @@ unsigned long __init relocate_kernel(void)
if (relocation_addr_valid(location_new))
random_offset = (unsigned long)location_new - (unsigned long)(_text);
#endif
- reloc_offset = (unsigned long)_text - VMLINUX_LOAD_ADDRESS;
+ __reloc_offset = (unsigned long)_text - VMLINUX_LOAD_ADDRESS;
if (random_offset) {
kernel_length = (long)(_end) - (long)(_text);
@@ -187,15 +185,15 @@ unsigned long __init relocate_kernel(void)
"dbar 0 \t\n"
::: "memory");
- reloc_offset += random_offset;
+ __reloc_offset += random_offset;
/* The current thread is now within the relocated kernel */
__current_thread_info = RELOCATED_KASLR(__current_thread_info);
- update_reloc_offset(&reloc_offset, random_offset);
+ update_reloc_offset(&__reloc_offset, random_offset);
}
- if (reloc_offset)
+ if (__reloc_offset)
relocate_relative();
relocate_absolute(random_offset);
@@ -208,9 +206,9 @@ unsigned long __init relocate_kernel(void)
*/
static void show_kernel_relocation(const char *level)
{
- if (reloc_offset > 0) {
+ if (__reloc_offset > 0) {
printk(level);
- pr_cont("Kernel relocated by 0x%lx\n", reloc_offset);
+ pr_cont("Kernel relocated by 0x%lx\n", __reloc_offset);
pr_cont(" .text @ 0x%px\n", _text);
pr_cont(" .data @ 0x%px\n", _sdata);
pr_cont(" .bss @ 0x%px\n", __bss_start);
diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
index 95e6b579dfdd..d7bda711824f 100644
--- a/arch/loongarch/kernel/setup.c
+++ b/arch/loongarch/kernel/setup.c
@@ -65,6 +65,9 @@ struct cpuinfo_loongarch cpu_data[NR_CPUS] __read_mostly;
EXPORT_SYMBOL(cpu_data);
+unsigned long __reloc_offset __ro_after_init;
+EXPORT_SYMBOL(__reloc_offset);
+
struct loongson_board_info b_info;
static const char dmi_empty_string[] = " ";
--
2.39.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] LoongArch: Allow building with kcov coverage
2023-07-04 12:53 [PATCH 0/2] LoongArch: Allow building with kcov Feiyang Chen
2023-07-04 12:53 ` [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset Feiyang Chen
@ 2023-07-04 12:53 ` Feiyang Chen
2023-07-09 3:55 ` Huacai Chen
2023-09-10 15:51 ` Guenter Roeck
1 sibling, 2 replies; 8+ messages in thread
From: Feiyang Chen @ 2023-07-04 12:53 UTC (permalink / raw)
To: chenhuacai
Cc: Feiyang Chen, dvyukov, andreyknvl, loongarch, kasan-dev,
chris.chenfeiyang, loongson-kernel
Add ARCH_HAS_KCOV to the LoongArch Kconfig. Also disable
instrumentation of vdso.
Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
---
arch/loongarch/Kconfig | 1 +
arch/loongarch/vdso/Makefile | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index ed9a148cdcde..4c21a961ab88 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -14,6 +14,7 @@ config LOONGARCH
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
select ARCH_HAS_CPU_FINALIZE_INIT
select ARCH_HAS_FORTIFY_SOURCE
+ select ARCH_HAS_KCOV
select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
select ARCH_HAS_PTE_SPECIAL
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
index 7bb794604af3..7dc87377688b 100644
--- a/arch/loongarch/vdso/Makefile
+++ b/arch/loongarch/vdso/Makefile
@@ -5,6 +5,8 @@ ifdef CONFIG_KASAN
KASAN_SANITIZE := n
endif
+KCOV_INSTRUMENT := n
+
# Include the generic Makefile to check the built vdso.
include $(srctree)/lib/vdso/Makefile
--
2.39.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset
2023-07-04 12:53 ` [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset Feiyang Chen
@ 2023-07-09 3:50 ` Huacai Chen
0 siblings, 0 replies; 8+ messages in thread
From: Huacai Chen @ 2023-07-09 3:50 UTC (permalink / raw)
To: Feiyang Chen
Cc: dvyukov, andreyknvl, loongarch, kasan-dev, chris.chenfeiyang,
loongson-kernel
Hi, Feiyang,
On Tue, Jul 4, 2023 at 8:53 PM Feiyang Chen <chenfeiyang@loongson.cn> wrote:
>
> Provide kaslr_offset() to get the kernel offset when KASLR is enabled.
> Rename reloc_offset to __reloc_offset and export it.
>
> Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
> ---
> arch/loongarch/include/asm/setup.h | 6 ++++++
> arch/loongarch/kernel/relocate.c | 18 ++++++++----------
> arch/loongarch/kernel/setup.c | 3 +++
> 3 files changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/arch/loongarch/include/asm/setup.h b/arch/loongarch/include/asm/setup.h
> index 2dca0d1dd90a..39f9964bbdd4 100644
> --- a/arch/loongarch/include/asm/setup.h
> +++ b/arch/loongarch/include/asm/setup.h
> @@ -37,4 +37,10 @@ extern unsigned long __init relocate_kernel(void);
>
> #endif
>
> +extern unsigned long __reloc_offset;
> +static inline unsigned long kaslr_offset(void)
> +{
> + return __reloc_offset;
I doubt that we should return random_offset here.
Huacai
> +}
> +
> #endif /* __SETUP_H */
> diff --git a/arch/loongarch/kernel/relocate.c b/arch/loongarch/kernel/relocate.c
> index 6c3eff9af9fb..9ba560d514e1 100644
> --- a/arch/loongarch/kernel/relocate.c
> +++ b/arch/loongarch/kernel/relocate.c
> @@ -16,11 +16,9 @@
> #include <asm/sections.h>
> #include <asm/setup.h>
>
> -#define RELOCATED(x) ((void *)((long)x + reloc_offset))
> +#define RELOCATED(x) ((void *)((long)x + __reloc_offset))
> #define RELOCATED_KASLR(x) ((void *)((long)x + random_offset))
>
> -static unsigned long reloc_offset;
> -
> static inline void __init relocate_relative(void)
> {
> Elf64_Rela *rela, *rela_end;
> @@ -154,7 +152,7 @@ static inline void __init update_reloc_offset(unsigned long *addr, long random_o
> {
> unsigned long *new_addr = (unsigned long *)RELOCATED_KASLR(addr);
>
> - *new_addr = (unsigned long)reloc_offset;
> + *new_addr = (unsigned long)__reloc_offset;
> }
>
> unsigned long __init relocate_kernel(void)
> @@ -173,7 +171,7 @@ unsigned long __init relocate_kernel(void)
> if (relocation_addr_valid(location_new))
> random_offset = (unsigned long)location_new - (unsigned long)(_text);
> #endif
> - reloc_offset = (unsigned long)_text - VMLINUX_LOAD_ADDRESS;
> + __reloc_offset = (unsigned long)_text - VMLINUX_LOAD_ADDRESS;
>
> if (random_offset) {
> kernel_length = (long)(_end) - (long)(_text);
> @@ -187,15 +185,15 @@ unsigned long __init relocate_kernel(void)
> "dbar 0 \t\n"
> ::: "memory");
>
> - reloc_offset += random_offset;
> + __reloc_offset += random_offset;
>
> /* The current thread is now within the relocated kernel */
> __current_thread_info = RELOCATED_KASLR(__current_thread_info);
>
> - update_reloc_offset(&reloc_offset, random_offset);
> + update_reloc_offset(&__reloc_offset, random_offset);
> }
>
> - if (reloc_offset)
> + if (__reloc_offset)
> relocate_relative();
>
> relocate_absolute(random_offset);
> @@ -208,9 +206,9 @@ unsigned long __init relocate_kernel(void)
> */
> static void show_kernel_relocation(const char *level)
> {
> - if (reloc_offset > 0) {
> + if (__reloc_offset > 0) {
> printk(level);
> - pr_cont("Kernel relocated by 0x%lx\n", reloc_offset);
> + pr_cont("Kernel relocated by 0x%lx\n", __reloc_offset);
> pr_cont(" .text @ 0x%px\n", _text);
> pr_cont(" .data @ 0x%px\n", _sdata);
> pr_cont(" .bss @ 0x%px\n", __bss_start);
> diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c
> index 95e6b579dfdd..d7bda711824f 100644
> --- a/arch/loongarch/kernel/setup.c
> +++ b/arch/loongarch/kernel/setup.c
> @@ -65,6 +65,9 @@ struct cpuinfo_loongarch cpu_data[NR_CPUS] __read_mostly;
>
> EXPORT_SYMBOL(cpu_data);
>
> +unsigned long __reloc_offset __ro_after_init;
> +EXPORT_SYMBOL(__reloc_offset);
> +
> struct loongson_board_info b_info;
> static const char dmi_empty_string[] = " ";
>
> --
> 2.39.3
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] LoongArch: Allow building with kcov coverage
2023-07-04 12:53 ` [PATCH 2/2] LoongArch: Allow building with kcov coverage Feiyang Chen
@ 2023-07-09 3:55 ` Huacai Chen
2023-09-10 15:51 ` Guenter Roeck
1 sibling, 0 replies; 8+ messages in thread
From: Huacai Chen @ 2023-07-09 3:55 UTC (permalink / raw)
To: Feiyang Chen
Cc: dvyukov, andreyknvl, loongarch, kasan-dev, chris.chenfeiyang,
loongson-kernel
Hi, Feiyang,
Please update Documentation/features/debug/kcov/arch-support.txt, thanks.
Huacai
On Tue, Jul 4, 2023 at 8:53 PM Feiyang Chen <chenfeiyang@loongson.cn> wrote:
>
> Add ARCH_HAS_KCOV to the LoongArch Kconfig. Also disable
> instrumentation of vdso.
>
> Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
> ---
> arch/loongarch/Kconfig | 1 +
> arch/loongarch/vdso/Makefile | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
> index ed9a148cdcde..4c21a961ab88 100644
> --- a/arch/loongarch/Kconfig
> +++ b/arch/loongarch/Kconfig
> @@ -14,6 +14,7 @@ config LOONGARCH
> select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
> select ARCH_HAS_CPU_FINALIZE_INIT
> select ARCH_HAS_FORTIFY_SOURCE
> + select ARCH_HAS_KCOV
> select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
> select ARCH_HAS_PTE_SPECIAL
> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
> diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
> index 7bb794604af3..7dc87377688b 100644
> --- a/arch/loongarch/vdso/Makefile
> +++ b/arch/loongarch/vdso/Makefile
> @@ -5,6 +5,8 @@ ifdef CONFIG_KASAN
> KASAN_SANITIZE := n
> endif
>
> +KCOV_INSTRUMENT := n
> +
> # Include the generic Makefile to check the built vdso.
> include $(srctree)/lib/vdso/Makefile
>
> --
> 2.39.3
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] LoongArch: Allow building with kcov coverage
2023-07-04 12:53 ` [PATCH 2/2] LoongArch: Allow building with kcov coverage Feiyang Chen
2023-07-09 3:55 ` Huacai Chen
@ 2023-09-10 15:51 ` Guenter Roeck
2023-09-10 16:07 ` Xi Ruoyao
1 sibling, 1 reply; 8+ messages in thread
From: Guenter Roeck @ 2023-09-10 15:51 UTC (permalink / raw)
To: Feiyang Chen
Cc: chenhuacai, dvyukov, andreyknvl, loongarch, kasan-dev,
chris.chenfeiyang, loongson-kernel
Hi,
On Tue, Jul 04, 2023 at 08:53:32PM +0800, Feiyang Chen wrote:
> Add ARCH_HAS_KCOV to the LoongArch Kconfig. Also disable
> instrumentation of vdso.
>
> Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
When trying to build loongarch:allmodconfig, this patch results in
Error log:
In file included from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/options.h:8,
from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/tm.h:46,
from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/backend.h:28,
from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/gcc-plugin.h:30,
from scripts/gcc-plugins/gcc-common.h:7,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
/opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/config/loongarch/loongarch-opts.h:31:10: fatal error: loongarch-def.h: No such file or directory
31 | #include "loongarch-def.h"
for me. I tried with gcc 12.2 / binutils 2.39 and gcc 13.1 / binutils 2.40.
Reverting the patch or explicitly disabling CONFIG_GCC_PLUGINS fixes
the problem.
What compiler / binutils version combination is needed for this to work,
or, alternatively, how would I have to configure the compiler ?
Thanks,
Guenter
> ---
> arch/loongarch/Kconfig | 1 +
> arch/loongarch/vdso/Makefile | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
> index ed9a148cdcde..4c21a961ab88 100644
> --- a/arch/loongarch/Kconfig
> +++ b/arch/loongarch/Kconfig
> @@ -14,6 +14,7 @@ config LOONGARCH
> select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
> select ARCH_HAS_CPU_FINALIZE_INIT
> select ARCH_HAS_FORTIFY_SOURCE
> + select ARCH_HAS_KCOV
> select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
> select ARCH_HAS_PTE_SPECIAL
> select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
> diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
> index 7bb794604af3..7dc87377688b 100644
> --- a/arch/loongarch/vdso/Makefile
> +++ b/arch/loongarch/vdso/Makefile
> @@ -5,6 +5,8 @@ ifdef CONFIG_KASAN
> KASAN_SANITIZE := n
> endif
>
> +KCOV_INSTRUMENT := n
> +
> # Include the generic Makefile to check the built vdso.
> include $(srctree)/lib/vdso/Makefile
>
> --
> 2.39.3
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] LoongArch: Allow building with kcov coverage
2023-09-10 15:51 ` Guenter Roeck
@ 2023-09-10 16:07 ` Xi Ruoyao
2023-09-10 16:46 ` Guenter Roeck
0 siblings, 1 reply; 8+ messages in thread
From: Xi Ruoyao @ 2023-09-10 16:07 UTC (permalink / raw)
To: Guenter Roeck, Feiyang Chen
Cc: chenhuacai, dvyukov, andreyknvl, loongarch, kasan-dev,
chris.chenfeiyang, loongson-kernel
On Sun, 2023-09-10 at 08:51 -0700, Guenter Roeck wrote:
> Hi,
>
> On Tue, Jul 04, 2023 at 08:53:32PM +0800, Feiyang Chen wrote:
> > Add ARCH_HAS_KCOV to the LoongArch Kconfig. Also disable
> > instrumentation of vdso.
> >
> > Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
>
> When trying to build loongarch:allmodconfig, this patch results in
>
> Error log:
> In file included from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/options.h:8,
> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/tm.h:46,
> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/backend.h:28,
> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/gcc-plugin.h:30,
> from scripts/gcc-plugins/gcc-common.h:7,
> from scripts/gcc-plugins/latent_entropy_plugin.c:78:
> /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/config/loongarch/loongarch-opts.h:31:10: fatal error: loongarch-def.h: No such file or directory
> 31 | #include "loongarch-def.h"
> for me. I tried with gcc 12.2 / binutils 2.39 and gcc 13.1 / binutils 2.40.
> Reverting the patch or explicitly disabling CONFIG_GCC_PLUGINS fixes
> the problem.
>
> What compiler / binutils version combination is needed for this to work,
> or, alternatively, how would I have to configure the compiler ?
Hi Guenter,
This is a GCC bug. It's fixed in GCC trunk and the fix has been
backported to 12/13 release branches, so GCC 14.1, 13.3, and 12.4 will
contain the fix.
The fix is available at https://gcc.gnu.org/r14-3331, you can apply the
patch building the compiler.
Sorry for the inconvenience.
--
Xi Ruoyao <xry111@xry111.site>
School of Aerospace Science and Technology, Xidian University
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] LoongArch: Allow building with kcov coverage
2023-09-10 16:07 ` Xi Ruoyao
@ 2023-09-10 16:46 ` Guenter Roeck
0 siblings, 0 replies; 8+ messages in thread
From: Guenter Roeck @ 2023-09-10 16:46 UTC (permalink / raw)
To: Xi Ruoyao, Feiyang Chen
Cc: chenhuacai, dvyukov, andreyknvl, loongarch, kasan-dev,
chris.chenfeiyang, loongson-kernel
On 9/10/23 09:07, Xi Ruoyao wrote:
> On Sun, 2023-09-10 at 08:51 -0700, Guenter Roeck wrote:
>> Hi,
>>
>> On Tue, Jul 04, 2023 at 08:53:32PM +0800, Feiyang Chen wrote:
>>> Add ARCH_HAS_KCOV to the LoongArch Kconfig. Also disable
>>> instrumentation of vdso.
>>>
>>> Signed-off-by: Feiyang Chen <chenfeiyang@loongson.cn>
>>
>> When trying to build loongarch:allmodconfig, this patch results in
>>
>> Error log:
>> In file included from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/options.h:8,
>> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/tm.h:46,
>> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/backend.h:28,
>> from /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/gcc-plugin.h:30,
>> from scripts/gcc-plugins/gcc-common.h:7,
>> from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /opt/kernel/gcc-12.2.0-2.39-nolibc/loongarch64-linux-gnu/bin/../lib/gcc/loongarch64-linux-gnu/12.2.0/plugin/include/config/loongarch/loongarch-opts.h:31:10: fatal error: loongarch-def.h: No such file or directory
>> 31 | #include "loongarch-def.h"
>
>> for me. I tried with gcc 12.2 / binutils 2.39 and gcc 13.1 / binutils 2.40.
>
>> Reverting the patch or explicitly disabling CONFIG_GCC_PLUGINS fixes
>> the problem.
>>
>> What compiler / binutils version combination is needed for this to work,
>> or, alternatively, how would I have to configure the compiler ?
>
> Hi Guenter,
>
> This is a GCC bug. It's fixed in GCC trunk and the fix has been
> backported to 12/13 release branches, so GCC 14.1, 13.3, and 12.4 will
> contain the fix.
>
> The fix is available at https://gcc.gnu.org/r14-3331, you can apply the
> patch building the compiler.
>
> Sorry for the inconvenience.
>
Thanks for the information. I'll add a note to my builders and just disable
gcc plugins for now until the new compiler versions are available.
Guenter
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-09-10 16:46 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-04 12:53 [PATCH 0/2] LoongArch: Allow building with kcov Feiyang Chen
2023-07-04 12:53 ` [PATCH 1/2] LoongArch: relocatable: Provide kaslr_offset() to get the kernel offset Feiyang Chen
2023-07-09 3:50 ` Huacai Chen
2023-07-04 12:53 ` [PATCH 2/2] LoongArch: Allow building with kcov coverage Feiyang Chen
2023-07-09 3:55 ` Huacai Chen
2023-09-10 15:51 ` Guenter Roeck
2023-09-10 16:07 ` Xi Ruoyao
2023-09-10 16:46 ` Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox