Commit Graph
12 Commits
Author SHA1 Message Date
Martin Storsjö ebde97faaf wrappers: Use a response file on Windows, if the new command line seems too long
This should properly fix the issue that was reported at
https://github.com/mstorsjo/llvm-mingw/issues/296.
2024-06-03 12:36:17 +03:00
Martin Storsjö 089c625e66 wrappers: Print an understandable error if the total command line ends up too long
This can happen if the input command line is barely under the limit,
but ends up exceeding it due to the extra arguments that the wrapper
adds.

One could hope that _tspawnvp would set errno to a helpful error code,
to identify the issue when printing the error with _tperror(), but in
practice, it doesn't.
2024-06-03 12:36:17 +03:00
Martin Storsjö 3847488786 wrappers: Only escape arguments that need escaping
This avoids inflating the total size of the command line too much.

If the input command line is near the max size of a command line
(32767 characters), it may grow past that limit when adding the
arguments injected by the wrapper. If we excessively quote all
arguments that don't need to be quoted, we can more easily run
into this situation.

Thus, by avoiding excessive quoting, we reduce the risk for this
issue to happen.

This avoids the issue reported at
https://github.com/mstorsjo/llvm-mingw/issues/296.
2024-06-03 12:36:07 +03:00
Martin Storsjö 9de1bfe8a3 wrappers: Fix a typo 2024-04-24 11:36:31 +03:00
Martin Storsjö 1022231482 wrappers: Try to resolve short form 8.3 file names into long form
This allows the wrappers to invoke the right tool with the right
options, even when the wrapper was invoked with an obfuscated
short form file name.

This happens e.g. when CMake/Ninja invokes the tools from a path
that contains spaces.
2023-03-12 00:08:13 +02:00
Martin Storsjö 087255e28a wrappers: Handle tools named [<target>-]llvm-<tool>
Normally, we'd split the string at the last dash. However if the
tool name is "llvm-<tool>", make sure to include "llvm-" in the
tool name part when splitting the executable name.

In llvm-wrapper, don't add a duplicate "llvm-" prefix for the tool
name in these cases.
2022-10-01 13:28:41 +03:00
Martin Storsjö 8507ee6023 windres-wrapper: Do the format name comparisons case insensitively 2020-03-14 12:58:18 +02:00
Martin Storsjö 96b149eb72 native-wrapper: Make static functions inline, to avoid warnings if unused 2020-03-14 12:58:18 +02:00
Michael Hept a959509701 Fix out of bound array access in native-wrappers.h 2019-05-09 14:58:38 +03:00
Martin Storsjö c3aeb78576 wrappers: Add a wrapper for running llvm binutils replacements
This saves a lot of diskspace, when symlinks are turned into full
copies of the tools on windows, as the symlinks only point to a small
wrapper instead of to the full tool.
2019-05-06 11:05:25 +03:00
Martin Storsjö 750ab50433 wrappers: Consistently quote all arguments when calling spawn or creating a command line 2019-05-06 11:04:53 +03:00
Martin Storsjö 97ca0681bc wrappers: Split out shared helpers for native wrapper executables to a header 2019-05-06 11:04:53 +03:00