When build perf for ARC recently, there was a build failure due to lack
of __NR_bpf.
| Auto-detecting system features:
|
| ... get_cpuid: [ OFF ]
| ... bpf: [ on ]
|
| # error __NR_bpf not defined. libbpf does not support your arch.
^~~~~
| bpf.c: In function 'sys_bpf':
| bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function)
| return syscall(__NR_bpf, cmd, attr, size);
| ^~~~~~~~
| sys_bpf
The fix is to define a fallbak __NR_bpf.
The obvious fix with be __arc__ specific value, but i think a better fix
is to use the asm-generic uapi value applicable to ARC as well as any new
arch (hopefully we don't add an old existing arch here). Otherwise I can
just add __arc__
Signed-off-by: Vineet Gupta <redacted>
---
tools/lib/bpf/bpf.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
@@ -47,7 +47,10 @@# elif defined(__s390__)# define __NR_bpf 351# else-# error __NR_bpf not defined. libbpf does not support your arch.+/*+*Anynonlistedarch(new)willhavetoasm-genericuapicomplient+*/+# define __NR_bpf 280# endif#endif
On Wed, May 1, 2019 at 3:55 PM Vineet Gupta [off-list ref] wrote:
When build perf for ARC recently, there was a build failure due to lack
of __NR_bpf.
| Auto-detecting system features:
|
| ... get_cpuid: [ OFF ]
| ... bpf: [ on ]
|
| # error __NR_bpf not defined. libbpf does not support your arch.
^~~~~
| bpf.c: In function 'sys_bpf':
| bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function)
| return syscall(__NR_bpf, cmd, attr, size);
| ^~~~~~~~
| sys_bpf
The fix is to define a fallbak __NR_bpf.
The obvious fix with be __arc__ specific value, but i think a better fix
is to use the asm-generic uapi value applicable to ARC as well as any new
arch (hopefully we don't add an old existing arch here). Otherwise I can
just add __arc__
I prefer explicitly guard with __arc__. We still have arm/sh with different
__NR_bpf values. This patch will give wrong bpf syscall values for these
two architectures.
Alternatively, you could add support for arm/sh together
with your current patch. Hopefully I did not miss other architectures.
@@ -47,7 +47,10 @@# elif defined(__s390__)# define __NR_bpf 351# else-# error __NR_bpf not defined. libbpf does not support your arch.+/*+*Anynonlistedarch(new)willhavetoasm-genericuapicomplient+*/+# define __NR_bpf 280# endif#endif--
When build perf for ARC recently, there was a build failure due to lack
of __NR_bpf.
| Auto-detecting system features:
|
| ... get_cpuid: [ OFF ]
| ... bpf: [ on ]
|
| # error __NR_bpf not defined. libbpf does not support your arch.
^~~~~
| bpf.c: In function 'sys_bpf':
| bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function)
| return syscall(__NR_bpf, cmd, attr, size);
| ^~~~~~~~
| sys_bpf
Signed-off-by: Vineet Gupta <redacted>
---
v1 -> v2
- Only add syscall nr for ARC, as asm-generic won't work with arm/sh [Y Song]
---
tools/lib/bpf/bpf.c | 2 ++
1 file changed, 2 insertions(+)
On Thu, May 2, 2019 at 8:57 AM Vineet Gupta [off-list ref] wrote:
When build perf for ARC recently, there was a build failure due to lack
of __NR_bpf.
| Auto-detecting system features:
|
| ... get_cpuid: [ OFF ]
| ... bpf: [ on ]
|
| # error __NR_bpf not defined. libbpf does not support your arch.
^~~~~
| bpf.c: In function 'sys_bpf':
| bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function)
| return syscall(__NR_bpf, cmd, attr, size);
| ^~~~~~~~
| sys_bpf
Signed-off-by: Vineet Gupta <redacted>
Acked-by: Yonghong Song <redacted>
quoted hunk
---
v1 -> v2
- Only add syscall nr for ARC, as asm-generic won't work with arm/sh [Y Song]
---
tools/lib/bpf/bpf.c | 2 ++
1 file changed, 2 insertions(+)
On Thu, May 2, 2019 at 1:20 PM Y Song [off-list ref] wrote:
On Thu, May 2, 2019 at 8:57 AM Vineet Gupta [off-list ref] wrote:
quoted
When build perf for ARC recently, there was a build failure due to lack
of __NR_bpf.
| Auto-detecting system features:
|
| ... get_cpuid: [ OFF ]
| ... bpf: [ on ]
|
| # error __NR_bpf not defined. libbpf does not support your arch.
^~~~~
| bpf.c: In function 'sys_bpf':
| bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function)
| return syscall(__NR_bpf, cmd, attr, size);
| ^~~~~~~~
| sys_bpf
Signed-off-by: Vineet Gupta <redacted>