diff --git a/src/cmd/cos_gpu_driver_builder/Dockerfile b/src/cmd/cos_gpu_driver_builder/Dockerfile
index a456632..69a0553 100644
--- a/src/cmd/cos_gpu_driver_builder/Dockerfile
+++ b/src/cmd/cos_gpu_driver_builder/Dockerfile
@@ -7,5 +7,5 @@
 FROM ubuntu:latest
 LABEL maintainer="cos-containers@google.com"
 COPY --from=go-builder /work/src/cmd/cos_gpu_driver_builder/cos-gpu-driver-builder /cos-gpu-driver-builder
-RUN apt-get update && apt-get -y install ca-certificates xz-utils kmod make libc-dev libc6-dev libelf-dev
+RUN apt-get update && apt-get -y install ca-certificates xz-utils kmod make libc-dev libc6-dev libelf-dev binutils
 ENTRYPOINT ["/cos-gpu-driver-builder"]
diff --git a/src/cmd/cos_gpu_driver_builder/internal/builder/builder.go b/src/cmd/cos_gpu_driver_builder/internal/builder/builder.go
index 3cf14e0..5a2f2a3 100644
--- a/src/cmd/cos_gpu_driver_builder/internal/builder/builder.go
+++ b/src/cmd/cos_gpu_driver_builder/internal/builder/builder.go
@@ -61,6 +61,15 @@
 	if err = cos.ForceSymlinkLinker(filepath.Join(dirName, linkerLocation)); err != nil {
 		return "", "", fmt.Errorf("failed to create symlink to COS linker: %v", err)
 	}
+	cc := os.Getenv("CC")
+	if cc == "" {
+		return "", "", fmt.Errorf("failed to find CC in env")
+	} else {
+		// create a wrapper removing -Werror=strict-prototypes from the CC command line.
+		if err = cos.AddCCWrapperToPath(dirName, dirName, cc); err != nil {
+			return "", "", fmt.Errorf("failed to create CC wrapper: %v", err)
+		}
+	}
 	// run NVIDIA driver package
 	if err = os.Chmod(filepath.Join(dirName, nvidiaInstaller), defaultFilePermission); err != nil {
 		return "", "", err
diff --git a/src/cmd/cos_gpu_driver_builder/main.go b/src/cmd/cos_gpu_driver_builder/main.go
index fdc93d3..9801ea2 100644
--- a/src/cmd/cos_gpu_driver_builder/main.go
+++ b/src/cmd/cos_gpu_driver_builder/main.go
@@ -23,7 +23,8 @@
 
 func main() {
 	flag.Parse()
-
+	// always run driver builder with verbose logging.
+	flag.Set("v", "2")
 	if *bucket == "" && *configDir == "" {
 		log.Fatal("empty watcher gcs dir and config file dir")
 	}
diff --git a/src/pkg/cos/cos.go b/src/pkg/cos/cos.go
index 68b1517..c07ca41 100644
--- a/src/pkg/cos/cos.go
+++ b/src/pkg/cos/cos.go
@@ -258,3 +258,25 @@
 func symlinkLinker(symlinkPath string) error {
 	return os.Symlink("x86_64-cros-linux-gnu-ld", symlinkPath)
 }
+
+// Creates a CC wrapper and adds it to the env PATH. Newer versions of LLVM have
+// different -Wstrict-prototypes behavior that impacts the nvidia installer. The
+// kernel always uses -Werror=strict-prototypes by default. This wrapper removes
+// -Werror=strict-prototypes from the CC command line.
+func AddCCWrapperToPath(toolchainDir, workDir, cc string) error {
+	wrapper := `#!/bin/bash
+for arg; do
+  shift
+  if [[ "${arg}" == "-Werror=strict-prototypes" ]]; then continue; fi
+  set -- "$@" "${arg}"
+done
+`
+	wrapper += fmt.Sprintf("exec %s/bin/%s $@", toolchainDir, cc)
+	if err := os.WriteFile(filepath.Join(workDir, cc), []byte(wrapper), 0755); err != nil {
+		return err
+	}
+	log.V(2).Info("Creating a CC wrapper removing -Werror=strict-prototypes from the CC command line.")
+	log.V(2).Info(wrapper)
+	os.Setenv("PATH", fmt.Sprintf("%s:%s", workDir, os.Getenv("PATH")))
+	return nil
+}
