fix deciding which externals directories to build

The way it was doing it before was completely brain-dead.

Change-Id: Id1baac54b92f0cb4e68550fa135398bea02b060f
diff --git a/aos/build/build.py b/aos/build/build.py
index f0300f9..6dea832 100755
--- a/aos/build/build.py
+++ b/aos/build/build.py
@@ -611,13 +611,16 @@
   def download_externals(self, platforms):
     to_download = set()
     for architecture in PrimeProcessor.ARCHITECTURES:
+      pie_sanitizers = set()
       for sanitizer in PrimeProcessor.PIE_SANITIZERS:
-        if platforms & self.select_platforms(architecture=architecture,
-                                             sanitizer=sanitizer):
-          to_download.add(architecture + '-fPIE')
-        if platforms & self.select_platforms(architecture=architecture,
-                                             sanitizer='none'):
-          to_download.add(architecture)
+        pie_sanitizers.update(self.select_platforms(architecture=architecture,
+                                                    sanitizer=sanitizer))
+      if platforms & pie_sanitizers:
+        to_download.add(architecture + '-fPIE')
+
+      if platforms & (self.platforms() - pie_sanitizers):
+        to_download.add(architecture)
+
     for download_target in to_download:
       call_download_externals(download_target)
 
@@ -955,7 +958,7 @@
              '-DFULL_COMPILER=%s' % platform.compiler(),
              '-DDEBUG=%s' % ('yes' if platform.debug() else 'no'),
              '-DSANITIZER=%s' % platform.sanitizer(),
-             '-DSANITIZER_FPIE=%s' %
+             '-DEXTERNALS_EXTRA=%s' %
              ('-fPIE' if platform.sanitizer() in PrimeProcessor.PIE_SANITIZERS
               else '')) +
             processor.extra_gyp_flags() + (args.main_gyp,),