diff --git a/source/app.d b/source/app.d index 370cd8f..50daaf1 100644 --- a/source/app.d +++ b/source/app.d @@ -9,6 +9,18 @@ import dub.commandline; +/** + * Workaround https://github.com/dlang/dub/issues/1812 + * + * On Linux, a segmentation fault happens when dub is compiled with a recent + * compiler. While not confirmed, the logs seem to point to parallel marking + * done by the GC. Hence this disables it. + * + * https://dlang.org/changelog/2.087.0.html#gc_parallel + */ +static if (__VERSION__ >= 2087) + extern(C) __gshared string[] rt_options = [ "gcopt=parallel:0" ]; + int main(string[] args) { return runDubCommandLine(args); diff --git a/travis-ci.sh b/travis-ci.sh index 6ea4a1f..c2ff925 100755 --- a/travis-ci.sh +++ b/travis-ci.sh @@ -59,5 +59,6 @@ # check that the man page generation still works (only once) if [ "$COVERAGE" = true ]; then source $(~/dlang/install.sh dmd --activate) + source $(~/dlang/install.sh dub --activate) dub --single -v scripts/man/gen_man.d fi