diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java index cc2d84069a6..dae4f2df0d5 100644 --- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java +++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/internal/GCCPathToolChainProvider.java @@ -15,9 +15,11 @@ import java.util.regex.Pattern; import org.eclipse.cdt.build.gcc.core.ClangToolChain; import org.eclipse.cdt.build.gcc.core.GCCToolChain; import org.eclipse.cdt.build.gcc.core.GCCToolChain.GCCInfo; +import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.build.IToolChain; import org.eclipse.cdt.core.build.IToolChainManager; import org.eclipse.cdt.core.build.IToolChainProvider; +import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Platform; /** @@ -66,7 +68,14 @@ public class GCCPathToolChainProvider implements IToolChainProvider { gcc.setProperty(IToolChain.ATTR_OS, Platform.OS_MACOSX); break; } - manager.addToolChain(gcc); + try { + if (manager.getToolChain(gcc.getTypeId(), gcc.getId()) == null) { + // Only add if another provider hasn't already added it + manager.addToolChain(gcc); + } + } catch (CoreException e) { + CCorePlugin.log(e.getStatus()); + } } } } catch (IOException e) { diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/CBuildConfiguration.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/CBuildConfiguration.java index 92f5f8eb695..8bd5cc76e6b 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/CBuildConfiguration.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/CBuildConfiguration.java @@ -149,7 +149,9 @@ public abstract class CBuildConfiguration extends PlatformObject Preferences settings = getSettings(); settings.put(TOOLCHAIN_TYPE, toolChain.getTypeId()); settings.put(TOOLCHAIN_ID, toolChain.getId()); - settings.put(LAUNCH_MODE, launchMode); + if (launchMode != null) { + settings.put(LAUNCH_MODE, launchMode); + } try { settings.flush(); } catch (BackingStoreException e) {