CDT Project Release Notes

Release 2.0.0
Last revised July 15, 2004

This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.

1. Target Operating Environments
2. Features Added
3. Known Issues
4. Defects Fixed

1. Target Operating Environments

The CDT Framework is platform independent. It will run where Eclipse will run. However, the default implementations may depend on external applications. To follow in the Eclipse spirit of open source, the default implementations rely upon freely available open source tools, such as the GNU Tools: GDB and Make. Therefore, the dependencies on GDB for debugging, or Make for building, will require that these applications are available for the platform that the user wishes to use. References to some of the known implementations for each platform will be indicated in the sections of this FAQ that include instructions for installation, project creation and building the CDT on the various platforms.

Which platforms are fully supported will ultimately depend on the needs of the community, as expressed by the participation in developing, and testing for each platform.

The core plug-ins are written in Java with a small amount of native code and thus may be ported to any platform supported by Eclipse. However, some default implementations may require that other software or tools, licensed under GNU, may be required.

In general there is some version of Linux and some version of windows used by the developers on the CDT.  For an exact list of supported platforms see the Downloads page

NOTE:  The CDT does NOT run on Windows 98 and Windows ME.

The objective is to support the CDT on all target operating environments listed in the Eclipse 3.0 Project Plan.

Eclipse SDK 3.0 is tested and validated on the following reference platforms (this list is updated over the course of the release cycle):

Eclipse Reference Platforms
Operating system Processor architecture Window system Java 2 Platform
Microsoft Windows XP Intel x86 Win32 Sun Java 2 SDK, Standard Edition, version 1.4.2_03 for Microsoft Windows
Microsoft Windows XP Intel x86 Win32 IBM 32-bit SDK for Windows, Java 2 Technology Edition, Version 1.4.1
Red Hat Enterprise Linux WS 3 Intel x86 GTK Sun Java 2 SDK, Standard Edition, 1.4.2_03 for Linux x86
Red Hat Enterprise Linux WS 3 Intel x86 GTK IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology Edition, Version 1.4.1
SuSE Linux 8.2 Intel x86 GTK Sun Java 2 SDK, Standard Edition, 1.4.2_03 for Linux x86
SuSE Linux 8.2 Intel x86 GTK IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology Edition, Version 1.4.1
Sun Solaris 8 SPARC Motif Sun Java 2 SDK, Standard Edition, 1.4.2_03 for Solaris SPARC
HP HP-UX 11i hp9000
PA-RISC
Motif HP-UX SDK for the Java 2 platform, version 1.4.2.00 for hp9000 PA-RISC
IBM AIX 5L Version 5.2 PowerPC Motif IBM 32-bit SDK for AIX, Java 2 Technology Edition, Version 1.4.1
* Apple Mac OS X 10.3 PowerPC Carbon Java 2 Standard Edition 1.4.1 for Mac OS X
QNX Neutrino RTOS [version TBD] Intel x86 Photon IBM J9 VM for QNX [version TBD]

* Although untested, Eclipse should work fine on other OSes that support the same window system. For Win32: NT, 2000, and Server 2003; SWT HTML viewer requires Internet Explorer 5 (or higher). For GTK on other Linux systems: version 2.2.1 of the GTK+ widget toolkit and associated libraries (GLib, Pango); SWT HTML viewer requires Mozilla 1.4GTK2. For Motif on other Linux systems: Open Motif 2.1 (included); SWT HTML viewer requires Mozilla 1.4GTK2.

What tools do I need to run CDT?

In order to build your C++ code and debug your C++ executable, you will need to get a compiler, a make program and a debugger.

There are several tools that can help you run GNU Tools on Windows.


Both of these tools offer a selection of GNU tools such as gcc, gdb and make.
For example, on Windows you can install the Cygwin toolkit which is a Unix environment for Windows and includes automake and gdb.
Note: The CDT currently supports GDB version 5.2.1 and later.

 

2. Features Added

Accessibility Improvements

CDT components have been improved to provide better support to users with impared vision and motor control.

Globalization

Watch for language packs supporting CDT in Brazilian Portuguese, French, German, Italian, Japanese, Korean, Spanish, Simplified Chinese, and Traditional Chinese.

Enhanced Performance

Builds can now be performed in the background.

Searches can now be performed in the background.

Automatic Project Settings Discovery

Automatically generate project defines and include paths settings from the C/C++ > New Make Projects > Discovery Options project settings. C/C++ File Types

Define specific files, especially C++ headers without extensions, using the C/C++ File Types global preferences or project property.

Multiple Architecture Project Support

Building from multiple binary formats? Choose the appropriate formats using the Binary Parser project option.

Editor Hyperlink Navigation

Enable the editor hyperlink navigation and then you can use Ctrl+click to jump to the declaration of an item on the C/C++ editor.

Indexer Error Markers

Enable C/C++ indexing and indexer error reporting in the C/C++ Indexer properties. This helps identify projects missing path configuration information.

Rename Refactoring Support

Use the Outline or the C/C++ Editor Refactor > Rename context menu to refactor class & type names, methods, function & member names.

Open Type

Use Open Type to open up the declaration of C/C++ classes, structures, unions, typedefs, enumerations and namespaces.

Automatic Refresh

Configure the default behavior of the automatic retrieval of shared library and register information in the C/C++ debugger.

Improved Managed Make

You can now set the compiler command for managed projects.

Improved Standard Make

Standard Make now parses response from Make command to populate paths and symbols.

Support for GNU

Now supports some of the GNU extensions to the ANSI specification.

Improved View and Browsing Features

You can now open Include files from the Outline View.

You can now perform selection searches from the C/C++ Editor

Improved Search

Search now supports external files referenced using #include.

Makefile Outline View

You can now browse the structure of your Makefile in Outline View.

Content Assist Enhancements

Content Assist now produces proposals from classes and structure members, local & global variables, pre-processor defines, pre-processor commands.

Content Assist now supports C++.

 

For more information see the CDT 2.0 New & Noteworthy section of the CDT Webpage.

 

3. Known Issues

3.1 Platform

Intermittent thread error during search (AIX only)

On AIX, the internal error only happens if the search was kicked off while indexing was still executing. As soon as the indexing is done, the error occurs. (bug 68670)

HP-UX Binary Parsers not supported (HP-UX only)

When managing launch configurations on HP-UX you will not be able to use Search, or browse dialogs to select an executable. You will have to specify the paths (such as the path to an executable) manually. (bug 68540)

Missing '\' in support variables (Windows only)

For Windows, you will need to use forward slashes in path variable names so Cygwin does not truncate them. (bug 64620)

3.2 Java Runtime Environment (JRE)

Content Assist / Search fails when iostream is included (IBM JRE Classic only)

You get incorrect results when initiating a search or invoking Content Assist. This problem only occurs when using the IBM JRE Classic. Other JREs such as the IBM JRE J9 1.4.2 (June 23rd) or SUN JREs will not produce the problem. (bug 66699) (bug 66727)

3.2 C/C++ Development Tools (CDT)

Custom Build Targets from CDT 1.2 must be upgraded

Managed build projects based on customized toolchains created in CDT 1.2.x will not build under 2.0 until you upgrade the target definitions they are based upon. The problem appears to be that the build never takes place. If you check the logfile you will see the managed builder throws a NullPointerException. This is because the build system is attempting to instantiate a makefile generator that implements IManagedBuilderMakefileGenerator, but as one is not defined for your target it will return NULL. The workaround is to add the following line to all of target definitions:
makefileGenerator="org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator"

This problem will be addressed in a future release. (bug 69112)

Generated Files and Folders may be added to CM System after Import

When the managed builder generates the makefiles for a project, it sets the "derived" flag on those resources to ensure they will not be checked into your CM system. When a managed project is imported into your workspace, those flags are not set so these resources may be added to your CM system when the project is checked in. You should delete the build directory or rebuild your project before you check it in after the project is imported. (bug 58252)

Unable to find the schema for the Managed Build System

The schema for the managed build system has been moved to the source plug-in, which is only available in the SDK version of the CDT. Verify that you have installed the SDK by clicking Help > Software Updates > Managed Configuration... then make sure the list of features includes Eclipse C/C++ Development Tooling SKD 2.0.0. (and not Eclipse C/C++ Development Tools).
 
To install the SDK:
  1. Click Help > Software Updates > Find and Install...
  2. Select Search for new features to install.
  3. Follow the wizard selecting the SDK Tooling feature, accepting the installation and then restart Eclipse.


Once the SDK is installed:
  1. Switch to the Plug-in Development perspective and click File > Import > External Plug-ins and Fragments.
  2. Ensure Projects with source folders is selected in the Import As group.
  3. Select org.eclipse.cdt.source > Add > Finish.
  4. Browse to the org.eclipse.cdt.source/src/org.eclipse.cdt.managedbuilder.core_2.0.0/schema folder.

Content Assist times out

Content Assist performance drops significantly when large files are included (such as windows.h/stdio.h/iostream). You can increase the Content Assist parsing timeout delay by clicking Window > Preferences > C/C++ > Editor > Content Assist and entering the new value in milliseconds. This problem will be addressed in a future release. (bug 59468)

Namespaces are not shown correctly

Open Type match on Namespaces is not displaying all qualifiers. This problem will be addressed in a future release. (bug 69739)

C/C++ Browsing's Namespace does not find std globals

Changes to files in the browsing perspective does not update in all views, however if you close the Namespace view, then reopen it, it behaves correctly. This problem will be addressed in a future release. (bug 68883)

Template class member definitions are instantiated too early

While parsing templates, the definitions of template class members are incorrectly instantiated at the same time as the template class. This causes problems with explicit specializations of template class member templates which can result in index problem markers on valid code, or inaccuracies in the search, open declaration or content assist features. An example of code which causes this problem is:
template < class T > struct A {
   template < class T2 > void f ( T2 );
};
template <> template <> void A<int>::f<>( int ) 
{ /*...*/ }
This problem will be addressed in a future release. (bug 59811) (bug 65419)

 

4. Defects fixed

Release 2.0 fixes the following defects present in release 1.2.1:

39525 Parser fails on expressions that take address of overload...
39528 Function try-blocks are not supported by the parser (ANSI...
39536 Parser fails on templated constructors/conversion operators
39538 Parser fails on explicit instantiation of templated opera...
39542 Parser fails on 'struct' parameter types
39549 Designated initializers are not supported (ANSI C99)
39551 Complex and imaginary numbers are not supported (ANSI C99)
39641 Add kill GDB process button
39650 The Memory window has alignment problems
39676 Designated initializers are not supported (GCC)
39678 Scanner doesn't support concatenation of different-type s...
39684 Referring to a type with 'typeof' is not supported (GCC)
39694 '$' in identifier names is not supported (GCC)
39695 __alignof__ is not supported (GCC)
39697 Alternative keywords are not supported (GCC)
39698 Minimum and maximum operators are not supported (GCC, C++)
39703 __extension__ keyword is not supported (GCC)
39704 __declspec is not supported (GCC)
39705 #ident directive is not supported (GCC)
39847 Exception found in log
39888 Standard Make Build Info doesn't handle mutex
39966 [Outline Viewer] Method on a template class appears param...
40007 Parser reports success when it fails
40032 Outline View is drawn twice on opening a source-file
40099 Exceptions when comparing local changes against head
40247 Wrong order of projects in C/C++ Projects view
40759 Offsets of macroexpansions are not correct
41021 Closing 20 Projects locks CDT/Eclipse
41063 Remove unused K&R C support from ANSI Parser
41191 Parser Exception when opening a file from RRT Project
41415 Progress bar for builds is rarely useful
41417 Status bar does not provide make's arguments
41935 parser provides wrong name on namespace aliases
42600 Code Assist not working after '.' and '->'
42602 Cdrive built in
42834 Enumerator is not a field
43014 Search: no way to trouble-shoot search database
43021 [Search] cannot find things in stdio.h
43051 Search: cannot specify relative search paths
43110 Parser support needed for functions with ellipses
43130 Search: Selected resources is disabled but selected
43158 Code Assist Preferences UI needs to be better...
43220 Cannot link an object file in managed c/c++ project
43498 Search with ? fails on first letter of second word
43562 Search test suite in core.tests plug-in depends upon UI
43642 Current Update Manager unacceptable for new users
43643 "Build On Resource Save" not listening to global "Perform...
43656 Managed Build stuck in lengthy initial process after proj...
43815 Cannot Create Project when only CDT+Managed installed
43899 Execute app using an adapted C/C++ Local Application rebu...
43978 Hard to correct failure of CDT to index source code
44043 code assist letter by letter doesn't update properly
44082 Managed Make: browse to include path "C:\like\this"
44128 spaces in workspace cause managed projects to fail build
44145 [Parser] add more semantic checks for type compatibility ...
44154 subdir.dep not updated if saving including file before in...
44159 Cannot change Build properties after renaming project
44163 Open Header does not work
44249 Qualified method definition does not parse (GCC)
44251 Code Assist: bad error message on preference page
44305 Scanner/preprocessor fails on conditionals using hexidecimal
44333 Standard Make - custom make target with no build target c...
44337 Disabling of "definition" not making sense in Search dialog
44340 Inline functions fail to resolve references
44342 Failure to dereference function calls after a . or an ->
44353 Build dialogs that choose a path should have a "Browse" b...
44359 Content Assist: foo(void) does not require args to be filled
44364 [Content Assist] case sensitivity option
44366 Endless loop in dependency checker
44371 Outline View/Content Assist: displaying functions with el...
44373 Content Assist: variables don't say what type they are
44375 [Content Assist] handling arguments with default values
44378 Content Assist: easy keyboard exit of argument-providing ...
44451 Managed Make: NPE on canceling from New Inc Path dialog
44464 Importing a cdt 1.1 project doesn't upgrade it
44500 Deleting symbolic link in workspace doesn't force depende...
44510 C/C++ Search gives wrong results
44550 Managed Make: Dependent project rebuilt too much
44552 Doc: Content Assist seconds should be milli-seconds
44633 Outline View : CModelBuilder quits on templated friends
44664 Content Assist Doc change
44675 Managed Make: Circular project dependencies cause endless...
44679 Open Declaration menu takes a long time for a large project
44720 Add -fmessage-length=0 to the gcc/g++ C/CXX/LDFLAGS
44841 No scoll bar on Libraries pane
44846 The Application Search button doesn't show paths
44925 Search: Elaborated type specifier
44947 Navigate from Outline: Enumeration type not pre-populated
44948 Navigate via Open Declarations: typedef decl not found
44952 COMPLETE_PARSE clients require template support
44953 Symbol Definition (-D) requires "=1" for some reason (GCC)
45046 make arguments not being echoed to the console
45140 refactor IScanner to allow use of Readers of IResource
45172 Add Infos on Build, which Target is being build
45287 Scanner does not accept character sequence literals
45311 CVS tries to check in contents of build output
45320 GCC error parser turns some warnings into errors
45372 require full declaration iterator on IContainerSymbol
45377 add better error information to parser and scanner
45542 Project properties dialog refresh issue
45577 [New Class Wizard] Not able to create new C++ project
45768 Missing dependency due to scanner problem
46402 expression evaluation error on branch not taken
46822 Outline flickers when opening/editing files
47552 IEnumerator#getConstantExpression is always empty
47585 [New Class Wizard] assumes BaseClass is in BaseClass.h
47746 Debugger stack trace + "show source of selected element o...
47752 [Parser] Outline does not recognize functions with full b...
48088 Press cancel while make is running locks up Eclipse
50789 Need access to Internal CDT class CView
50984 NPE in the parser
51232 Failure of Parser translationUnit() method has bad conseq...
58711 Breakpoint race condition
61965 [scalability] Can't open C/C++ editor repeatedly without ...

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.

IBM is a trademark of International Business Machines Corporation in the United States, other countries, or both.

Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.

Other company, product, and service names may be trademarks or service marks of others.

(c) Copyright IBM Corporation and others 2000, 2004.