The Hurd does not currently support the mremap function.

For the MREMAP_MAYMOVE case it is easy to work around; see [binutils]/gold/mremap.c, for example.

Also see the discussion of mmap.

IRC, freenode, #hurd, 2011-01-12

<antrik> maybe it would be easiest actually to implement mremap()?...
<braunr> antrik: i'm nto sure
<braunr> antrik: implementing mremap could be relatively easy to do
<braunr> antrik: IIRC, vm_map() supports overlapping
<antrik> braunr: yes, I think so too
<antrik> braunr: haven't checked, but I have a vague recollection that the
  fundamentals are pretty much there

open issue glibc: check if it is possible to implement mremap. I remember some discussion about this, but have not yet worked on locating it. Talk to me if you'd like to have a look at this.

IRC, OFTC, #debian-hurd, 2012-06-19

<bdefreese> OK, how the heck do you get an undefined reference to mremap?
<youpi> simply because we don't have it
<pinotree> mremap exists only on linux
<bdefreese> It's in sys/mman.h
<pinotree> on linux?
<bdefreese> No, on GNU/Hurd
<bdefreese>  /usr/include/i386-gnu/sys/mman.h
<youpi> that's just the common file with linux
<youpi> containing just the prototype
<youpi> that doesn't mean there's an implementation behind
<pinotree> youpi: hm no, linux has an own version
<youpi> uh
<bdefreese> Ah, aye, I didn't look at the implementation.. :(
<youpi> it's then odd that it was added to the generic sys/mman.h :)
<bdefreese> Just another stub?
<pinotree> ah, only few linux archs have own versions
<youpi> for the macro values I guess
<pinotree> on glibc/master
<bdefreese> Hmm, so where is MREMAP_MAYMOVE coming in from?
<youpi> rgrep on a linux box ;)
<youpi> <bits/mman.h>
<youpi> but that's again linuxish
<bdefreese> Aye but with us having that in the header it is causing some
  code to be run which utilizes mremap.  If that wasn't defined we wouldn't
  be calling it.
<youpi> ah
<youpi> we could try to remove it indeed
<bdefreese> Should I change the code to #ifdef MREMAP_MAYMOVE & !defined
<youpi> no, I said we could remove the definition of MREMAP_MAYMOVE itself