Message ID | 20181225144624.22402-1-aurelien@aurel32.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tools uapi: fix RISC-V 64-bit support | expand |
On Tue, 25 Dec 2018 06:46:24 PST (-0800), aurelien@aurel32.net 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.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. > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> > --- > .../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 > > diff --git a/tools/arch/riscv/include/uapi/asm/bitsperlong.h b/tools/arch/riscv/include/uapi/asm/bitsperlong.h > new file mode 100644 > index 000000000000..0b3cb52fd29d > --- /dev/null > +++ b/tools/arch/riscv/include/uapi/asm/bitsperlong.h > @@ -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 */ > diff --git a/tools/include/uapi/asm/bitsperlong.h b/tools/include/uapi/asm/bitsperlong.h > index 8dd6aefdafa4..fd92ce8388fc 100644 > --- a/tools/include/uapi/asm/bitsperlong.h > +++ b/tools/include/uapi/asm/bitsperlong.h > @@ -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 Reviewed-by: Palmer Dabbelt <palmer@sifive.com> Do you want me to put this in my tree?
On 2018-12-26 09:19, Palmer Dabbelt wrote: > On Tue, 25 Dec 2018 06:46:24 PST (-0800), aurelien@aurel32.net 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.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. > > > > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> > > --- > > .../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 > > > > diff --git a/tools/arch/riscv/include/uapi/asm/bitsperlong.h b/tools/arch/riscv/include/uapi/asm/bitsperlong.h > > new file mode 100644 > > index 000000000000..0b3cb52fd29d > > --- /dev/null > > +++ b/tools/arch/riscv/include/uapi/asm/bitsperlong.h > > @@ -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 */ > > diff --git a/tools/include/uapi/asm/bitsperlong.h b/tools/include/uapi/asm/bitsperlong.h > > index 8dd6aefdafa4..fd92ce8388fc 100644 > > --- a/tools/include/uapi/asm/bitsperlong.h > > +++ b/tools/include/uapi/asm/bitsperlong.h > > @@ -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 > > Reviewed-by: Palmer Dabbelt <palmer@sifive.com> Thanks for the review. > 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
On Wed, 26 Dec 2018 12:13:14 PST (-0800), aurelien@aurel32.net wrote: > On 2018-12-26 09:19, Palmer Dabbelt wrote: >> On Tue, 25 Dec 2018 06:46:24 PST (-0800), aurelien@aurel32.net 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.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. >> > >> > Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> >> > --- >> > .../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 >> > >> > diff --git a/tools/arch/riscv/include/uapi/asm/bitsperlong.h b/tools/arch/riscv/include/uapi/asm/bitsperlong.h >> > new file mode 100644 >> > index 000000000000..0b3cb52fd29d >> > --- /dev/null >> > +++ b/tools/arch/riscv/include/uapi/asm/bitsperlong.h >> > @@ -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 */ >> > diff --git a/tools/include/uapi/asm/bitsperlong.h b/tools/include/uapi/asm/bitsperlong.h >> > index 8dd6aefdafa4..fd92ce8388fc 100644 >> > --- a/tools/include/uapi/asm/bitsperlong.h >> > +++ b/tools/include/uapi/asm/bitsperlong.h >> > @@ -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 >> >> Reviewed-by: Palmer Dabbelt <palmer@sifive.com> > > Thanks for the review. > >> 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.
diff --git a/tools/arch/riscv/include/uapi/asm/bitsperlong.h b/tools/arch/riscv/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..0b3cb52fd29d --- /dev/null +++ b/tools/arch/riscv/include/uapi/asm/bitsperlong.h @@ -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 */ diff --git a/tools/include/uapi/asm/bitsperlong.h b/tools/include/uapi/asm/bitsperlong.h index 8dd6aefdafa4..fd92ce8388fc 100644 --- a/tools/include/uapi/asm/bitsperlong.h +++ b/tools/include/uapi/asm/bitsperlong.h @@ -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
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. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> --- .../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