diff --git a/include/libcamera/internal/delayed_controls.h b/include/libcamera/internal/delayed_controls.h
index b64d8bba7cf73e10491d13d64bb4b3f7db80681b..692b8ed9b0e90bde535a2577aabea1bd75d7ee09 100644
--- a/include/libcamera/internal/delayed_controls.h
+++ b/include/libcamera/internal/delayed_controls.h
@@ -7,6 +7,7 @@
 
 #pragma once
 
+#include <array>
 #include <stdint.h>
 #include <unordered_map>
 
diff --git a/include/libcamera/internal/process.h b/include/libcamera/internal/process.h
index 596e967de884852da885238a364b72764409df1b..0dfc2a55b477f5493dce987688cdf056b4bb0f73 100644
--- a/include/libcamera/internal/process.h
+++ b/include/libcamera/internal/process.h
@@ -9,6 +9,7 @@
 
 #include <span>
 #include <string>
+#include <sys/types.h>
 
 #include <libcamera/base/class.h>
 #include <libcamera/base/signal.h>
diff --git a/test/controls/control_value.cpp b/test/controls/control_value.cpp
index c2f9fc482638392334cbc3e0e4503076e126e982..139701f7edbefb2a219a59b25076b007cad13397 100644
--- a/test/controls/control_value.cpp
+++ b/test/controls/control_value.cpp
@@ -6,6 +6,7 @@
  */
 
 #include <algorithm>
+#include <array>
 #include <iostream>
 
 #include <libcamera/controls.h>
diff --git a/test/file.cpp b/test/file.cpp
index 9bf67cc4a92a33505df6a22f0c3fa643e9ad435e..dfb5e63bea35f0f5d5980d17a0281342d06cc857 100644
--- a/test/file.cpp
+++ b/test/file.cpp
@@ -5,6 +5,7 @@
  * File I/O operations tests
  */
 
+#include <array>
 #include <fstream>
 #include <iostream>
 #include <stdlib.h>
diff --git a/test/serialization/serialization_test.cpp b/test/serialization/serialization_test.cpp
index af9969fdd11ff821de104b98b013acb891d2a8c8..f0850c98e07ad2ebdc31ae61241f8c590ae00570 100644
--- a/test/serialization/serialization_test.cpp
+++ b/test/serialization/serialization_test.cpp
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <iostream>
+#include <iterator>
 #include <map>
 
 #include <libcamera/camera.h>
