Reverting flatcc to use our own cmake file for cross-compilation.
diff --git a/build_tools/third_party/flatcc/CMakeLists.txt b/build_tools/third_party/flatcc/CMakeLists.txt
index 82b1cb2..f1ad43e 100644
--- a/build_tools/third_party/flatcc/CMakeLists.txt
+++ b/build_tools/third_party/flatcc/CMakeLists.txt
@@ -27,6 +27,8 @@
   SRCS
     "src/runtime/builder.c"
     "src/runtime/emitter.c"
+    "src/runtime/json_parser.c"
+    "src/runtime/json_printer.c"
     "src/runtime/refmap.c"
     "src/runtime/verifier.c"
   HDRS
@@ -40,6 +42,8 @@
     "include/flatcc/flatcc_flatbuffers.h"
     "include/flatcc/flatcc_identifier.h"
     "include/flatcc/flatcc_iov.h"
+    "include/flatcc/flatcc_json_parser.h"
+    "include/flatcc/flatcc_json_printer.h"
     "include/flatcc/flatcc_portable.h"
     "include/flatcc/flatcc_prologue.h"
     "include/flatcc/flatcc_refmap.h"
diff --git a/iree/base/CMakeLists.txt b/iree/base/CMakeLists.txt
index 4170889..0fcd10d 100644
--- a/iree/base/CMakeLists.txt
+++ b/iree/base/CMakeLists.txt
@@ -212,7 +212,7 @@
     "flatcc.h"
   DEPS
     ::flatcc_dummy
-    flatccrt
+    flatcc::runtime
   PUBLIC
 )
 
diff --git a/iree/compiler/Conversion/LLVMToLLVM/FastExpConversion.cpp b/iree/compiler/Conversion/LLVMToLLVM/FastExpConversion.cpp
index 749ada4..f4f41d9 100644
--- a/iree/compiler/Conversion/LLVMToLLVM/FastExpConversion.cpp
+++ b/iree/compiler/Conversion/LLVMToLLVM/FastExpConversion.cpp
@@ -31,13 +31,13 @@
 
   LogicalResult matchAndRewrite(LLVM::ExpOp op,
                                 PatternRewriter &rewriter) const override {
-    constexpr float ln2Const = 0.693147181;
-    constexpr float ln2InvConst = 1.44269504;
+    constexpr float ln2Const = 0.693147181f;
+    constexpr float ln2InvConst = 1.44269504f;
 
     // Least squares polynomial fit computed :
     // cValues = np.polyfit(np.linspace(0, math.log(2), 10000), np.exp(x), 4)
-    constexpr float cValues[5] = {0.05924867, 0.15514645, 0.50308552,
-                                  0.99968939, 1.00000721531};
+    constexpr float cValues[5] = {0.05924867f, 0.15514645f, 0.50308552f,
+                                  0.99968939f, 1.00000721531f};
     auto loc = op.getLoc();
     Value x = op.getOperand();
 
diff --git a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
index 1e044c9..2934ce9 100644
--- a/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
+++ b/iree/compiler/Dialect/HAL/Target/MetalSPIRV/CMakeLists.txt
@@ -32,7 +32,7 @@
     MLIRSPIRV
     MLIRSPIRVSerialization
     MLIRSupport
-    flatccrt
+    iree::base::flatcc
     iree::compiler::Dialect::Flow::IR
     iree::compiler::Dialect::HAL::Target::SPIRVCommon
     iree::compiler::Utils
diff --git a/iree/compiler/Utils/BUILD b/iree/compiler/Utils/BUILD
index d204a48..3f6aa07 100644
--- a/iree/compiler/Utils/BUILD
+++ b/iree/compiler/Utils/BUILD
@@ -34,7 +34,6 @@
     deps = [
         "//iree/base:flatcc",
         "//iree/compiler/Dialect/IREE/IR",
-        "@com_github_dvidelabs_flatcc//:runtime",
         "@llvm-project//llvm:Support",
         "@llvm-project//mlir:IR",
         "@llvm-project//mlir:Pass",
diff --git a/iree/compiler/Utils/CMakeLists.txt b/iree/compiler/Utils/CMakeLists.txt
index 0bfdd53..6db54f5 100644
--- a/iree/compiler/Utils/CMakeLists.txt
+++ b/iree/compiler/Utils/CMakeLists.txt
@@ -32,7 +32,6 @@
     MLIRSupport
     MLIRTransformUtils
     MLIRTransforms
-    flatccrt
     iree::base::flatcc
     iree::compiler::Dialect::IREE::IR
     tensorflow::mlir_hlo
diff --git a/iree/tools/CMakeLists.txt b/iree/tools/CMakeLists.txt
index 0725095..de1c9b9 100644
--- a/iree/tools/CMakeLists.txt
+++ b/iree/tools/CMakeLists.txt
@@ -88,7 +88,7 @@
   SRCS
     "iree-dump-module-main.cc"
   DEPS
-    flatccrt
+    flatcc::runtime
     iree::base::file_mapping
     iree::schemas::bytecode_module_def_c_fbs
 )