diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index b750ed7e2b..219f7f025a 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -292,6 +292,7 @@ set(KERNEL_SOURCES Syscalls/lseek.cpp Syscalls/mkdir.cpp Syscalls/mknod.cpp + Syscalls/mmap.cpp Syscalls/mount.cpp Syscalls/open.cpp Syscalls/perf_event.cpp @@ -401,7 +402,6 @@ if ("${SERENITY_ARCH}" STREQUAL "x86_64") Syscall.cpp Syscalls/execve.cpp Syscalls/fork.cpp - Syscalls/mmap.cpp Syscalls/sigaction.cpp ) diff --git a/Kernel/Syscalls/mmap.cpp b/Kernel/Syscalls/mmap.cpp index d71a170301..4931624089 100644 --- a/Kernel/Syscalls/mmap.cpp +++ b/Kernel/Syscalls/mmap.cpp @@ -6,10 +6,10 @@ */ #include +#include #include #include #include -#include #include #include #include @@ -22,6 +22,10 @@ #include #include +#if ARCH(X86_64) +# include +#endif + namespace Kernel { static bool should_make_executable_exception_for_dynamic_loader(bool make_readable, bool make_writable, bool make_executable, Memory::Region const& region) @@ -562,8 +566,10 @@ ErrorOr Process::sys$allocate_tls(Userspace initial_data, TRY(main_thread->make_thread_specific_region({})); +#if ARCH(X86_64) MSR fs_base_msr(MSR_FS_BASE); fs_base_msr.set(main_thread->thread_specific_data().get()); +#endif return m_master_tls_region.unsafe_ptr()->vaddr().get(); });