Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] LLVM/Clang toolchain broken

Hi,

At the moment I have:

- created a local bug535565 branch from CDT-9_10_0,
- removed the LLVM-page from Eclipse by removing the LLVM-preference
page in the org.eclipse.cdt.managedbuilder.llvm.ui plugin.xml,
- commented out the code that caused the bugs 535565, 527757 and
probably 500186. 

As far as I have tested, it now works for me (Linux, Debian Testing,
i.e. Debian/Bullseye, Clang only). I have attached a patch created by
choosing "Team->Synchronize workspace", select all differences, "create
patch", and then saved it as file.

Some questions...

- Is this enough for getting a minimal real working Clang-support for
the next release of the CDT? If so, what should be my next steps?
If nt: what do you expect?
- Should I remove all the code that is related to the removed LLVM-
preference page?
- What do you hope that I should do more as a minimal effort form
improvement?
- What should be my next steps?

For the future:
 
- I do not quite understand what Jan means. I do think that rethinking
and documenting some parts of the design would be nice though. 
- I do not think that *removing* a separate Clang (LLVM???) plug-in is
the way to go. Although Clang is very compatible with GCC, it also has
specific differences.  Copy&paste re-use and manually maintaining
(structural) similarity comes to mind. E.g. GCC and Clang share a lot

of stuff but seem to be surprising unrelated in terms of the CDT-plugin 
- I prefer to leave out the non-Clang(++) stuff because I do not know
anything about the LLVM-stuff. I think that the CDT should compile
C/C++ programs.

FWIW: I really *hate* and don't (maybe want to) understand all the
configuration/declarative XML-stuff. I prefer readable real code. Does
anyone knows a readable tutorial for creating Eclipse plug-ins that
explains the whole extension point stuff?

-- 
Groeten,

Joost Kraaijeveld
Hommelseweg 123
6821 LD Arnhem
06-51855277
diff --git a/.project b/.project
new file mode 100644
index 0000000..fae3081
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.cdt</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/doc/org.eclipse.cdt.doc.isv/reference/.gitignore b/doc/org.eclipse.cdt.doc.isv/reference/.gitignore
deleted file mode 100644
index 94bcabe..0000000
--- a/doc/org.eclipse.cdt.doc.isv/reference/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-api
-extension-points
diff --git a/doc/org.eclipse.cdt.doc.isv/reference/extension-points/index.html b/doc/org.eclipse.cdt.doc.isv/reference/extension-points/index.html
deleted file mode 100644
index a08978b..0000000
--- a/doc/org.eclipse.cdt.doc.isv/reference/extension-points/index.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2008. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>CDT Extension Points</title>
-<link rel="stylesheet" type="text/css" HREF="../../book.css">
-</head>
-<body>
-<h1>CDT Extension Points</h1>
-<p>The following extension points can be used to extend the capabilities of the 
-  CDT infrastructure: </p>
-<ul>  
-  	<li><a href="org_eclipse_cdt_core_CBuildConsole.html">org.eclipse.cdt.core.CBuildConsole</a></li>
-   	<li><a href="org_eclipse_cdt_core_CConfigurationDataProvider.html">org.eclipse.cdt.core.CConfigurationDataProvider</a></li>
-   	<li><a href="org_eclipse_cdt_core_CIndex.html">org.eclipse.cdt.core.CIndex</a></li>
-   	<li><a href="org_eclipse_cdt_core_CIndexer.html">org.eclipse.cdt.core.CIndexer</a></li>
-   	<li><a href="org_eclipse_cdt_core_CodeFormatter.html">org.eclipse.cdt.core.CodeFormatter</a></li>
-   	<li><a href="org_eclipse_cdt_core_CProject.html">org.eclipse.cdt.core.CProject</a></li>
-   	<li><a href="org_eclipse_cdt_core_externalSettingsProvider.html">org.eclipse.cdt.core.externalSettingsProvider</a></li>
-   	<li><a href="org_eclipse_cdt_core_language.html">org.eclipse.cdt.core.language</a></li>
-   	<li><a href="org_eclipse_cdt_core_PathEntryContainerInitializer.html">org.eclipse.cdt.core.PathEntryContainerInitializer</a></li>
-   	<li><a href="org_eclipse_cdt_core_ProcessList.html">org.eclipse.cdt.core.ProcessList</a></li>
-   	<li><a href="org_eclipse_cdt_core_projectConverter.html">org.eclipse.cdt.core.projectConverter</a></li>
-  	<li><a href="org_eclipse_cdt_core_templateAssociations.html">org.eclipse.cdt.core.templateAssociations</a></li>
-  	<li><a href="org_eclipse_cdt_core_templateProcessTypes.html">org.eclipse.cdt.core.templateProcessTypes</a></li>
-   	<li><a href="org_eclipse_cdt_core_templates.html">org.eclipse.cdt.core.templates</a></li>
-   	<li><a href="org_eclipse_cdt_debug_core_BreakpointActionType.html">org.eclipse.cdt.debug.core.BreakpointActionType</a></li>
-   	<li><a href="org_eclipse_cdt_debug_core_BreakpointExtension.html">org.eclipse.cdt.debug.core.BreakpointExtension</a></li>
-	<li><a href="org_eclipse_cdt_make_core_MakeTargetBuilder.html">org.eclipse.cdt.make.core.MakeTargetBuilder</a></li>
-	<li><a href="org_eclipse_cdt_make_core_ScannerConfigurationDiscoveryProfile.html">org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile</a></li>
-	<li><a href="org_eclipse_cdt_make_ui_DiscoveryProfilePage.html">org.eclipse.cdt.make.ui.DiscoveryProfilePage</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_core_buildDefinitions.html">org.eclipse.cdt.managedbuilder.core.buildDefinitions</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_core_buildProperties.html">org.eclipse.cdt.managedbuilder.core.buildProperties</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_core_ManagedBuildInfo.html">org.eclipse.cdt.managedbuilder.core.ManagedBuildInfo</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_core_projectConverter.html">org.eclipse.cdt.managedbuilder.core.projectConverter</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_core_tcModificationInfo.html">org.eclipse.cdt.managedbuilder.core.tcModificationInfo</a></li>
-	<li><a href="org_eclipse_cdt_managedbuilder_ui_newWizardPages.html">org.eclipse.cdt.managedbuilder.ui.newWizardPages</a></li>
-	<li><a href="org_eclipse_cdt_ui_CDTWizard.html">org.eclipse.cdt.ui.CDTWizard</a></li>
-	<li><a href="org_eclipse_cdt_ui_CHelpProvider.html">org.eclipse.cdt.ui.CHelpProvider</a></li>
-	<li><a href="org_eclipse_cdt_ui_completionProposalComputer.html">org.eclipse.cdt.ui.completionProposalComputer</a></li>
-	<li><a href="org_eclipse_cdt_ui_ConfigManager.html">org.eclipse.cdt.ui.ConfigManager</a></li>
-	<li><a href="org_eclipse_cdt_ui_cPropertyTab.html">org.eclipse.cdt.ui.cPropertyTab</a></li>
-	<li><a href="org_eclipse_cdt_ui_DocCommentOwner.html">org.eclipse.cdt.ui.DocCommentOwner</a></li>
-	<li><a href="org_eclipse_cdt_ui_foldingStructureProviders.html">org.eclipse.cdt.ui.foldingStructureProviders</a></li>
-	<li><a href="org_eclipse_cdt_ui_HelpInfo.html">org.eclipse.cdt.ui.HelpInfo</a></li>
-	<li><a href="org_eclipse_cdt_ui_IndexerPage.html">org.eclipse.cdt.ui.IndexerPage</a></li>
-	<li><a href="org_eclipse_cdt_ui_newCfgDialog.html">org.eclipse.cdt.ui.newCfgDialog</a></li>
-	<li><a href="org_eclipse_cdt_ui_PathContainerPage.html">org.eclipse.cdt.ui.PathContainerPage</a></li>
-	<li><a href="org_eclipse_cdt_ui_ProposalFilter.html">org.eclipse.cdt.ui.ProposalFilter</a></li>
-	<li><a href="org_eclipse_cdt_ui_quickFixProcessors.html">org.eclipse.cdt.ui.quickFixProcessors</a></li>
-	<li><a href="org_eclipse_cdt_ui_textHovers.html">org.eclipse.cdt.ui.textHovers</a></li>  
-</ul>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml
index 396d336..a2bd15b 100755
--- a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml
+++ b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/plugin.xml
@@ -5116,15 +5116,6 @@
       </projectType>
    </extension>
    <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            category="org.eclipse.cdt.ui.preferences.CPluginPreferencePage"
-            class="org.eclipse.cdt.managedbuilder.llvm.ui.preferences.LlvmPreferencePage"
-            id="org.eclipse.cdt.managedbuilder.llvm.ui.preferences.LlvmPreferencePage"
-            name="%page.name">
-      </page>
-   </extension>
-   <extension
          point="org.eclipse.core.runtime.preferences">
       <initializer
             class="org.eclipse.cdt.managedbuilder.llvm.ui.preferences.PreferenceInitializer">
diff --git a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/src/org/eclipse/cdt/managedbuilder/llvm/util/LlvmResourceListener.java b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/src/org/eclipse/cdt/managedbuilder/llvm/util/LlvmResourceListener.java
index 10ceecf..93bd1ac 100644
--- a/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/src/org/eclipse/cdt/managedbuilder/llvm/util/LlvmResourceListener.java
+++ b/llvm/org.eclipse.cdt.managedbuilder.llvm.ui/src/org/eclipse/cdt/managedbuilder/llvm/util/LlvmResourceListener.java
@@ -15,7 +15,6 @@
  *******************************************************************************/
 package org.eclipse.cdt.managedbuilder.llvm.util;
 
-import org.eclipse.cdt.managedbuilder.llvm.ui.preferences.LlvmPreferenceStore;
 import org.eclipse.core.resources.IResourceChangeEvent;
 import org.eclipse.core.resources.IResourceChangeListener;
 
@@ -54,22 +53,36 @@
 			//				}
 			//			}
 		} else if (event.getType() == IResourceChangeEvent.PRE_BUILD) {
-			String os = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
-			if (os.indexOf("win") >= 0) { //$NON-NLS-1$
-				LlvmPreferenceStore.addMinGWStdLib();
-				//				LlvmToolOptionPathUtil.addMissingCppIncludesForMingw(); //TODO: Remove when Scanner Discovery has been fixed
-			} else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 /*|| os.indexOf( "mac") >=0 */) { //$NON-NLS-1$ //$NON-NLS-2$
-				LlvmPreferenceStore.addStdLibUnix();
-			}
+			/*
+			 * JKR (bug 535565):
+			 * This is called every time the project properties dialog is closed.
+			 * LlvmPreferenceStore.addMinGWStdLib() and LlvmPreferenceStore.addStdLibUnix()
+			 * try to find some sensible default settings for LLVM/CLang and *add* it to
+			 * *every* project, regardless the consequences. This seems to be a relic from
+			 * ancient times and is not needed (is harmful) nowadays, hence commented out.
+			 * I think it can safely be removed.
+			 */
+			//			String os = System.getProperty("os.name").toLowerCase(); //$NON-NLS-1$
+			//			if (os.indexOf("win") >= 0) { //$NON-NLS-1$
+			//				LlvmPreferenceStore.addMinGWStdLib();
+			//				//				LlvmToolOptionPathUtil.addMissingCppIncludesForMingw(); //TODO: Remove when Scanner Discovery has been fixed
+			//			} else if (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0 /*|| os.indexOf( "mac") >=0 */) { //$NON-NLS-1$ //$NON-NLS-2$
+			//				LlvmPreferenceStore.addStdLibUnix();
+			//			}
 
 			/*
 			 * try to add values (include and library paths and libraries) to
 			 * projects's build configurations to ensure that newly added projects
 			 * have necessary paths.
 			 */
-			LlvmToolOptionPathUtil.addAllIncludesToBuildConf();
-			LlvmToolOptionPathUtil.addAllLibsToBuildConf();
-			LlvmToolOptionPathUtil.addAllLibPathsToBuildConf();
+			/*
+			 * JKR (bug 535565):
+			 * I think that this also can be removed: I think that the data is collected by the
+			 * removed LLVM-settings page. And if the data cannot be added, how can we collect it?
+			 */
+			//			LlvmToolOptionPathUtil.addAllIncludesToBuildConf();
+			//			LlvmToolOptionPathUtil.addAllLibsToBuildConf();
+			//			LlvmToolOptionPathUtil.addAllLibPathsToBuildConf();
 		} else {
 			return;
 		}
diff --git a/visualizer/org.eclipse.cdt.visualizer.ui/.settings/.api_filters b/visualizer/org.eclipse.cdt.visualizer.ui/.settings/.api_filters
new file mode 100644
index 0000000..9f1d3d1
--- /dev/null
+++ b/visualizer/org.eclipse.cdt.visualizer.ui/.settings/.api_filters
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.cdt.visualizer.ui" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter comment="JKR: what should I do about this??" id="923795461">
+            <message_arguments>
+                <message_argument value="1.3.100"/>
+                <message_argument value="1.3.100"/>
+            </message_arguments>
+        </filter>
+    </resource>
+    <resource path="src/org/eclipse/cdt/visualizer/ui/util/SelectionUtils.java" type="org.eclipse.cdt.visualizer.ui.util.SelectionUtils$EmptySelection">
+        <filter comment="JKR: what should I do about this??" id="337682486">
+            <message_arguments>
+                <message_argument value="org.eclipse.cdt.visualizer.ui.util.SelectionUtils.EmptySelection"/>
+                <message_argument value="java.lang.Iterable"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>

Back to the top