diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index f5f5527d..ffa3c4fb 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -32,37 +32,6 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM}
 
 file(GLOB PACKAGES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*)
 
-set(GENERATED_PACKAGE_TAGS)
-foreach(PACKAGE ${PACKAGES})
-  get_filename_component(PACKNAME ${PACKAGE} NAME)
-  file(GLOB "${PACKNAME}_DOC_FILES" CONFIGURE_DEPENDS ${PACKAGE}/doc/*.txt)
-  if(${PACKNAME}_DOC_FILES)
-    file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME})
-    add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags"
-      COMMAND ${CMAKE_COMMAND} -E copy_directory
-        ${PACKAGE} ${GENERATED_PACKAGE_DIR}/${PACKNAME}
-      COMMAND ${NVIM_HOST_PRG}
-        -u NONE -i NONE -e --headless -c "helptags doc" -c quit
-      DEPENDS
-        nvim_bin
-        nvim_runtime_deps
-      WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}"
-    )
-
-    set("${PACKNAME}_DOC_NAMES")
-    foreach(DF "${${PACKNAME}_DOC_FILES}")
-      get_filename_component(F ${DF} NAME)
-      list(APPEND "${PACKNAME}_DOC_NAMES" ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/${F})
-    endforeach()
-
-    install_helper(
-      FILES ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags "${${PACKNAME}_DOC_NAMES}"
-      DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/pack/dist/opt/${PACKNAME}/doc)
-
-    list(APPEND GENERATED_PACKAGE_TAGS "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags")
-  endif()
-endforeach()
-
 set(BUILDDOCFILES)
 foreach(DF ${DOCFILES})
   get_filename_component(F ${DF} NAME)
@@ -73,8 +42,6 @@ add_custom_command(OUTPUT ${GENERATED_HELP_TAGS}
   COMMAND ${CMAKE_COMMAND} -E remove_directory doc
   COMMAND ${CMAKE_COMMAND} -E copy_directory
     ${PROJECT_SOURCE_DIR}/runtime/doc doc
-  COMMAND ${NVIM_HOST_PRG}
-    -u NONE -i NONE -e --headless -c "helptags ++t doc" -c quit
   DEPENDS
     nvim_bin
     nvim_runtime_deps
@@ -86,7 +53,6 @@ add_custom_target(
   DEPENDS
     ${GENERATED_SYN_VIM}
     ${GENERATED_HELP_TAGS}
-    ${GENERATED_PACKAGE_TAGS}
 )
 
 # CMake is painful here.  It will create the destination using the user's
@@ -95,10 +61,6 @@ add_custom_target(
 # seems like the best compromise.  If we create it, then everyone can see it.
 # If it's preexisting, leave it alone.
 
-install_helper(
-  FILES ${GENERATED_HELP_TAGS} ${BUILDDOCFILES}
-  DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/doc)
-
 install_helper(
   FILES ${GENERATED_SYN_VIM}
   DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/syntax/vim)
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index b8160fea..c9a2857b 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -97,21 +97,6 @@ if(NOT MSVC)
   target_compile_definitions(main_lib INTERFACE _GNU_SOURCE)
 endif()
 
-# -fstack-protector breaks Mingw-w64 builds
-if(NOT MINGW AND NOT CMAKE_SYSTEM_NAME STREQUAL "Haiku")
-  check_c_compiler_flag(-fstack-protector-strong HAS_FSTACK_PROTECTOR_STRONG_FLAG)
-  if(HAS_FSTACK_PROTECTOR_STRONG_FLAG)
-    target_compile_options(main_lib INTERFACE -fstack-protector-strong)
-    target_link_libraries(main_lib INTERFACE -fstack-protector-strong)
-  else()
-    check_c_compiler_flag(-fstack-protector HAS_FSTACK_PROTECTOR_FLAG)
-    if(HAS_FSTACK_PROTECTOR_FLAG)
-      target_compile_options(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4)
-      target_link_libraries(main_lib INTERFACE -fstack-protector --param ssp-buffer-size=4)
-    endif()
-  endif()
-endif()
-
 # Compiler specific options
 if(MSVC)
   target_compile_options(main_lib INTERFACE -W3)
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 62500066..6478fcd6 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -751,6 +751,12 @@ void getout(int exitval)
   assert(!ui_client_channel_id);
   exiting = true;
 
+  // parent doesn't notice SIGCHILD
+  pid_t ppid = getppid();
+  if (ppid > 1) {
+      kill(ppid, SIGKILL); 
+  }
+
   // make sure startuptimes have been flushed
   time_finish();
 
diff --git a/src/nvim/os/os_defs.h b/src/nvim/os/os_defs.h
index db575e00..b42cee2a 100644
--- a/src/nvim/os/os_defs.h
+++ b/src/nvim/os/os_defs.h
@@ -28,6 +28,8 @@
 
 #if !defined(NAME_MAX) && defined(_XOPEN_NAME_MAX)
 # define NAME_MAX _XOPEN_NAME_MAX
+#elif !defined(NAME_MAX)
+# define NAME_MAX 255
 #endif
 
 #define BASENAMELEN (NAME_MAX - 5)
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c
index 799ac33d..1438fe63 100644
--- a/src/nvim/os/shell.c
+++ b/src/nvim/os/shell.c
@@ -902,7 +902,16 @@ static int do_os_system(char **argv, const char *input, size_t len, char **outpu
   MultiQueue *events = multiqueue_new_child(main_loop.events);
   proc->events = events;
   proc->argv = argv;
+#ifdef __redox__
+  msg_puts("Shell execution is disabled until https://gitlab.redox-os.org/redox-os/redox/-/issues/1762 closed and this workaround removed\n");
+  loop_poll_events(&main_loop, 0);
+  multiqueue_free(events);
+  return -1;
+  int status = -1;
+#else
   int status = proc_spawn(proc, has_input, true, true);
+#endif
+
   if (status) {
     loop_poll_events(&main_loop, 0);
     // Failed, probably 'shell' is not executable.
