add portable *SAN bot

This would have caught my bug:

    ==11454==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffd28d75191
    at pc 0x0000005365f2 bp 0x7ffd28d6eb70 sp 0x7ffd28d6eb68
    WRITE of size 4 at 0x7ffd28d75191 thread T0
        #0 0x5365f1  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x5365f1)
        #1 0x524b5d  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x524b5d)
        #2 0x51e3fd  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x51e3fd)
        #3 0x53c886  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x53c886)
        #4 0x7f8d92d16b16  (/lib/x86_64-linux-gnu/libc.so.6+0x22b16)
        #5 0x41d3d9  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x41d3d9)

    Address 0x7ffd28d75191 is located in stack of thread T0 at offset 22641 in frame
        #0 0x53947f  (/home/mtklein/skcms/out/clang.xsan-portable/tests+0x53947f)

I need to dig a little deeper into unsigned integer overflow
in half<->float math before we can turn on -fsanitize=integer.

Change-Id: Id85fd3f2616df02556d8f04141476a3efe74d158
Reviewed-on: https://skia-review.googlesource.com/144482
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/build.ninja b/build.ninja
index ddc17ea..770c94c 100644
--- a/build.ninja
+++ b/build.ninja
@@ -10,6 +10,7 @@
 subninja build/clang.portable
 subninja build/clang.tiny
 subninja build/clang.xsan
+subninja build/clang.xsan-portable
 
 subninja build/gcc
 subninja build/gcc.avx512
diff --git a/build/clang.xsan-portable b/build/clang.xsan-portable
new file mode 100644
index 0000000..f0ccef7
--- /dev/null
+++ b/build/clang.xsan-portable
@@ -0,0 +1,6 @@
+mode          = .xsan-portable
+extra_cflags  = -fsanitize=address,undefined -fno-sanitize-recover=all -DSKCMS_PORTABLE
+extra_ldflags = -fsanitize=address,undefined
+include build/clang
+
+# TODO: add -fsanitize=integer