typetools / checker-framework

Pluggable type-checking for Java
http://checkerframework.org/
Other
1.02k stars 355 forks source link

Build fails on Windows using Windows Subsystem for Linux #1280

Closed Hsn723 closed 7 years ago

Hsn723 commented 7 years ago

Tried the fixes proposed in https://github.com/typetools/checker-framework/issues/1271 but the build keeps failing with the following log:

jdk.jar:
     [exec] make: Entering directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk'
     [exec] cd nullness; make clean
     [exec] make[1]: Entering directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk/nullness'
     [exec] make[1]: Leaving directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk/nullness'
     [exec] Makefile:65: recipe for target 'nullness.clean' failed
     [exec] make: Leaving directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk'
     [exec] Makefile:2: *** missing separator.  Stop.
     [exec] make: *** [nullness.clean] Error 2

Compiling under WSL with Ubuntu 16.04.2 LTS:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:        16.04
Codename:       xenial
Hsn723 commented 7 years ago

Correction: compilation fails with the same error message on a Ubuntu VM too...

wmdietl commented 7 years ago

Master is green: https://travis-ci.org/typetools/checker-framework/branches I built successfully in a Ubuntu VM earlier today. Are you at head? Can you run make in verbose mode to see where it is failing?

Hsn723 commented 7 years ago

I'm at head, deleted everything and started afresh and can repro. Following the Checker Framework guide, I ran ant. This is what I get if I run make in verbose mode:

jdk.jar:
     [exec] GNU Make 4.1
     [exec] Built for x86_64-pc-linux-gnu
     [exec] Copyright (C) 1988-2014 Free Software Foundation, Inc.
     [exec] License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     [exec] This is free software: you are free to change and redistribute it.
     [exec] There is NO WARRANTY, to the extent permitted by law.
     [exec] Reading makefiles...
     [exec] Reading makefile 'Makefile'...
     [exec] make: Entering directory '/home/antoine/jsr308/checker-framework/checker/jdk'
     [exec] Updating makefiles....
     [exec]  Considering target file 'Makefile'.
     [exec]   Looking for an implicit rule for 'Makefile'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.o'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.c'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.cc'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.C'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.cpp'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.p'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.f'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.F'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.m'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.r'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.s'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.S'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.mod'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.sh'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile,v'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'RCS/Makefile,v'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'RCS/Makefile'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 's.Makefile'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'SCCS/s.Makefile'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.o'.
     [exec]   Looking for a rule with intermediate file 'Makefile.o'.
     [exec]    Avoiding implicit rule recursion.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.c'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.cc'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.C'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.cpp'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.p'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.f'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.F'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.m'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.r'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.s'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.S'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.mod'.
     [exec]    Trying pattern rule with stem 'Makefile.o'.
     [exec]    Trying implicit prerequisite 'Makefile.o,v'.
     [exec]    Trying pattern rule with stem 'Makefile.o'.
     [exec]    Trying implicit prerequisite 'RCS/Makefile.o,v'.
     [exec]    Trying pattern rule with stem 'Makefile.o'.
     [exec]    Trying implicit prerequisite 'RCS/Makefile.o'.
     [exec]    Trying pattern rule with stem 'Makefile.o'.
     [exec]    Trying implicit prerequisite 's.Makefile.o'.
     [exec]    Trying pattern rule with stem 'Makefile.o'.
     [exec]    Trying implicit prerequisite 'SCCS/s.Makefile.o'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.c'.
     [exec]    Looking for a rule with intermediate file 'Makefile.c'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.y'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.l'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.w'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.w'.
     [exec]     Trying pattern rule with stem 'Makefile.c'.
     [exec]     Trying implicit prerequisite 'Makefile.c,v'.
     [exec]     Trying pattern rule with stem 'Makefile.c'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.c,v'.
     [exec]     Trying pattern rule with stem 'Makefile.c'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.c'.
     [exec]     Trying pattern rule with stem 'Makefile.c'.
     [exec]     Trying implicit prerequisite 's.Makefile.c'.
     [exec]     Trying pattern rule with stem 'Makefile.c'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.c'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.y'.
     [exec]     Looking for a rule with intermediate file 'Makefile.y'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.y'.
     [exec]      Trying implicit prerequisite 'Makefile.y,v'.
     [exec]      Trying pattern rule with stem 'Makefile.y'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.y,v'.
     [exec]      Trying pattern rule with stem 'Makefile.y'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.y'.
     [exec]      Trying pattern rule with stem 'Makefile.y'.
     [exec]      Trying implicit prerequisite 's.Makefile.y'.
     [exec]      Trying pattern rule with stem 'Makefile.y'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.y'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.l'.
     [exec]     Looking for a rule with intermediate file 'Makefile.l'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.l'.
     [exec]      Trying implicit prerequisite 'Makefile.l,v'.
     [exec]      Trying pattern rule with stem 'Makefile.l'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.l,v'.
     [exec]      Trying pattern rule with stem 'Makefile.l'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.l'.
     [exec]      Trying pattern rule with stem 'Makefile.l'.
     [exec]      Trying implicit prerequisite 's.Makefile.l'.
     [exec]      Trying pattern rule with stem 'Makefile.l'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.l'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.w'.
     [exec]     Looking for a rule with intermediate file 'Makefile.w'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.w'.
     [exec]      Trying implicit prerequisite 'Makefile.w,v'.
     [exec]      Trying pattern rule with stem 'Makefile.w'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.w,v'.
     [exec]      Trying pattern rule with stem 'Makefile.w'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.w'.
     [exec]      Trying pattern rule with stem 'Makefile.w'.
     [exec]      Trying implicit prerequisite 's.Makefile.w'.
     [exec]      Trying pattern rule with stem 'Makefile.w'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.w'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Rejecting impossible implicit prerequisite 'Makefile.w'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.cc'.
     [exec]    Looking for a rule with intermediate file 'Makefile.cc'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile.cc'.
     [exec]     Trying implicit prerequisite 'Makefile.cc,v'.
     [exec]     Trying pattern rule with stem 'Makefile.cc'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.cc,v'.
     [exec]     Trying pattern rule with stem 'Makefile.cc'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.cc'.
     [exec]     Trying pattern rule with stem 'Makefile.cc'.
     [exec]     Trying implicit prerequisite 's.Makefile.cc'.
     [exec]     Trying pattern rule with stem 'Makefile.cc'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.cc'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.C'.
     [exec]    Looking for a rule with intermediate file 'Makefile.C'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile.C'.
     [exec]     Trying implicit prerequisite 'Makefile.C,v'.
     [exec]     Trying pattern rule with stem 'Makefile.C'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.C,v'.
     [exec]     Trying pattern rule with stem 'Makefile.C'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.C'.
     [exec]     Trying pattern rule with stem 'Makefile.C'.
     [exec]     Trying implicit prerequisite 's.Makefile.C'.
     [exec]     Trying pattern rule with stem 'Makefile.C'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.C'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.cpp'.
     [exec]    Looking for a rule with intermediate file 'Makefile.cpp'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile.cpp'.
     [exec]     Trying implicit prerequisite 'Makefile.cpp,v'.
     [exec]     Trying pattern rule with stem 'Makefile.cpp'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.cpp,v'.
     [exec]     Trying pattern rule with stem 'Makefile.cpp'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.cpp'.
     [exec] Makefile:1: *** missing separator.  Stop.
     [exec] make: *** [nullness.clean] Error 2
     [exec]     Trying pattern rule with stem 'Makefile.cpp'.
     [exec]     Trying implicit prerequisite 's.Makefile.cpp'.
     [exec]     Trying pattern rule with stem 'Makefile.cpp'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.cpp'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.p'.
     [exec]    Looking for a rule with intermediate file 'Makefile.p'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.web'.
     [exec]     Trying pattern rule with stem 'Makefile.p'.
     [exec]     Trying implicit prerequisite 'Makefile.p,v'.
     [exec]     Trying pattern rule with stem 'Makefile.p'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.p,v'.
     [exec]     Trying pattern rule with stem 'Makefile.p'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.p'.
     [exec]     Trying pattern rule with stem 'Makefile.p'.
     [exec]     Trying implicit prerequisite 's.Makefile.p'.
     [exec]     Trying pattern rule with stem 'Makefile.p'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.p'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.web'.
     [exec]     Looking for a rule with intermediate file 'Makefile.web'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.web'.
     [exec]      Trying implicit prerequisite 'Makefile.web,v'.
     [exec]      Trying pattern rule with stem 'Makefile.web'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.web,v'.
     [exec]      Trying pattern rule with stem 'Makefile.web'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.web'.
     [exec]      Trying pattern rule with stem 'Makefile.web'.
     [exec]      Trying implicit prerequisite 's.Makefile.web'.
     [exec]      Trying pattern rule with stem 'Makefile.web'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.web'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.f'.
     [exec]    Looking for a rule with intermediate file 'Makefile.f'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.F'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.r'.
     [exec]     Trying pattern rule with stem 'Makefile.f'.
     [exec]     Trying implicit prerequisite 'Makefile.f,v'.
     [exec]     Trying pattern rule with stem 'Makefile.f'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.f,v'.
     [exec]     Trying pattern rule with stem 'Makefile.f'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.f'.
     [exec]     Trying pattern rule with stem 'Makefile.f'.
     [exec]     Trying implicit prerequisite 's.Makefile.f'.
     [exec]     Trying pattern rule with stem 'Makefile.f'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.f'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.F'.
     [exec]     Looking for a rule with intermediate file 'Makefile.F'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.F'.
     [exec]      Trying implicit prerequisite 'Makefile.F,v'.
     [exec]      Trying pattern rule with stem 'Makefile.F'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.F,v'.
     [exec]      Trying pattern rule with stem 'Makefile.F'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.F'.
     [exec]      Trying pattern rule with stem 'Makefile.F'.
     [exec]      Trying implicit prerequisite 's.Makefile.F'.
     [exec]      Trying pattern rule with stem 'Makefile.F'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.F'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.r'.
     [exec]     Looking for a rule with intermediate file 'Makefile.r'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile'.
     [exec]      Rejecting impossible implicit prerequisite 'Makefile.l'.
     [exec]      Trying pattern rule with stem 'Makefile.r'.
     [exec]      Trying implicit prerequisite 'Makefile.r,v'.
     [exec]      Trying pattern rule with stem 'Makefile.r'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.r,v'.
     [exec]      Trying pattern rule with stem 'Makefile.r'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.r'.
     [exec]      Trying pattern rule with stem 'Makefile.r'.
     [exec]      Trying implicit prerequisite 's.Makefile.r'.
     [exec]      Trying pattern rule with stem 'Makefile.r'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.r'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Rejecting impossible implicit prerequisite 'Makefile.F'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.m'.
     [exec]    Looking for a rule with intermediate file 'Makefile.m'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.ym'.
     [exec]     Trying pattern rule with stem 'Makefile.m'.
     [exec]     Trying implicit prerequisite 'Makefile.m,v'.
     [exec]     Trying pattern rule with stem 'Makefile.m'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.m,v'.
     [exec]     Trying pattern rule with stem 'Makefile.m'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.m'.
     [exec]     Trying pattern rule with stem 'Makefile.m'.
     [exec]     Trying implicit prerequisite 's.Makefile.m'.
     [exec]     Trying pattern rule with stem 'Makefile.m'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.m'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.ym'.
     [exec]     Looking for a rule with intermediate file 'Makefile.ym'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.ym'.
     [exec]      Trying implicit prerequisite 'Makefile.ym,v'.
     [exec]      Trying pattern rule with stem 'Makefile.ym'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.ym,v'.
     [exec]      Trying pattern rule with stem 'Makefile.ym'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.ym'.
     [exec]      Trying pattern rule with stem 'Makefile.ym'.
     [exec]      Trying implicit prerequisite 's.Makefile.ym'.
     [exec]      Trying pattern rule with stem 'Makefile.ym'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.ym'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Rejecting impossible implicit prerequisite 'Makefile.r'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.s'.
     [exec]    Looking for a rule with intermediate file 'Makefile.s'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.S'.
     [exec]     Trying pattern rule with stem 'Makefile.s'.
     [exec]     Trying implicit prerequisite 'Makefile.s,v'.
     [exec]     Trying pattern rule with stem 'Makefile.s'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.s,v'.
     [exec]     Trying pattern rule with stem 'Makefile.s'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.s'.
     [exec]     Trying pattern rule with stem 'Makefile.s'.
     [exec]     Trying implicit prerequisite 's.Makefile.s'.
     [exec]     Trying pattern rule with stem 'Makefile.s'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.s'.
     [exec]     Trying pattern rule with stem 'Makefile'.
     [exec]     Trying implicit prerequisite 'Makefile.S'.
     [exec]     Looking for a rule with intermediate file 'Makefile.S'.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Avoiding implicit rule recursion.
     [exec]      Trying pattern rule with stem 'Makefile.S'.
     [exec]      Trying implicit prerequisite 'Makefile.S,v'.
     [exec]      Trying pattern rule with stem 'Makefile.S'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.S,v'.
     [exec]      Trying pattern rule with stem 'Makefile.S'.
     [exec]      Trying implicit prerequisite 'RCS/Makefile.S'.
     [exec]      Trying pattern rule with stem 'Makefile.S'.
     [exec]      Trying implicit prerequisite 's.Makefile.S'.
     [exec]      Trying pattern rule with stem 'Makefile.S'.
     [exec]      Trying implicit prerequisite 'SCCS/s.Makefile.S'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Rejecting impossible implicit prerequisite 'Makefile.S'.
     [exec]    Trying pattern rule with stem 'Makefile'.
     [exec]    Trying implicit prerequisite 'Makefile.mod'.
     [exec]    Looking for a rule with intermediate file 'Makefile.mod'.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Avoiding implicit rule recursion.
     [exec]     Trying pattern rule with stem 'Makefile.mod'.
     [exec]     Trying implicit prerequisite 'Makefile.mod,v'.
     [exec]     Trying pattern rule with stem 'Makefile.mod'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.mod,v'.
     [exec]     Trying pattern rule with stem 'Makefile.mod'.
     [exec]     Trying implicit prerequisite 'RCS/Makefile.mod'.
     [exec]     Trying pattern rule with stem 'Makefile.mod'.
     [exec]     Trying implicit prerequisite 's.Makefile.mod'.
     [exec]     Trying pattern rule with stem 'Makefile.mod'.
     [exec]     Trying implicit prerequisite 'SCCS/s.Makefile.mod'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.c'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.cc'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.C'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.cpp'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.p'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.f'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.F'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.m'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.r'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.s'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.S'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Rejecting impossible implicit prerequisite 'Makefile.mod'.
     [exec]   Trying pattern rule with stem 'Makefile'.
     [exec]   Trying implicit prerequisite 'Makefile.sh'.
     [exec]   Looking for a rule with intermediate file 'Makefile.sh'.
     [exec]    Avoiding implicit rule recursion.
     [exec]    Trying pattern rule with stem 'Makefile.sh'.
     [exec]    Trying implicit prerequisite 'Makefile.sh,v'.
     [exec]    Trying pattern rule with stem 'Makefile.sh'.
     [exec]    Trying implicit prerequisite 'RCS/Makefile.sh,v'.
     [exec]    Trying pattern rule with stem 'Makefile.sh'.
     [exec]    Trying implicit prerequisite 'RCS/Makefile.sh'.
     [exec]    Trying pattern rule with stem 'Makefile.sh'.
     [exec]    Trying implicit prerequisite 's.Makefile.sh'.
     [exec]    Trying pattern rule with stem 'Makefile.sh'.
     [exec]    Trying implicit prerequisite 'SCCS/s.Makefile.sh'.
     [exec]   No implicit rule found for 'Makefile'.
     [exec]   Finished prerequisites of target file 'Makefile'.
     [exec]  No need to remake target 'Makefile'.
     [exec] Updating goal targets....
     [exec] Considering target file 'all'.
     [exec]  File 'all' does not exist.
     [exec]   Considering target file 'clean'.
     [exec]    File 'clean' does not exist.
     [exec]     Considering target file 'nullness.clean'.
     [exec]      File 'nullness.clean' does not exist.
     [exec]      Looking for an implicit rule for 'nullness.clean'.
     [exec]      Trying pattern rule with stem 'nullness'.
     [exec]      Found an implicit rule for 'nullness.clean'.
     [exec]      Finished prerequisites of target file 'nullness.clean'.
     [exec]     Must remake target 'nullness.clean'.
     [exec] cd nullness; make clean
     [exec] Putting child 0x1020e80 (nullness.clean) PID 4823 on the chain.
     [exec] Live child 0x1020e80 (nullness.clean) PID 4823
     [exec] GNU Make 4.1
     [exec] Built for x86_64-pc-linux-gnu
     [exec] Copyright (C) 1988-2014 Free Software Foundation, Inc.
     [exec] License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     [exec] This is free software: you are free to change and redistribute it.
     [exec] There is NO WARRANTY, to the extent permitted by law.
     [exec] Reading makefiles...
     [exec] Reading makefile 'Makefile'...
     [exec] make[1]: Entering directory '/home/antoine/jsr308/checker-framework/checker/jdk/nullness'
     [exec] make[1]: Leaving directory '/home/antoine/jsr308/checker-framework/checker/jdk/nullness'
     [exec] Reaping losing child 0x1020e80 PID 4823
     [exec] Makefile:65: recipe for target 'nullness.clean' failed
     [exec] Removing child 0x1020e80 PID 4823 from chain.
     [exec] make: Leaving directory '/home/antoine/jsr308/checker-framework/checker/jdk'

BUILD FAILED
mernst commented 7 years ago

Could you please try again? Commit fe6e81bd146a557f5d118604299d44fe05164455 changed the Makefile from a symbolic link to a real file with an include directive.

Hsn723 commented 7 years ago

I gave up on using the Checker Framework but for completeness I just tried again with the latest master and still no dice. Even deleted my local copy and started clean. Output this time:

 [exec] Building the JDK...
     [exec] ../Makefile.jdk:39: recipe for target 'classes' failed
     [exec] make[1]: Leaving directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk/nullness'
     [exec] Makefile:68: recipe for target 'nullness.classes' failed
     [exec] make: Leaving directory '/mnt/c/Source/Repos/jsr308/checker-framework/checker/jdk'
     [exec] /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac: 2: /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac:
     [exec] : not found/mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac: 11: /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac:
     [exec] : not found/mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac: 13: /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac:
     [exec] : not found/mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac: 15: /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac: Syntax error: word unexpected (expecting "in")
     [exec] make[1]: *** [classes] Error 2
     [exec] make: *** [nullness.classes] Error 2

Seems like the issue now is that some necessary files are not found despite being there... the checker/../checker part in the path is clearly unnecessary, but is still a valid path and should not be causing any issue...

wmdietl commented 7 years ago

The error message seems to refer to the 'in' on this line: https://github.com/typetools/checker-framework/blob/master/checker/bin-devel/javac#L15

Maybe the uname -s returns more than a single word and that messes it up? What is the output of uname -s on your setup?

Hsn723 commented 7 years ago

The output of uname -s shows simply Linux

mernst commented 7 years ago

I was unable to reproduce this problem. Here is what I did:

It's weird that you are unable to build under either an Ubuntu VM or under Windows Subsystem for Linux, when others can do both. Something is different with your setup. I suspect you skipped some step or mistyped something, since those are the most commont causes of problems. However, I don't have enough information to know what. For example, can you give a complete log of everything you did (the exact commands and the exact output)? You provided only partial output. You could also give information about what is going wrong in the particular steps that failed.

Hsn723 commented 7 years ago

Here are in detail the steps I have taken, following the instructions in the manual:

mernst commented 7 years ago

Thanks for the additional details.

  • In Windows, create jsr308 folder and clone checker-framework and annotation-tools repos in their respective subfolders

I did this in WSL, along with everything else. Why did you choose to use Windows for this step?

You did not mention adding any lines to your .bashrc file, which is part of the instructions. Why did you skip those parts of the instructions?

The full log was pretty long so I only included the last part which was the only part that contained any error messages.

Per my request, we need full information. Just because you didn't see anything interesting in the log doesn't mean that no one else would do so. Also, if you withhold information, that prevents us from comparing to someone else's log.

The log indicates a problem running /mnt/c/Source/Repos/jsr308/checker-framework/checker/../checker/bin-devel/javac . Can you send that file? Have you investigated it, such as trying to run it line-by-line and seeing what fails? If not, could you do so? What happens if you run checker/bin/javac rather than checker/bin-devel/javac?

Rather than building the JDK, what if you download a prebuilt one? Run (cd checker && download-jdk) and then run ant dist-nobuildjdk rather than ant dist.

You said you got the same results in an Ubuntu virtual machine. Can you provide the answers for that as well?

Thanks for your help.

Hsn723 commented 7 years ago

Ah, I forgot to mention the .bashrc file. I do have the instructed lines

export JSR308=/mnt/c/Source/Repos/jsr308
export JAVA_HOME=${JAVA_HOME:-$(dirname $(dirname $(dirname $(readlink -f $(/usr/bin/which java)))))}

I just forgot to mention them since they were there since the first time I ran a build.

I've included the checker/bin-devel/javac that I have javac.zip . I'm a bit confused with what follows though. I only ran ant as per the instructions and haven't touched the javac files and don't see where I can specify to use the bin/javac version instead of the bin-devel one. ant dist-nobuildjdk succeeds.

I no longer have the Ubuntu VM since I ran into some unrelated issues with it. I was originally using it as a workaround when I couldn't get the Checker Framework to compile under WSL so unfortunately I can't provide logs for that portion.

mernst commented 7 years ago

We have not received full details from the submitter to reproduce and understand the problem.

Many people have successfully built the Checker Framework on Ubuntu (and Travis tests this every night), and some have built it successfully on WSL.

I'm closing this issue because it seems very likely to be an issue with not following the instructions (but we don't have a transcript of the exact operations), or with a non-standard environment (but we don't have a transcript of everything that was done to the Ubuntu machine after creating it from installation media).