diff mbox series

tools uapi: fix RISC-V 64-bit support

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

Commit Message

Aurelien Jarno Dec. 25, 2018, 2:46 p.m. UTC
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

Comments

Palmer Dabbelt Dec. 26, 2018, 5:19 p.m. UTC | #1
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?
Aurelien Jarno Dec. 26, 2018, 8:13 p.m. UTC | #2
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
Palmer Dabbelt Jan. 7, 2019, 3:55 p.m. UTC | #3
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 mbox series

Patch

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