Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] GCCPathToolChainProvider problem

ok, never mind. I found this same problem already reported as issue #503153. I have appended my findings and a proposed fix.

-C

Zitat von c.sell@xxxxxxxxxxxxxxx:

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

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/cdt-dev





Back to the top