about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-11-22 16:29:57 -0500
committerJohn Ericson <John.Ericson@Obsidian.Systems>2017-12-13 16:08:17 -0500
commit4f869bccc14fb2fa19df130e76c022765ecda924 (patch)
tree35db18510d380600905e282356a948da9a3c6045 /pkgs
parentbdd6c037c0b64a60d3e5a118f9d73e326cbfd5d2 (diff)
downloadnixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar.gz
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar.bz2
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar.lz
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar.xz
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.tar.zst
nixlib-4f869bccc14fb2fa19df130e76c022765ecda924.zip
cc-wrapper: Don't treat "-" alone as a flag
It means stdin, and is morally equivalent to passing a file. e.g.

  $ echo 'int main(void) { return 0; }' | gcc -x c -

will compile and link a binary.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/build-support/cc-wrapper/cc-wrapper.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index 82f5c6443d54..df1afef33745 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -59,7 +59,8 @@ while (( "$n" < "$nParams" )); do
         cppInclude=0
     elif [ "$p" = -nostdinc++ ]; then
         cppInclude=0
-    elif [ "${p:0:1}" != - ]; then
+    elif [[ "$p" != -?* ]]; then
+        # A dash alone signifies standard input; it is not a flag
         nonFlagArgs=1
     fi
     n+=1