tools uapi: fix RISC-V 64-bit support
PATCH 1/1 tools uapi: fix RISC-V 64-bit support
The BPF library is not built on 64-bit RISC-V, as the BPF feature is not detected. Looking more in details, feature/test-bpf.c fails to build with the following error:
| In file included from /tmp/linux-4.19.12/tools/include/uapi/asm/bitsperlong.h:17, | from /tmp/linux-4.19.12/tools/include/uapi/asm-generic/unistd.h:2, | from /usr/include/riscv64-linux-gnu/asm/unistd.h:1, | from test-bpf.c:2: | /tmp/linux-4.19.12/tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h | #error Inconsistent word size. Check asm/bitsperlong.h | ^~~~~
The UAPI from the tools directory is missing RISC-V support, therefore bitsperlong.h from asm-generic is used, defaulting to 32 bits.
Fix that by adding tools/arch/riscv/include/uapi/asm/bitsperlong.h as a copy of arch/riscv/include/uapi/asm/bitsperlong.h and by updating tools/include/uapi/asm/bitsperlong.h.
--- .../arch/riscv/include/uapi/asm/bitsperlong.h | 25 +++++++++++++++++++ tools/include/uapi/asm/bitsperlong.h | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.h
tools/arch/riscv/include/uapi/asm/bitsperlong.h new file +25 -0
@@ -0,0 +1,25 @@ +/* +* Copyright (C) 2012 ARM Ltd. +* Copyright (C) 2015 Regents of the University of California +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H +#define _UAPI_ASM_RISCV_BITSPERLONG_H + +#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8) + +#include <asm-generic/bitsperlong.h> + +#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */
tools/include/uapi/asm/bitsperlong.h +2 -0
@@ -13,6 +13,8 @@#include "../../arch/mips/include/uapi/asm/bitsperlong.h" #elif defined(__ia64__)#include "../../arch/ia64/include/uapi/asm/bitsperlong.h" +#elif defined(__riscv) +#include "../../arch/riscv/include/uapi/asm/bitsperlong.h" #else #include <asm-generic/bitsperlong.h> #endif
Signature · 7 lines
2.19.2 _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv
Quoted 62 lines · On Tue, 25 Dec 2018 06:46:24 PST (-0800), [email protected] wrote:
The BPF library is not built on 64-bit RISC-V, as the BPF feature is not detected. Looking more in details,
feature/test-bpf.cfails to build with the following error:| In file included from /tmp/linux-4.19.12/tools/include/uapi/asm/bitsperlong.h:17, | from /tmp/linux-4.19.12/tools/include/uapi/asm-generic/unistd.h:2, | from /usr/include/riscv64-linux-gnu/asm/unistd.h:1, | from test-bpf.c:2: | /tmp/linux-4.19.12/tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h | #error Inconsistent word size. Check asm/bitsperlong.h | ^~~~~The UAPI from the tools directory is missing RISC-V support, therefore
bitsperlong.hfrom asm-generic is used, defaulting to 32 bits.Fix that by adding
tools/arch/riscv/include/uapi/asm/bitsperlong.has a copy ofarch/riscv/include/uapi/asm/bitsperlong.hand by updatingtools/include/uapi/asm/bitsperlong.h.Signed-off-by Aurelien Jarno <[email protected]>--- .../arch/riscv/include/uapi/asm/bitsperlong.h | 25 +++++++++++++++++++ tools/include/uapi/asm/bitsperlong.h | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.htools/arch/riscv/include/uapi/asm/bitsperlong.h new file +25
-0@@ -0,0 +1,25 @@ +/* +* Copyright (C) 2012 ARM Ltd. +* Copyright (C) 2015 Regents of the University of California +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H +#define _UAPI_ASM_RISCV_BITSPERLONG_H + +#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8) + +#include <asm-generic/bitsperlong.h> + +#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */ tools/include/uapi/asm/bitsperlong.h +0
-0
tools/include/uapi/asm/bitsperlong.h line 20
Quoted 8 lines
tools/include/uapi/asm/bitsperlong.h +2
-0@@ -13,6 +13,8 @@#include "../../arch/mips/include/uapi/asm/bitsperlong.h" #elif defined(__ia64__)#include "../../arch/ia64/include/uapi/asm/bitsperlong.h" +#elif defined(__riscv) +#include "../../arch/riscv/include/uapi/asm/bitsperlong.h" #else #include <asm-generic/bitsperlong.h> #endif
Do you want me to put this in my tree?
_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
Quoted 65 lines · Palmer Dabbelt
Quoted 64 lines · On Tue, 25 Dec 2018 06:46:24 PST (-0800), [email protected] wrote:
The BPF library is not built on 64-bit RISC-V, as the BPF feature is not detected. Looking more in details,
feature/test-bpf.cfails to build with the following error:| In file included from /tmp/linux-4.19.12/tools/include/uapi/asm/bitsperlong.h:17, | from /tmp/linux-4.19.12/tools/include/uapi/asm-generic/unistd.h:2, | from /usr/include/riscv64-linux-gnu/asm/unistd.h:1, | from test-bpf.c:2: | /tmp/linux-4.19.12/tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h | #error Inconsistent word size. Check asm/bitsperlong.h | ^~~~~The UAPI from the tools directory is missing RISC-V support, therefore
bitsperlong.hfrom asm-generic is used, defaulting to 32 bits.Fix that by adding
tools/arch/riscv/include/uapi/asm/bitsperlong.has a copy ofarch/riscv/include/uapi/asm/bitsperlong.hand by updatingtools/include/uapi/asm/bitsperlong.h.Signed-off-by Aurelien Jarno <[email protected]>--- .../arch/riscv/include/uapi/asm/bitsperlong.h | 25 +++++++++++++++++++ tools/include/uapi/asm/bitsperlong.h | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.htools/arch/riscv/include/uapi/asm/bitsperlong.h new file +25
-0@@ -0,0 +1,25 @@ +/* +* Copyright (C) 2012 ARM Ltd. +* Copyright (C) 2015 Regents of the University of California +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H +#define _UAPI_ASM_RISCV_BITSPERLONG_H + +#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8) + +#include <asm-generic/bitsperlong.h> + +#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */ tools/include/uapi/asm/bitsperlong.h +0
-0@@ -13,6 +13,8 @@#include "../../arch/mips/include/uapi/asm/bitsperlong.h" #elif defined(__ia64__)
Quoted 8 lines
tools/include/uapi/asm/bitsperlong.h line 20
Quoted 6 lines
tools/include/uapi/asm/bitsperlong.h +2
-0#include "../../arch/ia64/include/uapi/asm/bitsperlong.h" +#elif defined(__riscv) +#include "../../arch/riscv/include/uapi/asm/bitsperlong.h" #else #include <asm-generic/bitsperlong.h> #endif Reviewed-by Palmer Dabbelt <[email protected]>
Thanks for the review.
Quoted 2 lines
Do you want me to put this in my tree?
It's not clear for me how this should get merged and get_maintainer.pl is not that useful here. If it is possible to merge it through your tree, I would indeed appreciate if you can put it there.
Thanks,
Aurelien
Signature · 7 lines
Aurelien Jarno GPG: 4096R/1DDD8C9B [email protected] http://www.aurel32.net _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv
Quoted 75 lines · On Wed, 26 Dec 2018 12:13:14 PST (-0800), [email protected] wrote:
Quoted 65 lines · Palmer Dabbelt
Quoted 64 lines · On Tue, 25 Dec 2018 06:46:24 PST (-0800), [email protected] wrote:
The BPF library is not built on 64-bit RISC-V, as the BPF feature is not detected. Looking more in details,
feature/test-bpf.cfails to build with the following error:| In file included from /tmp/linux-4.19.12/tools/include/uapi/asm/bitsperlong.h:17, | from /tmp/linux-4.19.12/tools/include/uapi/asm-generic/unistd.h:2, | from /usr/include/riscv64-linux-gnu/asm/unistd.h:1, | from test-bpf.c:2: | /tmp/linux-4.19.12/tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h | #error Inconsistent word size. Check asm/bitsperlong.h | ^~~~~The UAPI from the tools directory is missing RISC-V support, therefore
bitsperlong.hfrom asm-generic is used, defaulting to 32 bits.Fix that by adding
tools/arch/riscv/include/uapi/asm/bitsperlong.has a copy ofarch/riscv/include/uapi/asm/bitsperlong.hand by updatingtools/include/uapi/asm/bitsperlong.h.Signed-off-by Aurelien Jarno <[email protected]>--- .../arch/riscv/include/uapi/asm/bitsperlong.h | 25 +++++++++++++++++++ tools/include/uapi/asm/bitsperlong.h | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 tools/arch/riscv/include/uapi/asm/bitsperlong.htools/arch/riscv/include/uapi/asm/bitsperlong.h new file +25
-0@@ -0,0 +1,25 @@ +/* +* Copyright (C) 2012 ARM Ltd. +* Copyright (C) 2015 Regents of the University of California +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H +#define _UAPI_ASM_RISCV_BITSPERLONG_H + +#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8) + +#include <asm-generic/bitsperlong.h> + +#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */ tools/include/uapi/asm/bitsperlong.h +0
-0@@ -13,6 +13,8 @@#include "../../arch/mips/include/uapi/asm/bitsperlong.h" #elif defined(__ia64__)Quoted 8 lines
tools/include/uapi/asm/bitsperlong.h line 20
Quoted 6 lines
tools/include/uapi/asm/bitsperlong.h +2
-0#include "../../arch/ia64/include/uapi/asm/bitsperlong.h" +#elif defined(__riscv) +#include "../../arch/riscv/include/uapi/asm/bitsperlong.h" #else #include <asm-generic/bitsperlong.h> #endif Reviewed-by Palmer Dabbelt <[email protected]>
Quoted 8 lines
Thanks for the review.
Quoted 2 lines
Do you want me to put this in my tree?
It's not clear for me how this should get merged and get_maintainer.pl is not that useful here. If it is possible to merge it through your tree, I would indeed appreciate if you can put it there.
OK, I'll send it up.
_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv