diff --git a/build/gen.py b/build/gen.py
index 0659545..486354b 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -47,6 +47,8 @@
       self._platform = 'fuchsia'
     elif self._platform.startswith('freebsd'):
       self._platform = 'freebsd'
+    elif self._platform.startswith('netbsd'):
+      self._platform = 'netbsd'
     elif self._platform.startswith('openbsd'):
       self._platform = 'openbsd'
     elif self._platform.startswith('haiku'):
@@ -56,7 +58,7 @@
 
   @staticmethod
   def known_platforms():
-    return ['linux', 'darwin', 'mingw', 'msys', 'msvc', 'aix', 'fuchsia', 'freebsd', 'openbsd', 'haiku', 'solaris']
+    return ['linux', 'darwin', 'mingw', 'msys', 'msvc', 'aix', 'fuchsia', 'freebsd', 'netbsd', 'openbsd', 'haiku', 'solaris']
 
   def platform(self):
     return self._platform
@@ -89,7 +91,7 @@
     return self._platform == 'solaris'
 
   def is_posix(self):
-    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys']
+    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'haiku', 'solaris', 'msys', 'netbsd']
 
 
 def main(argv):
@@ -215,6 +217,7 @@
       'openbsd': 'build_openbsd.ninja.template',
       'haiku': 'build_haiku.ninja.template',
       'solaris': 'build_linux.ninja.template',
+      'netbsd': 'build_linux.ninja.template',
   }[platform.platform()])
 
   with open(template_filename) as f:
diff --git a/src/base/files/file_util.h b/src/base/files/file_util.h
index e2f1197..b44129d 100644
--- a/src/base/files/file_util.h
+++ b/src/base/files/file_util.h
@@ -325,7 +325,7 @@
 // the directory |path|, in the number of FilePath::CharType, or -1 on failure.
 int GetMaximumPathComponentLength(const base::FilePath& path);
 
-#if defined(OS_LINUX) || defined(OS_AIX)
+#if defined(OS_LINUX) || defined(OS_AIX) || defined(OS_BSD)
 // Broad categories of file systems as returned by statfs() on Linux.
 enum FileSystemType {
   FILE_SYSTEM_UNKNOWN,   // statfs failed.
diff --git a/src/base/files/file_util_posix.cc b/src/base/files/file_util_posix.cc
index 79c9428..1eef8e8 100644
--- a/src/base/files/file_util_posix.cc
+++ b/src/base/files/file_util_posix.cc
@@ -210,7 +210,7 @@
 }
 
 bool CreateLocalNonBlockingPipe(int fds[2]) {
-#if defined(OS_LINUX)
+#if defined(OS_LINUX) || defined(OS_BSD)
   return pipe2(fds, O_CLOEXEC | O_NONBLOCK) == 0;
 #else
   int raw_fds[2];
diff --git a/src/base/files/scoped_file.cc b/src/base/files/scoped_file.cc
index 11afedd..1b8733e 100644
--- a/src/base/files/scoped_file.cc
+++ b/src/base/files/scoped_file.cc
@@ -31,7 +31,7 @@
   int ret = IGNORE_EINTR(close(fd));
 
 #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_FUCHSIA) || \
-    defined(OS_ANDROID)
+    defined(OS_ANDROID) || defined(OS_BSD)
   // NB: Some file descriptors can return errors from close() e.g. network
   // filesystems such as NFS and Linux input devices. On Linux, macOS, and
   // Fuchsia's POSIX layer, errors from close other than EBADF do not indicate
diff --git a/src/gn/args.cc b/src/gn/args.cc
index 392c0c9..e59b034 100644
--- a/src/gn/args.cc
+++ b/src/gn/args.cc
@@ -318,6 +318,8 @@
   os = "haiku";
 #elif defined(OS_SOLARIS)
   os = "solaris";
+#elif defined(OS_NETBSD)
+  os = "netbsd";
 #else
 #error Unknown OS type.
 #endif
diff --git a/src/util/exe_path.cc b/src/util/exe_path.cc
index 0a91bcc..b67318c 100644
--- a/src/util/exe_path.cc
+++ b/src/util/exe_path.cc
@@ -15,7 +15,7 @@
 #include <windows.h>
 
 #include "base/win/win_util.h"
-#elif defined(OS_FREEBSD)
+#elif defined(OS_FREEBSD) || defined(OS_NETBSD)
 #include <limits.h>
 #include <sys/sysctl.h>
 #include <sys/types.h>
@@ -69,6 +69,18 @@
   return base::FilePath(buf);
 }
 
+#elif defined(OS_NETBSD)
+
+base::FilePath GetExePath() {
+  int mib[] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME};
+  char buf[PATH_MAX];
+  size_t buf_size = PATH_MAX;
+  if (sysctl(mib, 4, buf, &buf_size, nullptr, 0) == -1) {
+    return base::FilePath();
+  }
+  return base::FilePath(buf);
+}
+
 #elif defined(OS_HAIKU)
 
 base::FilePath GetExePath() {
