[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-dev] GCCPathToolChainProvider problem
|
Hello,
I just started testing the CDT master branch and in particular, the
CMake tooling. However, when trying to create a CMake project, the
first thing I see is a NullpointerException.
After investigating a while, I came to the GCCPathToolChainProvider
class as the root of this evil. In function
public void init(IToolChainManager manager)
(GCCPathToolChainProvider.java, 43) it iterates over the contents of
the /usr/bin directory and matches every file against a pattern which
is supposed to identify the compiler driver program. That pattern
contains the "gcc" string. It then creates a GCCToolChain for that,
using the prefix pulled from the pattern. GCCToolChain, in turn, makes
the assumption that both a "gcc" and a "g++" variant exist
(GCCToolChain.java, 395, 400).
Now, on my Ubuntu 14.0.4 / GCC 4.9.4 machine, /usr/bin has these gcc drivers:
c89-gcc
x86_64-linux-gnu-gcc
g++
x86_64-linux-gnu-g++
the algorithm described above therefore yields GCCToolChain instances
that hold invalid commands for the GPP language (g++), namely c89-g++.
Now, when creating a new CMake project,
GCCToolChain#getDefaultScannerInfo is called and runs onto said
NullPointerException on line 254, because the return value from
getCommandPath(command) is null, which is due to the fact that the
compile command for the given language (GPP) is invalid. Quite
frustrating for a first-time experience.
I think that creating a GCCToolChain without checking for the presence
of ALL required files is the root error, and should be avoided. Not
checking for a null return in getDefaultScannerInfo is a minor issue.
Can somebody comment on this? Should I go ahead and create a bug report?
-Chris