Bug 279630 - We need a way to properly handle file name formats and special characters for the target build system and shell
Summary: We need a way to properly handle file name formats and special characters for...
Status: NEW
Alias: None
Product: CDT
Classification: Tools
Component: cdt-build-managed (show other bugs)
Version: 6.0   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Jonah Graham CLA
URL:
Whiteboard:
Keywords:
Depends on: 100701 117600 117873 117892 180918 194265 228325 229272
Blocks:
  Show dependency tree
 
Reported: 2009-06-09 10:54 EDT by Chris Recoskie CLA
Modified: 2020-09-04 15:20 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Recoskie CLA 2009-06-09 10:54:57 EDT
Right now there are numerous issues surrounding various combinations of special characters, whether appearing in file names, or in build macros, or in build option values.  Passing some characters to make for example, will cause the makefile to blow up.  Other characters have special meaning to the operating system shell, and may require escaping.

There are also issues surrounding path formatting.  Windows in particular can be problematic, as some builders like windows paths (MinGW), and others do not (CygWin).  Then there is also the problem of doing remote builds, which can end up targeting anything.

We need a system whereby we can fully specify the targeted build environment, including:

- path formatting
- special characters that require escaping for the builder
- special characters that require escaping for the shell
- what characters your command should use for I/O redirection (often you need to merge stdout and stderr to prevent improper interleaving)
- allowable length of commands (right now if your project is big enough, the link step will blow up because the command is too long)
- anything else?

I suggest that there be an element in the buildDefinitions extension point that facilitates the definition of the "target environment" (for lack of a better term), which would encompass the items above and anything else we can think of that needs to be there.
Comment 1 Andrew Gvozdev CLA 2009-06-09 11:17:49 EDT
This should be also used in error parsing as we keep "reasonable" hardcoded workarounds for various target systems, such as Cygwin or Wine (bug 263977) now.
Comment 2 Jonah Graham CLA 2019-12-30 17:05:41 EST
This bug was assigned and targeted at a now released milestone. As that milestone has now passed, the milestone field has been cleared. If this bug has been fixed, please set the milestone to the version it was fixed in and marked the bug as resolved.