1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 564123 delete org.eclipse.cdt.utils.Platform

The class overrode org.eclipse.core.runtime.Platform to
workaround bugs in the platform that have since been fixed.
As 32-bit x86 and PPC support has been removed this
class is no longer needed as all the code is now
unreachable anyway.

Change-Id: I01bb00b9203aa02663ff25ce36c4c14f22dadee5
Signed-off-by: jantje <eclipse@baeyens.it>
This commit is contained in:
jantje 2020-06-09 19:49:05 +02:00 committed by Jonah Graham
parent 51398ca2ae
commit f5e029d19c
8 changed files with 15 additions and 119 deletions

View file

@ -35,12 +35,12 @@ import org.eclipse.cdt.core.envvar.EnvironmentVariable;
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
import org.eclipse.cdt.core.model.ICModelMarker;
import org.eclipse.cdt.core.resources.IConsole;
import org.eclipse.cdt.utils.Platform;
import org.eclipse.core.resources.IBuildConfiguration;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.jobs.Job;
import com.google.gson.Gson;

View file

@ -39,11 +39,11 @@ import org.eclipse.cdt.managedbuilder.macros.IBuildMacroProvider;
import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues;
import org.eclipse.cdt.managedbuilder.macros.IFileContextData;
import org.eclipse.cdt.managedbuilder.macros.IOptionContextData;
import org.eclipse.cdt.utils.Platform;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.cdt.utils.cdtvariables.IVariableSubstitutor;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Bundle;
import org.osgi.framework.Version;

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0
Bundle-SymbolicName: org.eclipse.cdt.meson.core;singleton:=true
Bundle-Version: 1.0.300.qualifier
Bundle-Version: 1.0.400.qualifier
Bundle-Activator: org.eclipse.cdt.meson.core.Activator
Bundle-Vendor: %provider
Require-Bundle: org.eclipse.core.runtime,

View file

@ -34,13 +34,13 @@ import org.eclipse.cdt.meson.core.Activator;
import org.eclipse.cdt.meson.core.IMesonConstants;
import org.eclipse.cdt.meson.core.IMesonToolChainFile;
import org.eclipse.cdt.meson.core.IMesonToolChainManager;
import org.eclipse.cdt.utils.Platform;
import org.eclipse.core.resources.IBuildConfiguration;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.osgi.service.prefs.BackingStoreException;

View file

@ -18,7 +18,7 @@ import org.eclipse.cdt.core.cdtvariables.CdtVariable;
import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
import org.eclipse.cdt.utils.Platform;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;

View file

@ -16,6 +16,7 @@ package org.eclipse.cdt.utils;
import java.util.ArrayList;
import org.eclipse.core.runtime.Platform;
import org.eclipse.osgi.service.environment.Constants;
/**

View file

@ -1,114 +0,0 @@
/*******************************************************************************
* Copyright (c) 2006, 2011 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - Initial API and implementation (Corey Ashford)
* Anton Leherbauer (Wind River Systems)
* Markus Schorn (Wind River Systems)
*******************************************************************************/
package org.eclipse.cdt.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.eclipse.cdt.core.CCorePlugin;
import org.osgi.framework.Bundle;
/**
* @noinstantiate This class is not intended to be instantiated by clients.
*/
public final class Platform {
// This class duplicates all of the methods in org.eclipse.core.runtime.Platform
// that are used by the CDT. getOSArch() needs a few tweaks because the value returned
// by org.eclipse.core.runtime.Platform.getOSArch represents what the JVM thinks the
// architecture is. In some cases, we may actually be running on a 64-bit machine,
// but the JVM thinks it's running on a 32-bit machine. Without this change, the CDT
// will not handle 64-bit executables on some ppc64. This method could easily be
// extended to handle other platforms with similar issues.
//
// Unfortunately, the org.eclipse.core.runtime.Platform is final, so we cannot just
// extend it and and then override the getOSArch method, so getBundle and getOS just
// encapsulate calls to the same methods in org.eclipse.core.runtime.Platform.
public static final String OS_LINUX = org.eclipse.core.runtime.Platform.OS_LINUX;
private static String cachedArch = null;
public static Bundle getBundle(String symbolicName) {
return org.eclipse.core.runtime.Platform.getBundle(symbolicName);
}
public static String getOS() {
return org.eclipse.core.runtime.Platform.getOS();
}
public static String getOSArch() {
if (cachedArch == null) {
String arch = org.eclipse.core.runtime.Platform.getOSArch();
if (arch.equals(org.eclipse.core.runtime.Platform.ARCH_PPC)) {
// Determine if the platform is actually a ppc64 machine
Process unameProcess;
String cmd[] = { "uname", "-p" }; //$NON-NLS-1$//$NON-NLS-2$
try {
unameProcess = Runtime.getRuntime().exec(cmd);
InputStreamReader inputStreamReader = new InputStreamReader(unameProcess.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String unameOutput = bufferedReader.readLine();
if (unameOutput != null) {
arch = unameOutput;
}
bufferedReader.close();
unameProcess.waitFor(); // otherwise the process becomes a zombie
} catch (IOException e) {
CCorePlugin.log(e);
} catch (InterruptedException exc) {
// restore interrupted flag
Thread.currentThread().interrupt();
}
} else if (arch.equals(org.eclipse.core.runtime.Platform.ARCH_X86)) {
// Determine if the platform is actually a x86_64 machine
Process unameProcess;
String cmd[];
if (org.eclipse.core.runtime.Platform.OS_WIN32.equals(getOS())) {
cmd = new String[] { "cmd", "/d", "/c", "set", "PROCESSOR_ARCHITECTURE" }; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
} else {
// We don't use "uname -p" since it returns "unknown" on some Linux systems.
cmd = new String[] { "uname", "-m" }; //$NON-NLS-1$//$NON-NLS-2$
}
try {
unameProcess = Runtime.getRuntime().exec(cmd);
unameProcess.getOutputStream().close();
unameProcess.getErrorStream().close();
InputStreamReader inputStreamReader = new InputStreamReader(unameProcess.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String unameOutput = bufferedReader.readLine();
if (unameOutput != null && unameOutput.endsWith("64")) { //$NON-NLS-1$
arch = org.eclipse.core.runtime.Platform.ARCH_X86_64;
}
bufferedReader.close();
unameProcess.waitFor(); // otherwise the process becomes a zombie
} catch (IOException e) {
CCorePlugin.log(e);
} catch (InterruptedException exc) {
// restore interrupted flag
Thread.currentThread().interrupt();
}
}
cachedArch = arch;
}
return cachedArch;
}
}

View file

@ -38,6 +38,7 @@
<li><a href="#NewClassCreationWizardPage">NewClassCreationWizardPage breaking changes.</a></li>
<li><a href="#arduino">Arduino plug-ins and features removed.</a></li>
<li><a href="#oldparsers">Remove LRParser, XLC and UPC.</a></li>
<li><a href="#cdtutilsPlatform">Remove org.eclipse.cdt.utils.Platform.</a></li>
</ol>
<p>
Planned Removals after June 2022
@ -168,6 +169,14 @@
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=562498" target="_blank">Bug 562498</a>.
</p>
<h3>7. <a name="cdtutilsPlatform">Remove org.eclipse.cdt.utils.Platform.</a></h3>
<p>
Class org.eclipse.cdt.utils.Platform has been removed. Use org.eclipse.core.runtime.Platform instead.
</p>
<p>
See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=564123" target="_blank">Bug 564123</a>.
</p>
<hr>
<h2>Future Deletions</h2>