[yocto] Eclipse, CMake and EXTRA_OECONF_GCC_FLOAT

Simon Lindgren simon at aqwary.com
Mon May 9 02:44:20 PDT 2016


Hi,

I'm having some issues using the Eclipse CMake support with my own hard
float arm toolchain.

This used to work, and I believe the main change affecting my problem is
this:
https://git.yoctoproject.org/cgit.cgi/poky/commit/meta/recipes-devtools/gcc/gcc-configure-common.inc?id=075e2884ce10094258af6f7c6db1af7579b5bffa

The problem I'm having relates to the float abi. For Autotools, as far
as I can tell, the float abi is set explicitly in via the CC/CPP
variables but this is filtered out in the corresponding CMake variable,
OECMAKE_CXX_COMPILER and/or OECMAKE_CXX_FLAGS. Code in
YoctoSDKCMakeProjectNature.java (around lines 47-61):

---snip---

String ccString = YoctoSDKUtils.getEnvValue(project, "CC");

if (!ccString.equals("") && !ccString.equals(" ")) {
	ccString.trim();
	ccString = ccString.split(" ")[0];
}

env.addVariable("OECMAKE_C_COMPILER", ccString,
		IEnvironmentVariable.ENVVAR_REPLACE, delimiter, ccdesc);
String cxxString = YoctoSDKUtils.getEnvValue(project, "CXX");

if (!cxxString.equals("") && !cxxString.equals(" ")) {
	cxxString.trim();
	cxxString = cxxString.split(" ")[0];
}

env.addVariable("OECMAKE_CXX_COMPILER", cxxString,
		IEnvironmentVariable.ENVVAR_REPLACE, delimiter, ccdesc);

---snip---

And the removed part is not added back to any other variable. So this
used to work because before the value of
EXTRA_OECONF_GCC_FLOAT/EXTRA_OECONF_FPU would be such that the hard
float abi would be the default for hard float MACHINEs. After the commit
linked above it isn't, so the abi needs to be set explicitly when
calling the compiler. But, it seems those flags are not carried over to
CMake in Eclipse.

Is this a bug with the CMake support, or should I actually set
EXTRA_OECONF_GCC_FLOAT="--with-float=hard"?

Changing the variables seems to be exactly what the commit wanted to
avoid so both hard and soft float machines can use the same cross toolchain.



More information about the yocto mailing list