Convert sed(1) syntax to be compatible with FreeBSD and OpenBSD
authorJan Beich <jbeich@freebsd.org>
Sun, 12 Mar 2017 03:19:14 +0000 (03:19 +0000)
committerEric Engestrom <eric.engestrom@imgtec.com>
Tue, 14 Mar 2017 17:07:04 +0000 (17:07 +0000)
BSD regex library doesn't support extended RE escapes (e.g. \+) and
shorthand character classes (e.g. \s, \S) and SVR4-style word
delimiters[1] (on DragonFly and NetBSD). Both GNU and BSD sed support
-E and -r to enable extended RE but OS X still lacks -r.

[1] https://www.illumos.org/issues/516

Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
Tested-by: Eric Engestrom <eric.engestrom@imgtec.com> (GNU sed)
configure.ac

index a99684bd4343e4cc288ee7a8d620ce3c6fa5c5b4..1d81fcceaeed3847354fe6958d3dc3511c140b54 100644 (file)
@@ -908,18 +908,18 @@ llvm_add_target() {
 # $1 is the llvm-config command with arguments.
 strip_unwanted_llvm_flags() {
     # Use \> (marks the end of the word)
-    echo " `$1`" | sed \
-        -e 's/\s\+-m\S*//g' \
-        -e 's/\s\+-DNDEBUG\>//g' \
-        -e 's/\s\+-D_GNU_SOURCE\>//g' \
-        -e 's/\s\+-pedantic\>//g' \
-        -e 's/\s\+-W\S*//g' \
-        -e 's/\s\+-O\S*//g' \
-        -e 's/\s\+-g\S*//g' \
+    echo " `$1`" | sed -E \
+        -e 's/[[[:space:]]]+-m[[^[:space:]]]*//g' \
+        -e 's/[[[:space:]]]+-DNDEBUG\>//g' \
+        -e 's/[[[:space:]]]+-D_GNU_SOURCE\>//g' \
+        -e 's/[[[:space:]]]+-pedantic\>//g' \
+        -e 's/[[[:space:]]]+-W[[^[:space:]]]*//g' \
+        -e 's/[[[:space:]]]+-O[[^[:space:]]]*//g' \
+        -e 's/[[[:space:]]]+-g[[^[:space:]]]*//g' \
         -e 's/-fno-rtti\>/-Fno-rtti/g' \
-        -e 's/\s\+-f\S*//g' \
+        -e 's/[[[:space:]]]+-f[[^[:space:]]]*//g' \
         -e 's/-Fno-rtti\>/-fno-rtti/g' \
-        -e 's/^ //'
+        -e 's/^[[[:space:]]]//'
 }
 
 llvm_set_environment_variables() {