diff --git a/Makefile b/Makefile
index f77e79e..637ca87 100644
--- a/Makefile
+++ b/Makefile
@@ -325,7 +325,7 @@
 .PHONY: all
 all: fwlib futil utillib hostlib cgpt tlcl \
 	$(if ${SDK_BUILD},utils_sdk,utils_board) \
-	$(if $(filter x86_64,${ARCH}),fuzzers) \
+	$(if $(filter x86_64,${ARCH}),$(if $(filter clang,${CC}),fuzzers)) \
 	$(if ${COV},coverage)
 
 ##############################################################################
@@ -944,6 +944,8 @@
 .PHONY: cgpt
 cgpt: ${CGPT} ${CGPT_WRAPPER}
 
+# on FreeBSD: install misc/e2fsprogs-libuuid from ports,
+# or e2fsprogs-libuuid from its binary package system.
 ${CGPT}: LDLIBS += -luuid
 
 ${CGPT}: ${CGPT_OBJS} ${UTILLIB}
@@ -1116,6 +1118,9 @@
 
 # Some utilities need external crypto functions
 CRYPTO_LIBS := $(shell ${PKG_CONFIG} --libs libcrypto)
+ifeq ($(shell uname -s), FreeBSD)
+CRYPTO_LIBS += -lcrypto
+endif
 
 ${BUILD}/utility/dumpRSAPublicKey: LDLIBS += ${CRYPTO_LIBS}
 ${BUILD}/utility/pad_digest_utility: LDLIBS += ${CRYPTO_LIBS}
diff --git a/cgpt/cgpt.h b/cgpt/cgpt.h
index 23f2f90..0747b5c 100644
--- a/cgpt/cgpt.h
+++ b/cgpt/cgpt.h
@@ -7,7 +7,7 @@
 #define VBOOT_REFERENCE_CGPT_H_
 
 #include <fcntl.h>
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 #include <features.h>
 #endif
 #include <stdint.h>
diff --git a/cgpt/cgpt_common.c b/cgpt/cgpt_common.c
index 2ace900..426be3b 100644
--- a/cgpt/cgpt_common.c
+++ b/cgpt/cgpt_common.c
@@ -9,7 +9,7 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <getopt.h>
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 #include <linux/major.h>
 #include <mtd/mtd-user.h>
 #endif
@@ -295,7 +295,7 @@
   if (fstat(fd, &stat) == -1) {
     return -1;
   }
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
   if ((stat.st_mode & S_IFMT) != S_IFREG) {
     if (ioctl(fd, BLKGETSIZE64, size) < 0) {
       return -1;
@@ -325,7 +325,7 @@
   memset(drive, 0, sizeof(struct drive));
 
   drive->fd = open(drive_path, mode |
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 		               O_LARGEFILE |
 #endif
 			       O_NOFOLLOW);
diff --git a/cgpt/cgpt_endian.h b/cgpt/cgpt_endian.h
index a40b2c1..f59ab1b 100644
--- a/cgpt/cgpt_endian.h
+++ b/cgpt/cgpt_endian.h
@@ -7,8 +7,10 @@
 #define VBOOT_REFERENCE_CGPT_ENDIAN_H_
 
 // Newer distros already have this. For those that don't, we add it here.
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 #include <endian.h>
+#elif defined(__FreeBSD__)
+#include <sys/endian.h>
 #endif
 
 #ifndef le16toh
diff --git a/cgpt/cgpt_nor.c b/cgpt/cgpt_nor.c
index f8b361f..fd18446 100644
--- a/cgpt/cgpt_nor.c
+++ b/cgpt/cgpt_nor.c
@@ -8,7 +8,9 @@
 #include <fcntl.h>
 #include <ftw.h>
 #include <inttypes.h>
+#if !defined(__FreeBSD__)
 #include <linux/major.h>
+#endif
 #include <stdbool.h>
 #include <stdarg.h>
 #include <stdlib.h>
diff --git a/cgpt/cgpt_wrapper.c b/cgpt/cgpt_wrapper.c
index 2b47383..d26682d 100644
--- a/cgpt/cgpt_wrapper.c
+++ b/cgpt/cgpt_wrapper.c
@@ -11,14 +11,18 @@
 #include <fcntl.h>
 #include <inttypes.h>
 #include <limits.h>
+#if !defined(__FreeBSD__)
 #include <linux/major.h>
+#endif
 #include <stdbool.h>
 #include <stdlib.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
+#if !defined(__FreeBSD__)
 #include <sys/sysmacros.h>
+#endif
 #include <sys/types.h>
 #include <unistd.h>
 
@@ -49,11 +53,12 @@
     return false;
   }
 
-  if (major(stat.st_rdev) != MTD_CHAR_MAJOR) {
-    return false;
+#if !defined(__FreeBSD__)
+  if (major(stat.st_rdev) == MTD_CHAR_MAJOR) {
+    return true;
   }
-
-  return true;
+#endif
+  return false;
 }
 
 // Return the element in |argv| that is an MTD device.
diff --git a/futility/cmd_vbutil_kernel.c b/futility/cmd_vbutil_kernel.c
index 1684c18..83a76f8 100644
--- a/futility/cmd_vbutil_kernel.c
+++ b/futility/cmd_vbutil_kernel.c
@@ -9,7 +9,7 @@
 #include <fcntl.h>
 #include <getopt.h>
 #include <inttypes.h>		/* For PRIu64 */
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 #include <linux/fs.h>		/* For BLKGETSIZE64 */
 #endif
 #include <stdarg.h>
@@ -173,7 +173,7 @@
 		FATAL("Unable to stat %s: %s\n", filename, strerror(errno));
 
 	if (S_ISBLK(statbuf.st_mode)) {
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 		int fd = open(filename, O_RDONLY);
 		if (fd >= 0) {
 			ioctl(fd, BLKGETSIZE64, &file_size);
diff --git a/futility/dump_kernel_config_lib.c b/futility/dump_kernel_config_lib.c
index 5f7aa20..4240e5e 100644
--- a/futility/dump_kernel_config_lib.c
+++ b/futility/dump_kernel_config_lib.c
@@ -10,7 +10,9 @@
 #include <string.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
+#if !defined (__FreeBSD__)
 #include <sys/sysmacros.h>
+#endif
 #include <sys/types.h>
 #include <unistd.h>
 
@@ -122,7 +124,11 @@
 {
 	char *newstr = NULL;
 
-	int fd = open(infile, O_RDONLY | O_CLOEXEC | O_LARGEFILE);
+	int fd = open(infile, O_RDONLY | O_CLOEXEC
+#if !defined(__FreeBSD__)
+			| O_LARGEFILE
+#endif
+			);
 	if (fd < 0) {
 		FATAL("Cannot open %s\n", infile);
 		return NULL;
diff --git a/futility/misc.c b/futility/misc.c
index de7db51..0c8a0e7 100644
--- a/futility/misc.c
+++ b/futility/misc.c
@@ -5,7 +5,7 @@
 
 #include <assert.h>
 #include <errno.h>
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 #include <linux/fs.h>		/* For BLKGETSIZE64 */
 #endif
 #include <stdarg.h>
@@ -272,7 +272,7 @@
 		return FILE_ERR_STAT;
 	}
 
-#ifndef HAVE_MACOS
+#if !defined(HAVE_MACOS) && !defined(__FreeBSD__)
 	if (S_ISBLK(sb.st_mode))
 		ioctl(fd, BLKGETSIZE64, &sb.st_size);
 #endif
diff --git a/futility/updater_utils.c b/futility/updater_utils.c
index e87094b..5a2a5e6 100644
--- a/futility/updater_utils.c
+++ b/futility/updater_utils.c
@@ -10,6 +10,9 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
+#if defined (__FreeBSD__)
+#include <sys/wait.h>
+#endif
 
 #include "2common.h"
 #include "crossystem.h"
diff --git a/host/arch/x86/lib/crossystem_arch.c b/host/arch/x86/lib/crossystem_arch.c
index 3d1c818..6a8f5a2 100644
--- a/host/arch/x86/lib/crossystem_arch.c
+++ b/host/arch/x86/lib/crossystem_arch.c
@@ -7,8 +7,10 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
+#if !defined(__FreeBSD__)
 #include <linux/nvram.h>
 #include <linux/version.h>
+#endif
 #include <stddef.h>
 #include <stdint.h>
 #include <stdio.h>
@@ -98,8 +100,10 @@
 
 static void VbFixCmosChecksum(FILE* file)
 {
+#if !defined(__FreeBSD__)
 	int fd = fileno(file);
 	ioctl(fd, NVRAM_SETCKS);
+#endif
 }
 
 
@@ -662,9 +666,11 @@
 
 	if (uname(&host) == 0) {
 		if (sscanf(host.release, "%u.%u.", &maj, &min) == 2) {
+#if !defined(__FreeBSD__)
 			if (KERNEL_VERSION(maj, min, 0) >= KERNEL_VERSION(4, 16, 0) &&
 			    *offset > 11)
 				*offset += 3;
+#endif
 		} else {
 			printf("Couldn't retrieve kernel version!\n");
 			ret = 0;
diff --git a/host/lib/flashrom.c b/host/lib/flashrom.c
index b1647ae..62ab1bc 100644
--- a/host/lib/flashrom.c
+++ b/host/lib/flashrom.c
@@ -47,6 +47,10 @@
 	char *path;
 	mode_t umask_save;
 
+#if defined(__FreeBSD__)
+#define P_tmpdir "/tmp"
+#endif
+
 	*path_out = NULL;
 	path = strdup(P_tmpdir "/vb2_flashrom.XXXXXX");
 
diff --git a/scripts/getversion.sh b/scripts/getversion.sh
index d505579..a563007 100755
--- a/scripts/getversion.sh
+++ b/scripts/getversion.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
 #
 # Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
 # Use of this source code is governed by a BSD-style license that can be
