diff --git a/guest/BUILD.gn b/guest/BUILD.gn
index 9b5b697..33e5f65 100644
--- a/guest/BUILD.gn
+++ b/guest/BUILD.gn
@@ -31,6 +31,7 @@
 
   include_dirs = [
     "../common/opengl/include",
+    "../common/vulkan/include",
     "android-emu",
     "GoldfishAddressSpace/include",
     "iostream/include",
diff --git a/guest/platform/fuchsia/FuchsiaVirtGpu.h b/guest/platform/fuchsia/FuchsiaVirtGpu.h
index 48e6dfa..edd86c3 100644
--- a/guest/platform/fuchsia/FuchsiaVirtGpu.h
+++ b/guest/platform/fuchsia/FuchsiaVirtGpu.h
@@ -57,7 +57,8 @@
 
     VirtGpuResourcePtr createBlob(const struct VirtGpuCreateBlob& blobCreate) override;
     VirtGpuResourcePtr createResource(uint32_t width, uint32_t height, uint32_t stride,
-                                      uint32_t format, uint32_t target, uint32_t bind) override;
+                                      uint32_t size, uint32_t virglFormat, uint32_t target,
+                                      uint32_t bind) override;
     VirtGpuResourcePtr importBlob(const struct VirtGpuExternalHandle& handle) override;
 
     int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuResource* blob) override;
diff --git a/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp b/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
index 3d8c081..7868ec6 100644
--- a/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
+++ b/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
@@ -75,8 +75,9 @@
 }
 
 VirtGpuResourcePtr FuchsiaVirtGpuDevice::createResource(uint32_t width, uint32_t height,
-                                                        uint32_t stride, uint32_t virglFormat,
-                                                        uint32_t target, uint32_t bind) {
+                                                        uint32_t stride, uint32_t size,
+                                                        uint32_t virglFormat, uint32_t target,
+                                                        uint32_t bind) {
     ALOGE("%s: unimplemented", __func__);
     return nullptr;
 }
diff --git a/guest/vulkan/gfxstream_vk_fuchsia.cpp b/guest/vulkan/gfxstream_vk_fuchsia.cpp
index 4b1b324..edc75ac 100644
--- a/guest/vulkan/gfxstream_vk_fuchsia.cpp
+++ b/guest/vulkan/gfxstream_vk_fuchsia.cpp
@@ -3,6 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
+#include <cutils/log.h>
 #include <fidl/fuchsia.logger/cpp/wire.h>
 #include <lib/syslog/structured_backend/cpp/fuchsia_syslog.h>
 #include <lib/zx/channel.h>
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 5cc331e..fe19b25 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -2688,7 +2688,7 @@
 VkResult ResourceTracker::getBufferCollectionImageCreateInfoIndexLocked(
     VkBufferCollectionFUCHSIA collection, fuchsia_sysmem::wire::BufferCollectionInfo2& info,
     uint32_t* outCreateInfoIndex) {
-    if (!info_VkBufferCollectionFUCHSIA[collection].constraints.hasValue()) {
+    if (!info_VkBufferCollectionFUCHSIA[collection].constraints.has_value()) {
         mesa_loge("%s: constraints not set", __func__);
         return VK_ERROR_OUT_OF_DEVICE_MEMORY;
     }
@@ -3496,7 +3496,7 @@
         fuchsia_sysmem::wire::BufferCollectionInfo2& info = result->buffer_collection_info;
         uint32_t index = importBufferCollectionInfoPtr->index;
         if (info.buffer_count < index) {
-            mesa_loge("Invalid buffer index: %d %d", index);
+            mesa_loge("Invalid buffer index: %d", index);
             _RETURN_FAILURE_WITH_DEVICE_MEMORY_REPORT(VK_ERROR_INITIALIZATION_FAILED);
         }
         vmo_handle = info.buffers[index].vmo.release();
@@ -4053,7 +4053,7 @@
         zx_status_t status = zx_vmar_unmap(
             zx_vmar_root_self(), reinterpret_cast<zx_paddr_t>(info.ptr), info.allocationSize);
         if (status != ZX_OK) {
-            mesa_loge("%s: Cannot unmap ptr: status %d", status);
+            mesa_loge("%s: Cannot unmap ptr: status %d", __func__, status);
         }
         info.ptr = nullptr;
     }
diff --git a/guest/vulkan_enc/goldfish_vk_counting_guest.cpp b/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
index 4731014..c5d56fc 100644
--- a/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/guest/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -32,6 +32,7 @@
 
 #include "goldfish_vk_counting_guest.h"
 
+#include <cstdlib>
 #include <cstring>
 
 #include "goldfish_vk_extension_structs_guest.h"
