It's all about the answers!

Ask a question

Embedded compilers crach under RTC when project is shared


Onkelinx Ghislain (58196) | asked Oct 23 '11, 4:44 p.m.
Hallo,

We are using different other C/C++ embedded compilers like IAR under eclipse 3.6 or 3.7 as a plug-in
1) Every time we share a project our project with RTC SCM and we build a project, give eclipse us a error message that he can't find the /default/xxxx directory.

Errors occurred during the build.
Errors running builder 'CDT Builder' on project 'test001'.
Cannot find build output folder: /default/test001/Release

The '/Default' path is confusing with the project (we don't have any path like this in our project)

2) Also when the project was shared with RTC and we modify the source code. When we build the project, the compiler says that there was noting changed.

We have informated the different companies of this issue and they says that the problem is comming from RTC. They has also tell me that he has the same issue with the GNU compiler for eclipse (MinGW-4.4.1).

So who can help me to resolve this issue.

btw: when we using SVN or CVT than we don't have more error messages or compilation problems.

13 answers



permanent link
Ryan Martin (2111) | answered Feb 26 '14, 3:13 p.m.
  The issue with embedded build tools failing with "The directory name is invalid" is still unresolved in RTC 4.0.5 under Eclipse Juno 4.2.2 using CDT 8.1.2. The fix described in https://bugs.eclipse.org/bugs/show_bug.cgi?id=378882 does not appear to be present. Please advise, what can we do to verify that this fix is valid and get it operational?

permanent link
Geoffrey Clemm (30.1k33035) | answered Oct 23 '11, 5:18 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
So to confirm:

- You have your project loaded into a version of Eclipse that has the
RTC plugin.

- The project compiles fine.

- You put your project under RTC source control using the Team -> Share
operation (and make no other changes).

- The project no longer compiles.

Is that correct?

Cheers,
Geoff



On 10/23/2011 4:53 PM, gonkelinx wrote:
Hallo,

We are using different other C/C++ embedded compilers like IAR under
eclipse 3.6 or 3.7 as a plug-in
1) Every time we share a project our
project with RTC SCM and we build a project, give eclipse us a error
message that he can't find the /default/xxxx directory.

Errors occurred during the build.
Errors running builder 'CDT Builder' on project 'test001'.
Cannot find build output folder: /default/test001/Release

The '/Default' path is confusing with the project (we don't have any
path like this in our project)

2) Also when the project was shared with RTC and we modify the source
code. When we build the project, the compiler says that there was
noting changed.

We have informated the different companies of this issue and they says
that the problem is comming from RTC. They has also tell me that he
has the same issue with the GNU compiler for eclipse (MinGW-4.4.1).

So who can help me to resolve this issue.

btw: when we using SVN or CVT than we don't have more error messages
or compilation problems.

permanent link
Onkelinx Ghislain (58196) | answered Oct 24 '11, 7:02 a.m.
Here we explain how you can simulate the issue:

We have used eclipse Indigo 3.7 with the RTC 3.0.1 plug-in.

For what concerns the RTC compatibility issue: The essential problem that I found is that when building using the Internal Builder, the current working directory is changed to /default/<proj>/<config>. So, any tool which is invoked will operate in an invalid folder.

This is because RTC installs its own Eclipse file system extension (EFS), which uses URIs with a custom protocol to access files (e.g. sourcecontrol://jazz/default/HelloWorldGcc2/src/HelloWorldGcc2.c).

As far as I could see, the RTC file system extension is not compatible with the CDT Internal builder.
An easily reproducible test case is to build a project using GCC:

* Using Eclipse Version: Indigo Service Release 1 Build id: 20110916-0149, with CDT 8.0.1 installed.
* Install MinGW gcc tools for Windows as described in CDT help: http://help.eclipse.org/indigo/index.jsp
* Create a new C project using the MinGW GCC toolchain and the Hello World ANSI C Project template (from C/C++ perspective, use File > New > C Project > Executable > Hello World ANSI C Project and MinGW GCC)
* Verify that the project builds correctly
* Share the project using RTC (Right click on project > Team > Share project > Jazz Source Control)
* Clean the project and verify that the rm tool results in an error similar to:

rm -rf C:/default/HelloWorldGcc2/Debug/src/HelloWorldGcc2.d C:/eclipseTests/eclipse-cpp-indigo-SR1-incubation-win32-RTC/eclipse/workspace/HelloWorldGcc2/Debug/HelloWorldGcc2.exe C:/eclipseTests/eclipse-cpp-indigo-SR1-incubation-win32-RTC/eclipse/workspace/HelloWorldGcc2/Debug/src/HelloWorldGcc2.o
Error: Cannot run program "rm": The directory name is invalid.

* Build the project and verify that the following error is displayed in the build console:

**** Rebuild of configuration Debug for project HelloWorldGcc2 ****

**** Internal Builder is used for build ****
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o C:\default\HelloWorldGcc2\Debug\src\HelloWorldGcc2.o C:\eclipseTests\eclipse-cpp-indigo-SR1-incubation-win32-RTC\eclipse\workspace\HelloWorldGcc2\src\HelloWorldGcc2.c
Error: Cannot run program "gcc": The directory name is invalid.

Build error occurred, build is stopped
Time consumed: 41 ms.

* Disconnect the project from source control (Right click on project > Team > Disconnect)
* Build the project and you can seen that the build now works

permanent link
Geoffrey Clemm (30.1k33035) | answered Oct 24 '11, 1:12 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
If you don't get an answer on this forum, please file an RTC work item
on jazz.net for this issue, or call Rational Support and have them do
so. Hopefully, the development team can then find a workaround for you.

Cheers,
Geoff

On 10/24/2011 7:08 AM, gonkelinx wrote:
Here we explain how you can simulate the issue:

We have used eclipse Indigo 3.7 with the RTC 3.0.1 plug-in.

For what concerns the RTC compatibility issue: The essential problem
that I found is that when building using the Internal Builder, the
current working directory is changed to
/default/<proj>/<config>. So, any tool which is
invoked will operate in an invalid folder.

This is because RTC installs its own Eclipse file system extension
(EFS), which uses URIs with a custom protocol to access files (e.g.
sourcecontrol://jazz/default/HelloWorldGcc2/src/HelloWorldGcc2.c).


As far as I could see, the RTC file system extension is not compatible
with the CDT Internal builder.
An easily reproducible test case is to build a project using GCC:

* Using Eclipse Version: Indigo Service Release 1 Build id:
20110916-0149, with CDT 8.0.1 installed.
* Install MinGW gcc tools for Windows as described in CDT help:
http://help.eclipse.org/indigo/index.jsp
* Create a new C project using the MinGW GCC toolchain and the
Hello World ANSI C Project template (from C/C++ perspective,
use File> New> C Project> Executable> Hello World
ANSI C Project and MinGW GCC)
* Verify that the project builds correctly
* Share the project using RTC (Right click on project> Team
Share project> Jazz Source Control)
* Clean the project and verify that the rm tool results in an
error similar to:

rm -rf
C:/default/HelloWorldGcc2/Debug/src/HelloWorldGcc2.d
C:/eclipseTests/eclipse-cpp-indigo-SR1-incubation-win32-RTC/eclipse/workspace/HelloWorldGcc2/Debug/HelloWorldGcc2.exe
C:/eclipseTests/eclipse-cpp-indigo-SR1-incubation-win32-RTC/eclipse/workspace/HelloWorldGcc2/Debug/src/HelloWorldGcc2.o
Error: Cannot run program "rm": The directory name is
invalid.

* Build the project and verify that the following error is displayed
in the build console:

**** Rebuild of configuration Debug for project HelloWorldGcc2 ****

**** Internal Builder is used for build ****
gcc -O0 -g3 -Wall -c -fmessage-length=0 -o
C:\default\HelloWorldGcc2\Debug\src\HelloWorldGcc2.o
C:\eclipseTests\eclipse-cpp-indigo-SR1-incubation-win32-RTC\eclipse\workspace\HelloWorldGcc2\src\HelloWorldGcc2.c
Error: Cannot run program "gcc": The directory name is
invalid.

Build error occurred, build is stopped
Time consumed: 41 ms.

* Disconnect the project from source control (Right click on project
Team> Disconnect)
* Build the project and you can seen that the build now works

permanent link
Daan van der Munnik (29113127) | answered Oct 27 '11, 10:58 a.m.
We also encoutered this problem.

I did some testing and it seems to occur only in combination with the Eclipse Indigo release. When testing using RTC in combination with Eclipse Helios the problem did not occur.

Should we submit a work-item or will this be closed anyway because Indigo is officially not supported yet ?

Daan.

permanent link
Geoffrey Clemm (30.1k33035) | answered Oct 27 '11, 12:54 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
I'd suggest reporting it anyway. It will make sure that the development
team tests that this issue is fixed when they test RTC on the Indigo
release.

Cheers,
Geoff

On 10/27/2011 11:08 AM, dvdmunni wrote:
We also encoutered this problem.

I did some testing and it seems to occur only in combination with the
Eclipse Indigo release. When testing using RTC in combination with
Eclipse Helios the problem did not occur.

Should we submit a work-item or will this be closed anyway because
Indigo is officially not supported yet ?

Daan.

permanent link
Daan van der Munnik (29113127) | answered Oct 28 '11, 6:50 a.m.
Correction on my previous post.

CDT Helios also has issues.

Using the basic hello-world c++ example project (with MinGW toolchain):

g++ -O0 -g3 -Wall -c -fmessage-length=0 -oC:\default\test\Debug\src\test.o C:\Users\nly95689\Documents\eclipse_test_helios\test\src\test.cpp
Internal Builder: Cannot run program "g++": The directory name is invalid.

Looks like the output file path is not using the RTC workspace...

(when using the external "GNU Make Builder" instead of the "CDT Internal Builder" it works well, probably because it works completely outside of the Eclipse context)

regards,

Daan.

permanent link
Michael Valenta (3.7k3) | answered Oct 28 '11, 9:06 a.m.
FORUM MODERATOR / JAZZ DEVELOPER
It would appear that this is an issue in the CDT tooling. It is grabbing the URI from the EFS node for the project and assuming it can reference the local file using the path of the URI of the node without checking the protocol (i.e. RTC uses a custom URI for it's projects). CDT should be using the IFileStore#toLocalFile() method to get the local file.

permanent link
Daan van der Munnik (29113127) | answered Oct 28 '11, 9:10 a.m.
Do you have any suggested ways of working arround this ?
Using the "gnu make builder" is a problem for us as, it seems to break some stuff in a google-test-framework project.

Thanks,

Daan.

permanent link
Yaron Norani (47267065) | answered May 06 '12, 10:21 a.m.
Hello,
@mvalenta, We have the same problem.
Any solution for that or a workaround??

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.