diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py
index b5277e40a8ec6c857b48cfa8dedaa380860d4269..cf949befbd59fc4767d11c8431277fb45d5c71e8 100644
--- a/var/spack/repos/builtin/packages/kokkos/package.py
+++ b/var/spack/repos/builtin/packages/kokkos/package.py
@@ -172,6 +172,8 @@ class Kokkos(CMakePackage, CudaPackage):
     conflicts("+wrapper", when="~cuda")
 
     variant("std", default="11", values=["11", "14", "17", "20"], multi=False)
+    variant("pic", default=False, description="Build position independent code")
+
     # nvcc does not currently work with C++17 or C++20
     conflicts("+cuda", when="std=17")
     conflicts("+cuda", when="std=20")
@@ -208,6 +210,9 @@ def cmake_args(self):
         if isdiy:
             options.append("-DSpack_WORKAROUND=On")
 
+        if "+pic" in spec:
+            options.append("-DCMAKE_POSITION_INDEPENDENT_CODE=ON")
+
         spack_microarches = []
         if "+cuda" in spec:
             # this is a list