Bug 7211 - Exception Eclipse Plugin 1.7 / kepler Windows using MinGW can x-comp. No options are stored after configuration.
Summary: Exception Eclipse Plugin 1.7 / kepler Windows using MinGW can x-comp. No opti...
Status: RESOLVED FIXED
Alias: None
Product: Eclipse Plugin
Classification: Yocto Project Subprojects
Component: eclipse-plugin (show other bugs)
Version: 1.7
Hardware: x86 x86_64
: Medium+ critical
Target Milestone: 1.7.2
Assignee: Todor Minchev
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2015-01-21 06:50 UTC by J.J. Garcia
Modified: 2015-01-27 20:41 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description J.J. Garcia 2015-01-21 06:50:43 UTC
Hi all,

When using the Yocto plugin in Kepler/Windos/X86_64 and MinGW/Toolchain deployed in /opt/poky/1.7, after setting up the options as:
- Standard pre-built toolchain
- Toolchain Root Location: C:\MinGW\msys\1.0\opt\poky\1.7
- Sysroot Location: C:\MinGW\msys\1.0\opt\poky\1.7\sysroots\i686-pokysdk-mingw32
and
- Target options set to "External HW"

I'm able to see how the Target Architecture is preset automatically to "core2-32-poky-linux" but when I apply the changes an error message is raised and the changes are lost if i come back to the plug propierties.

The error log shows the following details:
===============================================================================================
- Messsage: Unhandled event loop exception
===============================================================================================
- Exception Stack Trace:
java.lang.NullPointerException
	at org.yocto.sdk.ide.YoctoSDKChecker.checkYoctoSDK(Unknown Source)
	at org.yocto.sdk.ide.YoctoUISetting.validateInput(Unknown Source)
	at org.yocto.sdk.ide.preferences.YoctoSDKPreferencePage.performOk(Unknown Source)
	at org.eclipse.jface.preference.PreferencePage.performApply(PreferencePage.java:432)
	at org.eclipse.jface.preference.PreferencePage$2.widgetSelected(PreferencePage.java:281)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
	at org.eclipse.jface.window.Window.open(Window.java:802)
	at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:215)
	at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:65)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
===============================================================================================
- Session Data:
eclipse.buildId=4.3.2.M20140221-1700
java.version=1.6.0_29
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.standard.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.standard.product
===============================================================================================

Thanks in advance,

Regards

JJ
Comment 1 Todor Minchev 2015-01-25 19:07:50 UTC
This particular exception is caused the form validator which calls Linux specific commands do to some of the environment validation (in this case "uname -m" to get the machine architecture). There are quite a few other dependencies on Linux, I am working on them.
Comment 2 Todor Minchev 2015-01-27 14:13:25 UTC
Hi JJ,

This bug should be fixed by this commit:

31b6bc2 org.yocto.sdk.ide: add platform validation methods

This should allow you to configure your toolchain and sysroot, but you still won't be able to build binaries because the build environment setup is not yet fully supported on Windows.

Also if you are using a 64-bit build host, please use this variable in your local.conf when generating your SDK.

SDKMACHINE ?= "x86_64-mingw32"

Regards,

Todor
Comment 3 J.J. Garcia 2015-01-27 20:41:33 UTC
Thanks a lot Todor,

I'll check it tomorrow. By the way I was able to setup the toolchain just by editing and giving the values by hand in the builder C/C++ options. First i checked the "$CC -v" in Mingw and then adjusted the values in eclipse accordingly for the x-compiler and linker. GDB is also working. As a workaround it seems to be working and i can get the binary for the target platform. The host is a W7/64. Target is an intel Atom in this case.

If I can help in any way please let me know.

Regards

JJ