[build2] hang in build2::cc::compile::extract_headers
Dane Springmeyer
dane at mapbox.com
Sun Feb 4 03:53:51 UTC 2018
> On Dec 8, 2017, at 12:28 PM, Boris Kolpackov <boris at codesynthesis.com> wrote:
>
> Dane Springmeyer <dane at mapbox.com> writes:
>
>> I've built build2 0.6.2 on OS X 10.12 and have encountered a hang
>> during header extraction.
>
> I've managed to reproduce this, thanks for the test case!
You are welcome, glad it was reproducible!
> We've
> actually hit a similar situation when running out of disk space
> so in the latest staged version it no longer hangs but issues
> this diagnostics:
>
> error: inconsistent C++ compiler behavior
> info: clang++ -w -MQ ^ -x c++ -MD -E -frewrite-includes -MF - -o /tmp/build2-testcase/test/unit.o.ii /tmp/build2-testcase/test/unit.cxx
> info: clang++ -w -MQ ^ -x c++ -M -MG /tmp/build2-testcase/test/unit.cxx
> info: perhaps you are running out of disk space?
> info: while extracting header dependencies from test/cxx{unit}
> info: while applying rule cxx.compile to update test/obje{unit}
> info: while applying rule cxx.link to update test/exe{run-test}
> info: while applying rule alias to update dir{test/}
> info: while applying rule alias to update dir{./}
>
> Digging further revealed that this is a bug in Clang which I've
> reported:
>
> https://bugs.llvm.org/show_bug.cgi?id=35580
>
> If you would like to try the latest stage, you can get it here:
>
> https://stage.build2.org/0/
Finally had a chance to test and confirmed it works now. Thank you. Testing with `build2 0.7.0-a.0.7005f1f5b525705f` I see:
error: inconsistent C++ compiler behavior
info: g++ -w -MQ ^ -x c++ -MD -E -frewrite-includes -MF - -o /Users/dane/projects/build2-testcase/test/unit.o.ii /Users/dane/projects/build2-testcase/test/unit.cxx
info: g++ -w -MQ ^ -x c++ -M -MG /Users/dane/projects/build2-testcase/test/unit.cxx
info: perhaps you are running out of disk space?
info: while extracting header dependencies from test/cxx{unit}
info: while applying rule cxx.compile to update test/obje{unit}
info: while applying rule cxx.link to update test/exe{run-test}
info: while applying rule alias to update dir{test/}
info: while applying rule alias to update dir{./}
info: failed to update dir{./}
Rather than a hang, which is great.
Dane
More information about the users
mailing list