summary refs log tree commit diff
path: root/pkgs/build-support/cc-wrapper/cc-wrapper.sh
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/build-support/cc-wrapper/cc-wrapper.sh
parentbdd6c037c0b64a60d3e5a118f9d73e326cbfd5d2 (diff)
downloadnixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar
nixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar.gz
nixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar.bz2
nixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar.lz
nixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar.xz
nixpkgs-4f869bccc14fb2fa19df130e76c022765ecda924.tar.zst
nixpkgs-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/build-support/cc-wrapper/cc-wrapper.sh')
-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 82f5c6443d5..df1afef3374 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