[PATCH] D25841: Add a space to work around a Windows CPython / MSys quoting bug

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 20 13:09:11 PDT 2016


rnk created this revision.
rnk added reviewers: inglorion, ruiu.
rnk added a subscriber: llvm-commits.

The rules for quoting the command line that a subprocess receives are
user space conventions implemented by the C runtime. Python's quoting
rules are implemented here:
https://github.com/python/cpython/blob/c30098c8c6014f3340a369a31df9c74bdbacc269/Lib/subprocess.py#L725

The result is that the final command line C string computed by Python is
'echo \"'. Mingw doesn't appear to interpret that backslash as escaping
the quote because it is not already inside a quoted region. As a result,
our echo command prints a single backslash instead of a quote.

The whole issue can be sidestepped by adding a space a forcing Python to
put the argument to echo in double quotes.


https://reviews.llvm.org/D25841

Files:
  test/ELF/libsearch.s
  test/ELF/version-script-err.s


Index: test/ELF/version-script-err.s
===================================================================
--- test/ELF/version-script-err.s
+++ test/ELF/version-script-err.s
@@ -4,7 +4,7 @@
 // RUN: not ld.lld -shared %t.o -o %t.so --version-script %p/Inputs/version-script-err.script 2>&1 | FileCheck %s
 // CHECK: ; expected, but got }
 
-// RUN: echo    "\"" > %terr1.script
+// RUN: echo    " \"" > %terr1.script
 // RUN: not ld.lld --version-script %terr1.script -shared %t.o -o %t.so 2>&1 | \
 // RUN:   FileCheck -check-prefix=ERR1 %s
 // ERR1: unclosed quote
Index: test/ELF/libsearch.s
===================================================================
--- test/ELF/libsearch.s
+++ test/ELF/libsearch.s
@@ -90,7 +90,7 @@
 // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
 
 // -nostdlib
-// RUN: echo 'SEARCH_DIR("'%t.dir'")' > %t.script
+// RUN: echo ' SEARCH_DIR("'%t.dir'")' > %t.script
 // RUN: ld.lld -o %t3 %t.o -script %t.script -lls
 // RUN: not ld.lld -o %t3 %t.o -script %t.script -lls -nostdlib \
 // RUN:   2>&1 | FileCheck --check-prefix=NOSTDLIB %s


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D25841.75341.patch
Type: text/x-patch
Size: 1096 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161020/1fd0ec91/attachment.bin>


More information about the llvm-commits mailing list