Apparently some architectures have a signed off_t.  Sigh.

diff --git a/klibc/mmap.c b/klibc/mmap.c
index 48fe456..b81c179 100644
--- a/klibc/mmap.c
+++ b/klibc/mmap.c
@@ -35,7 +35,7 @@
     return MAP_FAILED;
   }
 
-  return mmap2(start, length, prot, flags, fd, offset >> MMAP2_SHIFT);
+  return mmap2(start, length, prot, flags, fd, (size_t)offset >> MMAP2_SHIFT);
 }
 
 #else
diff --git a/mmap.c b/mmap.c
index 48fe456..b81c179 100644
--- a/mmap.c
+++ b/mmap.c
@@ -35,7 +35,7 @@
     return MAP_FAILED;
   }
 
-  return mmap2(start, length, prot, flags, fd, offset >> MMAP2_SHIFT);
+  return mmap2(start, length, prot, flags, fd, (size_t)offset >> MMAP2_SHIFT);
 }
 
 #else