The microkernel has to provide memory management and user-level-managed page faulting, thread scheduling, and IPC.

One would have to reimplement the mach/ and sysdeps/mach/ parts of glibc and libpthread. One would have to rewrite mig to generate the new IPCs. One would have to rewrite libpager to handle paging.

All mach_ calls in glibc and hurd would need to be updated.

Quite a few other Hurd tools also assume a Mach kernel and would have to be adapted or rewritten.