diff --git a/CMakeLists.txt b/CMakeLists.txt index c6b18bf0e8..642c2516ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,6 +299,8 @@ else() add_compile_options(-Wdouble-promotion) endif() +add_link_options(LINKER:-z,text) + if("${SERENITY_ARCH}" STREQUAL "i686") add_compile_options(-march=i686) else() diff --git a/Kernel/CMakeLists.txt b/Kernel/CMakeLists.txt index 55374465a3..b7d73ec981 100644 --- a/Kernel/CMakeLists.txt +++ b/Kernel/CMakeLists.txt @@ -437,8 +437,9 @@ add_compile_definitions(KERNEL) # It's needed because CLion doesn't understand the way we switch compilers mid-build. add_compile_definitions(__serenity__) +add_link_options(LINKER:-z,notext) + if (USE_CLANG_TOOLCHAIN) - add_link_options(LINKER:-z,notext) add_link_options(LINKER:--build-id=none) endif() diff --git a/Userland/Libraries/LibC/arch/i386/setjmp.S b/Userland/Libraries/LibC/arch/i386/setjmp.S index 9178690772..9fc704a884 100644 --- a/Userland/Libraries/LibC/arch/i386/setjmp.S +++ b/Userland/Libraries/LibC/arch/i386/setjmp.S @@ -31,7 +31,7 @@ sigsetjmp: push %eax push $0 // Set argument set push $0 // Set argument how - call sigprocmask + call sigprocmask@plt add $12, %esp .Lsaveregs: diff --git a/Userland/Libraries/LibC/arch/x86_64/setjmp.S b/Userland/Libraries/LibC/arch/x86_64/setjmp.S index e00c1ebd46..42a2f97764 100644 --- a/Userland/Libraries/LibC/arch/x86_64/setjmp.S +++ b/Userland/Libraries/LibC/arch/x86_64/setjmp.S @@ -25,7 +25,7 @@ sigsetjmp: mov $0, %rdi // Set argument how mov $0, %rsi // Set argument set lea 64(%rdi), %rdx // Set argument oldset - call sigprocmask + call sigprocmask@plt mov %r12, %rdi // Restore sigjmp_buf argument .Lsaveregs: