Opened 13 years ago

Closed 10 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:
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 13 years ago.
Patch to fix building bfs_fuse on Ubuntu 10.04 LTS

Download all attachments as: .zip

Change History (18)

comment:1 by luroh, 13 years ago

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

comment:2 by diver, 13 years ago

This is under ubuntu 10.04.

comment:3 by luroh, 13 years ago

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

comment:4 by idefix, 13 years ago

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 13 years ago by idefix (previous) (diff)

comment:5 by luroh, 13 years ago

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

comment:6 by diver, 13 years ago

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 by idefix, 13 years ago

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 13 years ago by idefix (previous) (diff)

comment:8 by luroh, 13 years ago

I confirm that Idefix' solution above fixes the problem.

comment:9 by diver, 13 years ago

This fixes for me as well.

comment:10 by idefix, 13 years ago

The attached patch should also fix this bug.

by idefix, 13 years ago

Patch to fix building bfs_fuse on Ubuntu 10.04 LTS

comment:11 by idefix, 13 years ago

patch: 01

comment:12 by nielx, 12 years ago

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 by bonefish, 12 years ago

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 by idefix, 12 years ago

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 by nielx, 12 years ago

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 by luroh, 10 years ago

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 by diver, 10 years ago

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.