diff --git a/posix/packages.lisp b/posix/packages.lisp
index 1398fc6..667162a 100644
--- a/posix/packages.lisp
+++ b/posix/packages.lisp
@@ -208,6 +208,7 @@
    ;; Platform-specific Functions
 
    #+linux #:fdatasync
+   #+linux #:mremap
 
    ;; Constants
 
@@ -237,6 +238,9 @@
    #:map-anon #:map-hassemaphore #:map-inherit #:map-nocore #:map-nosync
    #:map-stack
 
+   #+linux #:mremap-maymove
+   #+linux #:mremap-fixed
+
    #:ms-async #:ms-sync #:ms-invalidate
 
    #:mcl-current #:mcl-future
diff --git a/posix/unixint.lisp b/posix/unixint.lisp
index ec21add..6d3b205 100644
--- a/posix/unixint.lisp
+++ b/posix/unixint.lisp
@@ -148,6 +148,12 @@
   (constant (map-nosync "MAP_NOSYNC"))
   (constant (map-stack "MAP_STACK")))
 
+;;; mremap()
+#+linux
+(progn
+  (constant (mremap-maymove "MREMAP_MAYMOVE"))
+  (constant (mremap-fixed "MREMAP_FIXED")))
+
 ;;; msync()
 (constant (ms-async "MS_ASYNC") :documentation "msync: return immediately")
 (constant (ms-sync "MS_SYNC")
diff --git a/posix/wrappers.lisp b/posix/wrappers.lisp
index 7012193..9d7eb0c 100644
--- a/posix/wrappers.lisp
+++ b/posix/wrappers.lisp
@@ -31,6 +31,7 @@
 (define "_LARGEFILE_SOURCE")
 (define "_LARGEFILE64_SOURCE")
 (define "_FILE_OFFSET_BITS" 64)
+(define "_GNU_SOURCE")
 (c "#endif")
 
 (include "string.h" "errno.h"  "sys/types.h" "sys/stat.h"
@@ -66,6 +67,13 @@
   (fd ("int" file-descriptor-designator))
   (offset ("off_t" off)))
 
+#+linux
+(defwrapper "mremap" ("void*" (errno-wrapper :pointer))
+  (old-address :pointer)
+  (old-size ("size_t" size))
+  (new-size ("size_t" size))
+  (flags :int))
+
 (defwrapper ("stat" %stat) ("int" (errno-wrapper :int))
   (file-name ("const char*" filename-designator))
   (buf ("struct stat*" :pointer)))
