about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-05-25 13:39:41 -0400
committerJune McEnroe <june@causal.agency>2021-05-25 13:39:41 -0400
commit20e2ef936b182c461b604fa874a556abd07c98e2 (patch)
treebce9641bbcc110b3c214464c1745055417b01bb8
parentImport LibreSSL 3.3.3 (diff)
downloadlibretls-20e2ef936b182c461b604fa874a556abd07c98e2.tar.gz
libretls-20e2ef936b182c461b604fa874a556abd07c98e2.zip
import: Add missing scripts/wrap-compiler-for-flag-check
-rw-r--r--import.sh3
-rwxr-xr-xscripts/wrap-compiler-for-flag-check31
2 files changed, 33 insertions, 1 deletions
diff --git a/import.sh b/import.sh
index 5da49ba..e791de5 100644
--- a/import.sh
+++ b/import.sh
@@ -37,7 +37,8 @@ tar -x -f "${input}" --strip-components 1 \
 	'libressl-*/m4/check-os-options.m4' \
 	'libressl-*/m4/disable-compiler-warnings.m4' \
 	'libressl-*/man/Makefile.am' \
-	'libressl-*/man/tls_*.3'
+	'libressl-*/man/tls_*.3' \
+	'libressl-*/scripts/wrap-compiler-for-flag-check'
 
 tar -x -f "${input}" --strip-components 2 \
 	-s '/VERSION/LIBTLS_VERSION/' \
diff --git a/scripts/wrap-compiler-for-flag-check b/scripts/wrap-compiler-for-flag-check
new file mode 100755
index 0000000..b014f11
--- /dev/null
+++ b/scripts/wrap-compiler-for-flag-check
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# This file is in the public domain.
+# https://github.com/kmcallister/autoharden/blob/c5c7842f39c2f8d19836bb5427d6479db4436d62/LICENSE
+#
+# From kmcallister: 
+# https://github.com/kmcallister/autoharden/blob/efaf5a16612589808c276a11536ea9a47071f74b/scripts/wrap-compiler-for-flag-check
+
+# Prior to clang v5.1, there was no way to make
+# clang's "argument unused" warning fatal.  This
+# wrapper script that greps for this warning message. Newer clang's have no issues.
+#
+# Ideally the search string would also include 'clang: ' but this output might
+# depend on clang's argv[0].
+#
+set -o errexit
+set -o nounset
+
+if out=`"$@" 2>&1`; then
+  echo "$out"
+  if echo "$out" | grep 'warning: argument unused' >/dev/null; then
+    echo "$0: found clang warning"
+    exit 1
+  else
+    exit 0
+  fi
+else
+  code=$?
+  echo "$out"
+  exit $code
+fi