bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/27594] build processes broken by changed space handling


From: eliz at gnu dot org
Subject: [Bug binutils/27594] build processes broken by changed space handling
Date: Tue, 11 May 2021 12:46:08 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=27594

--- Comment #20 from Eli Zaretskii <eliz at gnu dot org> ---
(In reply to Martin Storsjö from comment #19)
> (In reply to Eli Zaretskii from comment #18)
> > Moreover, `windres` calls `popen` only in its default mode; you could change
> > that with the --use-temp-file option, in which case the preprocessor will be
> > invoked via `pexecute`, and that has a different set of
> > implementation-defined perculiarities wrt quoted parts of the command.
> 
> When windres calls pexecute, windres itself splits the string (which is in a
> quoted/escaped form suitable for passing to popen) in the run_cmd function,
> so run_cmd is supposed to split/unescape things in the same way as the shell
> would. So ideally, the distinction between those two souldn't be visible
> externally.

That's an incomplete description of what the code does.  It actually first
quotes some parts of the command, then produces a single string with the full
shell command, then (only if not using `popen`) splits the full string back
into individual argv[] elements to pass to `pexecute`.  Would it surprise you
that this process doesn't really support "double quoting" like the `popen`
method does?

> Up until the 2.35 version, the option was documented as "This option may be
> used to specify the preprocessor to use, including any leading arguments.
> The default preprocessor argument is `gcc -E -xc-header -DRC_INVOKED`." I
> think that's rather clearly saying that this kind of behaviour was
> explicitly intended and allowed?

So the incompatible change is in the documentation, right?  The code just does
what the documentation says it should, right?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]