Opened 7 years ago

Closed 5 years ago

#8406 closed bug (no change required)

[bfs_fuse] build is broken

Reported by: diver Owned by: nobody
Priority: normal Milestone: R1
Component: File Systems Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: yes Platform: All

Description

This is hrev43877.

jam \<build\>bfs_fuse
...patience...
...found 754 target(s)...
...updating 3 target(s)...
C++ generated/objects/linux/x86/release/tools/fs_shell/fuse.o
src/tools/fs_shell/fuse.cpp: In function ‘int main(int, char**)’:
src/tools/fs_shell/fuse.cpp:599: error: expected primary-expression before ‘.’ token

cc -c "src/tools/fs_shell/fuse.cpp" -O -Wall -Wno-trigraphs -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar -D_ZETA_USING_DEPRECATED_API_=1 -D_ZETA_TS_FIND_DIR_=1 -DFS_SHELL=1 -DHAIKU_BUILD_COMPATIBILITY_H -DARCH_x86 -D_NO_INLINE_ASM -D__INTEL__ -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAIKU_HOST_PLATFORM_LINUX -iquote build/user_config_headers -iquote build/config_headers -iquote src/tools/fs_shell -iquote generated/objects/common/tools/fs_shell -iquote generated/objects/linux/x86/common/tools/fs_shell -iquote generated/objects/haiku/x86/common/tools/fs_shell -I headers/build -I headers/build/os -I headers/build/os/kernel -I headers/build/os/storage -I headers/build/os/support -I headers/private/fs_shell -I headers/private/shared -I headers/build/host/linux -o "generated/objects/linux/x86/release/tools/fs_shell/fuse.o" ;

...failed C++ generated/objects/linux/x86/release/tools/fs_shell/fuse.o ...

BUILD FAILURE:
...failed updating 1 target(s)...
...skipped 2 target(s)...

Attachments (1)

0001-Fix-bfs_fuse-build-on-Ubuntu-10.04-LTS.patch (879 bytes) - added by idefix 7 years ago.
Patch to fix building bfs_fuse on Ubuntu 10.04 LTS

Download all attachments as: .zip

Change History (18)

comment:1 Changed 7 years ago by luroh

Fwiw, I can't repeat, bfs_fuse builds fine here.

comment:2 Changed 7 years ago by diver

This is under ubuntu 10.04.

comment:3 Changed 7 years ago by luroh

I'm on Ubuntu 11.04, 32-bit. Strange.

comment:4 Changed 7 years ago by idefix

I can't reproduce it either (Ubuntu 11.10, 64 bit).
Neither could the Launchpad Build Daemons.

Could it be that your fuse.cpp is corrupted?

Last edited 7 years ago by idefix (previous) (diff)

comment:5 Changed 7 years ago by luroh

Problem confirmed here on a fresh and up-to-date install of Ubuntu 10.04, 32-bit.

comment:6 Changed 7 years ago by diver

apt-cache policy libfuse-dev

libfuse-dev:
  Installed: 2.8.1-1.1ubuntu3.1
  Candidate: 2.8.1-1.1ubuntu3.1
  Version table:
 *** 2.8.1-1.1ubuntu3.1 0
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
        500 http://ru.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        100 /var/lib/dpkg/status
     2.8.1-1.1ubuntu2 0
        500 http://ru.archive.ubuntu.com/ubuntu/ lucid/main Packages

comment:7 Changed 7 years ago by idefix

The problem is that, on line 599 of fuse.cpp, FUSE_OPT_END is defined as:

{ .templ = NULL }

GCC in C++ mode trips over that period (see also this blog post).

This was fixed on 2010-02-18, but apparently it didn't make it into the libfuse-dev package of Ubuntu 10.04.

A possible (temporary) solution would be to replace FUSE_OPT_END with { NULL, 0, 0 }.

Last edited 7 years ago by idefix (previous) (diff)

comment:8 Changed 7 years ago by luroh

I confirm that Idefix' solution above fixes the problem.

comment:9 Changed 7 years ago by diver

This fixes for me as well.

comment:10 Changed 7 years ago by idefix

The attached patch should also fix this bug.

Changed 7 years ago by idefix

Patch to fix building bfs_fuse on Ubuntu 10.04 LTS

comment:11 Changed 7 years ago by idefix

Has a Patch: set

comment:12 Changed 7 years ago by nielx

What's the status of this patch? is it in order, or does it require a comment to note why it does the things it does?

comment:13 Changed 7 years ago by bonefish

I would define FUSE_OPT_END as { }. Furthermore a comment why that is done should be added. After all this is a work-around for a broken FUSE header.

comment:14 Changed 7 years ago by idefix

I defined FUSE_OPT_END as { NULL, 0, 0 }, because that's what it is in the current FUSE header.

But should this patch be applied? I doubt there are many who compile bfs_fuse on Ubuntu 10.04. And the ones that would like to, can always apply this patch themselves.

comment:15 Changed 7 years ago by nielx

I am unsure whether or not to apply. Ubuntu 10.04 is supported throughout Q1 of 2013 (if I read the graph right), and the server version a year longer. However, it is questionable how many users of 10.04 are going to try Haiku, as being on a LTS release means they are not very experimental to begin with...

comment:16 Changed 5 years ago by luroh

Diver, what do you think, time to close this one? Ubuntu 10.04 is no longer supported and bfs_fuse builds fine here on the latest LTS version.

comment:17 Changed 5 years ago by diver

Resolution: no change required
Status: newclosed

Sure, let's close it. I don't use Ubuntu anymore, anyway :)

Note: See TracTickets for help on using tickets.