futility: Work around clang/GCC problem with libzip headers

I don't even want to get into why this is needed. I'm so tired of
having to deal with new clang-specific toolchain bullshit 2-3 times a
year. libzip did this

https://github.com/nih-at/libzip/commit/1d949dd77339fb59605dc8f3a30f76604d693795

and then we upreved to it in CL:2245845 and now building upstream
coreboot in a Chrome OS chroot is broken.

I have to get back to wasting time on the other three random things
that broke when I ran repo sync, so someone please just approve...

BRANCH=None
BUG=None
TEST=None

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: Ic578e8f8e47f7fafd98d8c3148cbe24d9156886b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2366053
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/futility/updater_archive.c b/futility/updater_archive.c
index 36873a6..218499e 100644
--- a/futility/updater_archive.c
+++ b/futility/updater_archive.c
@@ -17,6 +17,13 @@
 #include <unistd.h>
 
 #ifdef HAVE_LIBZIP
+#ifndef __clang__
+/* If libzip headers were built for Clang but later get included with GCC you
+   need this. This check should really be in libzip but apparently they think
+   it's fine to ship compiler-specific system headers or something... */
+#define _Nullable
+#define _Nonnull
+#endif
 #include <zip.h>
 #endif