I am using version 1.6.2 of the Yocto Eclipse plug-in (from http://downloads.yoctoproject.org/releases/eclipse-plugin/1.6.2/kepler/) under Fedora 21. After some recent issues with getting the plug-in to compile my application, I noticed that I am having a variable expansion problem with CC. I followed the instructions for building an SDK for my image and I am using the pre-built toolchain. In the environment script for the SDK, CC is defined as follows: export CC="arm-poky-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=$SDKTARGETSYSROOT" I then generate new a simple Yocto Hello World C project and build the application. It builds just fine, but I see the following in the console output: arm-poky-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=DKTARGETSYSROOT However, if I go to Project->Properties->C/C++ Build->Environment and change the CC environment variable to the following: arm-poky-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=${SDKTARGETSYSROOT} then the SDKTARGETSYSROOT is properly expanded to the correct value. Is anyone else seeing this problem, or is this due to the version of tools that exist on Fedora 21?
I took a further look at this issue on my system, and I'm wondering if the issue is not limited to the Eclipse plugin but may be affected by anything using the environment setup script. In my script (environment-setup-arm926ejste-poky-linux-gnueabi) I see the following references to SDKTARGETSYSROOT: export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT" export CC="arm-poky-linux-gnueabi-gcc -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=$SDKTARGETSYSROOT" export CXX="arm-poky-linux-gnueabi-g++ -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=$SDKTARGETSYSROOT" export CPP="arm-poky-linux-gnueabi-gcc -E -march=armv5te -marm -mthumb-interwork -mtune=arm926ej-s --sysroot=$SDKTARGETSYSROOT" export LD="arm-poky-linux-gnueabi-ld --sysroot=$SDKTARGETSYSROOT" export CONFIGURE_FLAGS="--target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=$SDKTARGETSYSROOT" Note that some are in double quotes and some are not. I don't which is correct, but I believe they should be consistent.
The actual problem is that variables will only be expanded in a Makefile if they are in parentheses or braces as in $(var_name) or ${var_name}. The autotools plugin uses the literal(unexpanded) values of the environment variables when it generates the Makefiles. This only works in its current form, because we have overlapping "--sysroot=" entries. I have a fix for this and will apply it to all versions of the plugin. Thanks again for reporting this bug.
Fixed in luna with: d97b40d43 Fixed in kepler with: 02aa20e1