I had the same problem building Thunderbird on Debian Stable as of 14Apr2019
using the .mozbuild version of clang (8.0, I think).
The default constructor nsBaseCommandController() = delete; causes the build
to fail with the error messages:
32:48.61 thunderbird/comm/common/src/nsCommonModule.cpp:19:32: error: call to constructor of 'nsBaseCommandController' is ambiguous
32:48.61 thunderbird/obj-x86_64-pc-linux-gnu/dist/include/nsBaseCommandController.h:28:3: note: candidate constructor has been explicitly deleted
32:48.61 nsBaseCommandController() = delete;
32:48.61 thunderbird/obj-x86_64-pc-linux-gnu/dist/include/nsBaseCommandController.h:29:12: note: candidate constructor
32:48.61 explicit nsBaseCommandController(
32:48.69 1 error generated.
32:48.70 /thunderbird/config/rules.mk:805: recipe for target 'nsCommonModule.o' failed
Reading about C++, it appears that the explicit constructor on the line below the
nsBaseCommandController() = delete;
line causes clang not to create the default constructor, which, I guess, means that
clang can't delete it. Removing the line allows the compile to complete & the resultant
thunderbird seems to work correctly.
I'd like to submit a patch to either remove or comment out that line, but don't know how.
I'd appreciate it if someone would manually remove that line from the hg pull -u versions
that I'm using today.