| Summary: | xdc.tools.configuro does not correctly generate file paths containing blank space characters | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Technology] RTSC | Reporter: | Alain Lee <a-lee> | ||||
| Component: | Tools | Assignee: | Dave Russo <d-russo> | ||||
| Status: | ASSIGNED --- | QA Contact: | |||||
| Severity: | major | ||||||
| Priority: | P3 | CC: | dfriedland, karl | ||||
| Version: | unspecified | ||||||
| Target Milestone: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
Created attachment 208129 [details]
example with spaces that works on Linux
Alain, I can't seem to reproduce the error. The attached example is my attempt. It contains a makefile and a physical layout that (as far as I can see) matches the layout assumed by CCS projects. Is there anything special about how the configuro tool is being executed within CCS? Is it possible that an absolute path to the .cfg file is being passed to the configuro? (In reply to comment #2) > Alain, > I can't seem to reproduce the error. The attached example is my attempt. It > contains a makefile and a physical layout that (as far as I can see) matches > the layout assumed by CCS projects. > Is there anything special about how the configuro tool is being executed within > CCS? > Is it possible that an absolute path to the .cfg file is being passed to the > configuro? Did your project get built without any error? The file "space in name/Debug/hello/package/cfg/hello_p64.cfg" contains the following statements where one has %20 and the other has blank spaces build = { profile: "release", cfgScript: "/db/ztree/dr/xdcexamples-a00x/src/cfg/configuro/tests/errors/ecl366060/space%20in%20name/hello.cfg", _runCfg("/db/ztree/dr/xdcexamples-a00x/src/cfg/configuro/tests/errors/ecl366060/space in name/hello.cfg", yep, no error. The attached zip has the output from the successful command line run on Linux as well as all files necessary to reproduce it on Linux. Alain,
On closer inspection of the error it looks like the error is coming from ti.sysbios or the ti.sdo.io package. This would explain why my example works and yours doesn't.
generating custom ti.sysbios library makefile ...
generating custom ti.sdo.io library makefile ...
Starting build of library sources ...
gmake[1]: /home/torbdsvc/workspace_v5_1/rtsc: No such file or directory
gmake[1]: *** No rule to make target `/home/torbdsvc/workspace_v5_1/rtsc'.
Stop.
Build of libraries failed.
I know ti.sysbios generates a makefile that it uses to rebuild the SYS/BIOS sources. My guess is that it (or ti.sdo.io) does not handle path names with spaces.
I'll forward the problem to the SYS/BIOS team for further analysis.
OK, it is possible to reproduce the problem without using SYS/BIOS.
The problem requires the use of the newly added xdc.cfg.SourceDir module. This module is responsible for buiding directories of generated sources specified by products like SYS/BIOS.
The following configuration script causes a problem when a project is in a directory that contains spaces in the path:
var System = xdc.useModule("xdc.runtime.System");
var SourceDir = xdc.useModule("xdc.cfg.SourceDir");
SourceDir.create("foo");
|
I created a RTSC project and the project name contains blank space characters (e.g. " rtsc project". When building the project, the following errors were reported. /opt/test/ccsv5/utils/bin/gmake -k all Building file: ../stairstep.cfg Invoking: XDCtools "/opt/test/xdctools_3_22_01_21/xs" --xdcpath="/opt/test/bios_6_32_01_38/packages;/opt/test/ipc_1_23_01_26/packages;" xdc.tools.configuro -o configPkg -t ti.targets.C64P -p ti.platforms.evmDM6437 -r debug -c "/opt/test/ccsv5/tools/compiler/c6000" --compileOptions "-g --optimize_with_debug" "../stairstep.cfg" making package.mak (because of package.bld) ... generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ... configuring stairstep.p64P from package/cfg/stairstep_p64P.cfg ... generating custom ti.sysbios library makefile ... generating custom ti.sdo.io library makefile ... Starting build of library sources ... gmake[1]: /home/torbdsvc/workspace_v5_1/rtsc: No such file or directory gmake[1]: *** No rule to make target `/home/torbdsvc/workspace_v5_1/rtsc'. Stop. Build of libraries failed. error: xdc.cfg.SourceDir: "/opt/test/xdctools_3_22_01_21/packages/xdc/cfg/SourceDir.xs", line 150: xdc.cfg.SourceDir : Build of generated source libraries failed: exit status = 2: I found that the following file created by configuro did not generate some of the file paths correctory. In the file <Project>/Debug/configPkg/package/cfg/stairstep_p64P.cfg, it shows the following lines: _runCfg("/home/torbdsvc/workspace_v5_1/rtsc project/stairstep.cfg", spath, "package/cfg/stairstep_p64P", var build = { profile: "release", cfgScript: "/home/torbdsvc/workspace_v5_1/rtsc%20project/stairstep.cfg", Note that the first line shows the path with the blank space while the second statement shows that the blank space character was replace by %20.