diff mbox series

[bpf-next] samples/bpf: Add include dir for MIPS Loongson64 to fix build errors

Message ID 1611669925-25315-1-git-send-email-yangtiezhu@loongson.cn (mailing list archive)
State Not Applicable
Headers show
Series [bpf-next] samples/bpf: Add include dir for MIPS Loongson64 to fix build errors | expand

Commit Message

Tiezhu Yang Jan. 26, 2021, 2:05 p.m. UTC
There exists many build errors when make M=samples/bpf on the Loongson
platform, this issue is MIPS related, x86 compiles just fine.

Here are some errors:

  CLANG-bpf  samples/bpf/sockex2_kern.o
In file included from samples/bpf/sockex2_kern.c:2:
In file included from ./include/uapi/linux/in.h:24:
In file included from ./include/linux/socket.h:8:
In file included from ./include/linux/uio.h:8:
In file included from ./include/linux/kernel.h:11:
In file included from ./include/linux/bitops.h:32:
In file included from ./arch/mips/include/asm/bitops.h:19:
In file included from ./arch/mips/include/asm/barrier.h:11:
./arch/mips/include/asm/addrspace.h:13:10: fatal error: 'spaces.h' file not found
         ^~~~~~~~~~
1 error generated.

  CLANG-bpf  samples/bpf/sockex2_kern.o
In file included from samples/bpf/sockex2_kern.c:2:
In file included from ./include/uapi/linux/in.h:24:
In file included from ./include/linux/socket.h:8:
In file included from ./include/linux/uio.h:8:
In file included from ./include/linux/kernel.h:11:
In file included from ./include/linux/bitops.h:32:
In file included from ./arch/mips/include/asm/bitops.h:22:
In file included from ./arch/mips/include/asm/cpu-features.h:13:
In file included from ./arch/mips/include/asm/cpu-info.h:15:
In file included from ./include/linux/cache.h:6:
./arch/mips/include/asm/cache.h:12:10: fatal error: 'kmalloc.h' file not found
         ^~~~~~~~~~~
1 error generated.

  CLANG-bpf  samples/bpf/sockex2_kern.o
In file included from samples/bpf/sockex2_kern.c:2:
In file included from ./include/uapi/linux/in.h:24:
In file included from ./include/linux/socket.h:8:
In file included from ./include/linux/uio.h:8:
In file included from ./include/linux/kernel.h:11:
In file included from ./include/linux/bitops.h:32:
In file included from ./arch/mips/include/asm/bitops.h:22:
./arch/mips/include/asm/cpu-features.h:15:10: fatal error: 'cpu-feature-overrides.h' file not found
         ^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

$ find arch/mips/include/asm -name spaces.h | sort
arch/mips/include/asm/mach-ar7/spaces.h
...
arch/mips/include/asm/mach-generic/spaces.h
...
arch/mips/include/asm/mach-loongson64/spaces.h
...
arch/mips/include/asm/mach-tx49xx/spaces.h

$ find arch/mips/include/asm -name kmalloc.h | sort
arch/mips/include/asm/mach-generic/kmalloc.h
arch/mips/include/asm/mach-ip32/kmalloc.h
arch/mips/include/asm/mach-tx49xx/kmalloc.h

$ find arch/mips/include/asm -name cpu-feature-overrides.h | sort
arch/mips/include/asm/mach-ath25/cpu-feature-overrides.h
...
arch/mips/include/asm/mach-generic/cpu-feature-overrides.h
...
arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h
...
arch/mips/include/asm/mach-tx49xx/cpu-feature-overrides.h

In the arch/mips/Makefile, there exists the following board-dependent
options:

include arch/mips/Kbuild.platforms
cflags-y += -I$(srctree)/arch/mips/include/asm/mach-generic

So we can do the similar things in samples/bpf/Makefile, just add
platform specific and generic include dir for MIPS Loongson64 to
fix the build errors.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 samples/bpf/Makefile | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Daniel Borkmann Jan. 26, 2021, 4:01 p.m. UTC | #1
On 1/26/21 3:05 PM, Tiezhu Yang wrote:
> There exists many build errors when make M=samples/bpf on the Loongson
> platform, this issue is MIPS related, x86 compiles just fine.
> 
> Here are some errors:
[...]
> 
> So we can do the similar things in samples/bpf/Makefile, just add
> platform specific and generic include dir for MIPS Loongson64 to
> fix the build errors.

Your patch from [0] said ...

   There exists many build warnings when make M=samples/bpf on the Loongson
   platform, this issue is MIPS related, x86 compiles just fine.

   Here are some warnings:
   [...]

   With #ifndef __SANE_USERSPACE_TYPES__  in tools/include/linux/types.h,
   the above error has gone and this ifndef change does not hurt other
   compilations.

... which ave the impression that all the issues were fixed. What else
is needed aside from this patch here? More samples/bpf fixes coming? If
yes, please all submit them as a series instead of individual ones.

  [0] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=190d1c921ad0862da14807e1670f54020f48e889

> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>   samples/bpf/Makefile | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 362f314..45ceca4 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -185,6 +185,10 @@ endif
>   
>   ifeq ($(ARCH), mips)
>   TPROGS_CFLAGS += -D__SANE_USERSPACE_TYPES__
> +ifdef CONFIG_MACH_LOONGSON64
> +BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-loongson64
> +BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-generic
> +endif
>   endif
>   
>   TPROGS_CFLAGS += -Wall -O2
>
Tiezhu Yang Jan. 27, 2021, 1:40 a.m. UTC | #2
On 01/27/2021 12:01 AM, Daniel Borkmann wrote:
> On 1/26/21 3:05 PM, Tiezhu Yang wrote:
>> There exists many build errors when make M=samples/bpf on the Loongson
>> platform, this issue is MIPS related, x86 compiles just fine.
>>
>> Here are some errors:
> [...]
>>
>> So we can do the similar things in samples/bpf/Makefile, just add
>> platform specific and generic include dir for MIPS Loongson64 to
>> fix the build errors.
>
> Your patch from [0] said ...
>
>   There exists many build warnings when make M=samples/bpf on the 
> Loongson
>   platform, this issue is MIPS related, x86 compiles just fine.
>
>   Here are some warnings:
>   [...]
>
>   With #ifndef __SANE_USERSPACE_TYPES__  in tools/include/linux/types.h,
>   the above error has gone and this ifndef change does not hurt other
>   compilations.
>
> ... which ave the impression that all the issues were fixed. What else
> is needed aside from this patch here? More samples/bpf fixes coming? If
> yes, please all submit them as a series instead of individual ones.

Hi Daniel,

Thanks for your reply.

This is the last samples/bpf patch to fix the obvious build issues when
make M=samples/bpf on the MIPS Loongson64 platform.

There is another MIPS patch to fix the following build error when make
M=samples/bpf, but it seems a common and known issue when build MIPS
kernel used with clang [1]:

./arch/mips/include/asm/checksum.h:161:9: error: unsupported inline asm: 
input with type 'unsigned long' matching output with type '__wsum' (aka 
'unsigned int')
         : "0" ((__force unsigned long)daddr),
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Because these two patches are independent, this one is bpf-next related,
the other one is mips-next related, so I submit them sepearately.

[1] 
https://lore.kernel.org/linux-mips/CAG_fn=W0JHf8QyUX==+rQMp8PoULHrsQCa9Htffws31ga8k-iw@mail.gmail.com/

Thanks,
Tiezhu

>
>  [0] 
> https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=190d1c921ad0862da14807e1670f54020f48e889
>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>> ---
>>   samples/bpf/Makefile | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 362f314..45ceca4 100644
>> --- a/samples/bpf/Makefile
>> +++ b/samples/bpf/Makefile
>> @@ -185,6 +185,10 @@ endif
>>     ifeq ($(ARCH), mips)
>>   TPROGS_CFLAGS += -D__SANE_USERSPACE_TYPES__
>> +ifdef CONFIG_MACH_LOONGSON64
>> +BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-loongson64
>> +BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-generic
>> +endif
>>   endif
>>     TPROGS_CFLAGS += -Wall -O2
>>
patchwork-bot+netdevbpf@kernel.org Feb. 2, 2021, 10:40 p.m. UTC | #3
Hello:

This patch was applied to bpf/bpf-next.git (refs/heads/master):

On Tue, 26 Jan 2021 22:05:25 +0800 you wrote:
> There exists many build errors when make M=samples/bpf on the Loongson
> platform, this issue is MIPS related, x86 compiles just fine.
> 
> Here are some errors:
> 
>   CLANG-bpf  samples/bpf/sockex2_kern.o
> In file included from samples/bpf/sockex2_kern.c:2:
> In file included from ./include/uapi/linux/in.h:24:
> In file included from ./include/linux/socket.h:8:
> In file included from ./include/linux/uio.h:8:
> In file included from ./include/linux/kernel.h:11:
> In file included from ./include/linux/bitops.h:32:
> In file included from ./arch/mips/include/asm/bitops.h:19:
> In file included from ./arch/mips/include/asm/barrier.h:11:
> ./arch/mips/include/asm/addrspace.h:13:10: fatal error: 'spaces.h' file not found
>          ^~~~~~~~~~
> 1 error generated.
> 
> [...]

Here is the summary with links:
  - [bpf-next] samples/bpf: Add include dir for MIPS Loongson64 to fix build errors
    https://git.kernel.org/bpf/bpf-next/c/058107abafc7

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 362f314..45ceca4 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -185,6 +185,10 @@  endif
 
 ifeq ($(ARCH), mips)
 TPROGS_CFLAGS += -D__SANE_USERSPACE_TYPES__
+ifdef CONFIG_MACH_LOONGSON64
+BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-loongson64
+BPF_EXTRA_CFLAGS += -I$(srctree)/arch/mips/include/asm/mach-generic
+endif
 endif
 
 TPROGS_CFLAGS += -Wall -O2