Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootstrapping on FreeBSD fails #198

Open
larseggert opened this issue Aug 29, 2014 · 1 comment
Open

Bootstrapping on FreeBSD fails #198

larseggert opened this issue Aug 29, 2014 · 1 comment

Comments

@larseggert
Copy link

[lars@beastie: ~/tup] ./bootstrap.sh 
  mkdir build
  cd build
  bootstrap CC -g ../src/lua/lapi.c
  bootstrap CC -g ../src/lua/lauxlib.c
  bootstrap CC -g ../src/lua/lbaselib.c
  bootstrap CC -g ../src/lua/lbitlib.c
  bootstrap CC -g ../src/lua/lcode.c
  bootstrap CC -g ../src/lua/lcorolib.c
  bootstrap CC -g ../src/lua/lctype.c
  bootstrap CC -g ../src/lua/ldblib.c
  bootstrap CC -g ../src/lua/ldebug.c
  bootstrap CC -g ../src/lua/ldo.c
  bootstrap CC -g ../src/lua/ldump.c
  bootstrap CC -g ../src/lua/lfunc.c
  bootstrap CC -g ../src/lua/lgc.c
  bootstrap CC -g ../src/lua/linit.c
  bootstrap CC -g ../src/lua/liolib.c
  bootstrap CC -g ../src/lua/llex.c
  bootstrap CC -g ../src/lua/lmathlib.c
  bootstrap CC -g ../src/lua/lmem.c
  bootstrap CC -g ../src/lua/loadlib.c
  bootstrap CC -g ../src/lua/lobject.c
  bootstrap CC -g ../src/lua/lopcodes.c
  bootstrap CC -g ../src/lua/loslib.c
  bootstrap CC -g ../src/lua/lparser.c
  bootstrap CC -g ../src/lua/lstate.c
  bootstrap CC -g ../src/lua/lstring.c
  bootstrap CC -g ../src/lua/lstrlib.c
  bootstrap CC -g ../src/lua/ltable.c
  bootstrap CC -g ../src/lua/ltablib.c
  bootstrap CC -g ../src/lua/ltm.c
  bootstrap CC -g ../src/lua/lua.c
  bootstrap CC -g ../src/lua/luac.c
  bootstrap CC -g ../src/lua/lundump.c
  bootstrap CC -g ../src/lua/lvm.c
  bootstrap CC -g ../src/lua/lzio.c
  link lua
  bootstrap CC -g ../src/tup/bin.c
  bootstrap CC -g ../src/tup/colors.c
  bootstrap CC -g ../src/tup/config.c
  bootstrap CC -g ../src/tup/create_name_file.c
  bootstrap CC -g ../src/tup/db.c
  bootstrap CC -g ../src/tup/debug.c
  bootstrap CC -g ../src/tup/delete_name_file.c
  bootstrap CC -g ../src/tup/dircache.c
  bootstrap CC -g ../src/tup/entry.c
  bootstrap CC -g ../src/tup/environ.c
  bootstrap CC -g ../src/tup/estring.c
  bootstrap CC -g ../src/tup/file.c
  bootstrap CC -g ../src/tup/fslurp.c
  bootstrap CC -g ../src/tup/graph.c
  bootstrap CC -g ../src/tup/if_stmt.c
  bootstrap CC -g ../src/tup/init.c
  bootstrap CC -g ../src/tup/lock.c
  bootstrap CC -g ../src/tup/luaparser.c
  bootstrap CC -g ../src/tup/option.c
  bootstrap CC -g ../src/tup/parser.c
  bootstrap CC -g ../src/tup/path.c
  bootstrap CC -g ../src/tup/pel_group.c
  bootstrap CC -g ../src/tup/platform.c
  bootstrap CC -g ../src/tup/privs.c
  bootstrap CC -g ../src/tup/progress.c
  bootstrap CC -g ../src/tup/send_event.c
  bootstrap CC -g ../src/tup/string_tree.c
  bootstrap CC -g ../src/tup/thread_tree.c
  bootstrap CC -g ../src/tup/timespan.c
  bootstrap CC -g ../src/tup/tupid_tree.c
  bootstrap CC -g ../src/tup/updater.c
  bootstrap CC -g ../src/tup/vardb.c
  bootstrap CC -g ../src/tup/vardict.c
  bootstrap CC -g ../src/tup/variant.c
  bootstrap CC -g ../src/tup/varsed.c
  bootstrap CC -g ../src/tup/tup/main.c
  bootstrap CC -g ../src/tup/monitor/null.c
  bootstrap CC -g ../src/tup/flock/fcntl.c
  bootstrap CC -g ../src/tup/server/fuse_fs.c
  bootstrap CC -g ../src/tup/server/fuse_server.c
  bootstrap CC -g ../src/tup/server/master_fork.c
../src/tup/server/master_fork.c:386:5: warning: implicit declaration of function 'clearenv' is invalid in C99
      [-Wimplicit-function-declaration]
        if(clearenv() < 0) {
           ^
1 warning generated.
  bootstrap CC -g ../src/inih/ini.c
  bootstrap CC -g ../src/compat/dummy.c
  bootstrap CC -g ../src/compat/utimensat_linux.c
  bootstrap CC -g ../src/compat/clearenv.c
  bootstrap CC -g ../src/sqlite3/sqlite3.c
  bootstrap LD tup -lm
[ tup ] [0.000s] Scanning filesystem...
[ tup ] [0.012s] Reading in new environment variables...
[ tup ] [0.012s] No Tupfiles to parse.
[ tup ] [0.012s] No files to delete.
[ tup ] [0.014s] Executing Commands...
 [                            ETA~=??? Remaining=86 Active=1                            ]   0%tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lapi.c
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/compat/freebsd.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/compat/freebsd.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lua.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lua.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/luaconf.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/luaconf.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lapi.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lapi.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/llimits.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/llimits.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lstate.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lstate.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lobject.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lobject.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ltm.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ltm.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lzio.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lzio.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lmem.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lmem.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ldebug.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ldebug.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ldo.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ldo.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lfunc.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lfunc.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lgc.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lgc.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lstring.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lstring.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ltable.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/ltable.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lundump.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lundump.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lvm.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lvm.h
tup error: Unable to truncate() files not created by this job: /@tupjob-1289/usr/home/lars/tup/src/lua/lapi.c
* 1) src/lua: CC lapi.c                                                                                              
 *** tup errors ***
tup error: Unspecified output files - A command is writing to files that you didn't specify in the Tupfile. You should add them so tup knows what to expect.
 -- Unspecified output: src/compat/freebsd.h
 -- Unspecified output: src/lua/lua.h
 -- Unspecified output: src/lua/luaconf.h
 -- Unspecified output: src/lua/lapi.h
 -- Unspecified output: src/lua/llimits.h
 -- Unspecified output: src/lua/lstate.h
 -- Unspecified output: src/lua/lobject.h
 -- Unspecified output: src/lua/ltm.h
 -- Unspecified output: src/lua/lzio.h
 -- Unspecified output: src/lua/lmem.h
 -- Unspecified output: src/lua/ldebug.h
 -- Unspecified output: src/lua/ldo.h
 -- Unspecified output: src/lua/lfunc.h
 -- Unspecified output: src/lua/lgc.h
 -- Unspecified output: src/lua/lstring.h
 -- Unspecified output: src/lua/ltable.h
 -- Unspecified output: src/lua/lundump.h
 -- Unspecified output: src/lua/lvm.h
 -- Unspecified output: src/lua/lapi.c
 *** Command ID=1289 ran successfully, but tup failed to save the dependencies.
 [                            ETA~=11s Remaining=85 Active=0                            ]   1%
 *** tup: 1 job failed.
@gittup
Copy link
Owner

gittup commented Oct 3, 2014

Per the email thread, it seems that FreeBSD's FUSE is sending extra truncate events, even for files opened read-only. Since this also happens on the example FUSE file-system, I don't think there's anything tup can do to prevent it (unless there is some hidden option I don't know about?) Eg:

t1$ ./fusexmp -f -d tmp
t2$ cd tmp/home/marf
t2$ cat ok.c

Even though we are opening the file read-only with cat, FUSE calls truncate() on it, which modifies its mtime. As far as tup knows, it's writing to the file. We'll need to figure out why FUSE is doing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants