Update to the 2019 wpilib

Lots of gratuitious incompatibilities to deal with. Started sanifying a
few classes rather than figuring out how to update them too. Has not yet
been tested on a robot, but everything still builds so it should be
fine.

Also ported over our FPGA timestamp fixes, which were previously only in
allwpilib_2018.

Also upgraded to the new roborio compiler, which has to happen at the
same time due to incompatible pre-compiled libraries.

Change-Id: Ib9b6ad8fc0112d90a9855afe1b706588ef4ebde9
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar
index 5725bbb..09e37a4 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ar
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-ar \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-ar" \
+exec -a arm-frc2019-linux-gnueabi-ar \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-ar" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-as b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-as
index 6e67db8..df82796 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-as
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-as
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-as \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-as" \
+exec -a arm-frc2019-linux-gnueabi-as \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-as" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp
index d2968e3..00e88d6 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-cpp
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-cpp \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-cpp" \
+exec -a arm-frc2019-linux-gnueabi-cpp \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-cpp" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-dwp b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-dwp
index 697f65a..9201bbe 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-dwp
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-dwp
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-dwp \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-dwp" \
+exec -a arm-frc2019-linux-gnueabi-dwp \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-dwp" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc
index 7b127aa..33bf997 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcc
@@ -4,6 +4,5 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-gcc" \
+exec "${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-gcc" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov
index 35d71c2..2f0a64e 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-gcov
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-gcov \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-gcov" \
+exec -a arm-frc2019-linux-gnueabi-gcov \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-gcov" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld
index f3dc5ef..862fb3c 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-ld
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-ld \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-ld" \
+exec -a arm-frc2019-linux-gnueabi-ld \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-ld" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm
index b9bc2b8..1436464 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-nm
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-nm \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-nm" \
+exec -a arm-frc2019-linux-gnueabi-nm \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-nm" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy
index 04381fa..fec13a6 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objcopy
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-objcopy \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-objcopy" \
+exec -a arm-frc2019-linux-gnueabi-objcopy \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-objcopy" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump
index 2c6a99c..d305185 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-objdump
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-objdump \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-objdump" \
+exec -a arm-frc2019-linux-gnueabi-objdump \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-objdump" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip
index 78a0f65..3de77a6 100755
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi-strip
@@ -4,6 +4,6 @@
 LD_LIBRARY_PATH+=":${BAZEL_OUTPUT_ROOT}external/arm_frc_gnueabi_deps/lib/x86_64-linux-gnu"
 export LD_LIBRARY_PATH
 
-exec -a arm-frc-linux-gnueabi-strip \
-	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/usr/bin/arm-frc-linux-gnueabi-strip" \
+exec -a arm-frc2019-linux-gnueabi-strip \
+	"${BAZEL_OUTPUT_ROOT}external/arm_frc_linux_gnueabi_repo/bin/arm-frc2019-linux-gnueabi-strip" \
 	"$@"
diff --git a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi.BUILD b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi.BUILD
index a2725fe..51b17a7 100644
--- a/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi.BUILD
+++ b/tools/cpp/arm-frc-linux-gnueabi/arm-frc-linux-gnueabi.BUILD
@@ -1,72 +1,75 @@
 package(default_visibility = ["//visibility:public"])
 
+prefix = "arm-frc2019-linux-gnueabi"
+
 filegroup(
     name = "gcc",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-gcc",
+        "bin/" + prefix + "-gcc",
     ],
 )
 
 filegroup(
     name = "ar",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-ar",
+        "bin/" + prefix + "-ar",
     ],
 )
 
 filegroup(
     name = "as",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-as",
+        "bin/" + prefix + "-as",
     ],
 )
 
 filegroup(
     name = "ld",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-ld",
+        "bin/" + prefix + "-ld",
     ],
 )
 
 filegroup(
     name = "nm",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-nm",
+        "bin/" + prefix + "-nm",
     ],
 )
 
 filegroup(
     name = "objcopy",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-objcopy",
+        "bin/" + prefix + "-objcopy",
     ],
 )
 
 filegroup(
     name = "objdump",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-objdump",
+        "bin/" + prefix + "-objdump",
     ],
 )
 
 filegroup(
     name = "strip",
     srcs = [
-        "usr/bin/arm-frc-linux-gnueabi-strip",
+        "bin/" + prefix + "-strip",
     ],
 )
 
 filegroup(
     name = "compiler_pieces",
-    srcs = glob([
-        "usr/bin/**/*",
-        "usr/include/**/*",
-        "usr/lib/**/*",
-        "usr/arm-frc-linux-gnueabi/**/*",
-        "usr/lib/x86_64-linux-gnu/gcc/**/*",
-    ]) + [
-        "@arm_frc_gnueabi_deps",
-    ],
+    srcs = glob([prefix + "/" + s for s in [
+        "usr/include/**",
+        "usr/lib/**",
+        "lib/**",
+        "bin/**",
+        "**"
+    ]] + [
+        "libexec/gcc/" + prefix + "/6.3.0/**",
+        "bin/**",
+    ]),
 )
 
 filegroup(