Linaro AArch64 cross-distro work

fuse not building for aarch64

Reported by simon inizan on 2012-12-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro AArch64 cross-distro work
High
Riku Voipio
Linaro OpenEmbedded
High
Riku Voipio

Bug Description

When trying to build the fuse recipe, I get:

| In file included from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm-generic/types.h:7:0,
| from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm/types.h:1,
| from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/linux/types.h:4,
| from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm/sigcontext.h:19,
| from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/sigcontext.h:27,
| from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/signal.h:338,
| from fuse_loop_mt.c:18:
| /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm-generic/int-ll64.h:29:44: error: conflicting types for 'int64_t'
| In file included from /ARM/V8/linaro/12.11/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/aarch64-oe-linux/gcc/aarch64-oe-linux/4.7.3/include/stdint.h:3:0,
| from ../include/fuse_common.h:19,
| from ../include/fuse_lowlevel.h:26,
| from fuse_loop_mt.c:9:

This package would be particularly useful to enable model users to use the rtsm-fuse filesystem that gives access to the VFS feature of the model.

Marcin Juszkiewicz (hrw) on 2012-12-12
Changed in linaro-oe:
status: New → Confirmed
Riku Voipio (riku-voipio) wrote :

The problem is, that fuse_kernel.h defines

#include <sys/types.h>
#define __u64 uint64_t
#define __s64 int64_t
#define __u32 uint32_t
#define __s32 int32_t
#define __u16 uint16_t

Confusing the heck out of later kernel includes.

But it works on all other architectures, so it probably should on work on aarch64 as well.

Riku Voipio (riku-voipio) wrote :

minimized testcase:

Failure on aarch64:

/data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/aarch64-oe-linux/aarch64-oe-linux-gcc -save-temps --sysroot=/data/oe/build/tmp-eglibc/sysroots/genericarmv8 -o test test.c

In file included from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm-generic/types.h:7:0,
                 from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm/types.h:1,
                 from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/linux/types.h:4,
                 from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm/sigcontext.h:19,
                 from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/sigcontext.h:27,
                 from /data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/signal.h:338,
                 from test.c:8:
/data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/asm-generic/int-ll64.h:29:44: error: conflicting types for 'int64_t'
In file included from test.c:2:0:
/data/oe/build/tmp-eglibc/sysroots/genericarmv8/usr/include/sys/types.h:197:1: note: previous declaration of ‘int64_t’ was here

Success on amd64:

$ gcc -o test test.c
$

Changed in linaro-oe:
status: Confirmed → In Progress
assignee: nobody → Riku Voipio (riku-voipio)
importance: Undecided → High
Changed in linaro-aarch64:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Riku Voipio (riku-voipio)
Fathi Boudra (fboudra) on 2012-12-18
Changed in linaro-oe:
milestone: none → 13.01
Riku Voipio (riku-voipio) wrote :

Proposed patch to be added to the meta-aarch64 tree.

Simon, can you test this with the fuse-rtsm?

simon inizan (simon-inizan) wrote :

With this patch I can build and install the fuse package.

I have not been able to use the rtsm-fuse layer on top of it though, but this is probably more related to the rtsm-fuse layer itself.
I am getting this message:
Failed to open /dev/rtsm-mbox - falling back to /dev/mem at 0x1c0d0000
fuse: device not found, try 'modprobe fuse' first

the kernel I am using contains the fuse driver built-in as I get
"fuse init (API version 7.20)"
in the boot messages.

simon inizan (simon-inizan) wrote :

Note:
I get this:
WARNING: QA Issue: fuse: Files/directories were installed but not shipped
  /dev
  /dev/fuse

When building fuse.

Riku Voipio (riku-voipio) wrote :

iozone and ltp fs tests work fine over sshfs-fuse, so I think I can propose this over to fuse upstream.

Meanwhile, I think we still should ask our toolchain team if the headers are ok,

Changed in linaro-oe:
status: In Progress → Fix Committed
Fathi Boudra (fboudra) on 2013-01-26
Changed in linaro-oe:
status: Fix Committed → Fix Released
Changed in linaro-aarch64:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers