Merge "Send developers straight to the text relocation docs."
diff --git a/linker/linker.cpp b/linker/linker.cpp
index d31c652..f43d6fc 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3250,13 +3250,16 @@
   if (has_text_relocations) {
     // Fail if app is targeting M or above.
     if (get_application_target_sdk_version() >= __ANDROID_API_M__) {
-      DL_ERR_AND_LOG("\"%s\" has text relocations", get_realpath());
+      DL_ERR_AND_LOG("\"%s\" has text relocations (https://android.googlesource.com/platform/"
+                     "bionic/+/master/android-changes-for-ndk-developers.md#Text-Relocations-"
+                     "Enforced-for-API-level-23)", get_realpath());
       return false;
     }
     // Make segments writable to allow text relocations to work properly. We will later call
     // phdr_table_protect_segments() after all of them are applied.
-    DL_WARN("\"%s\" has text relocations. This is wasting memory and prevents "
-            "security hardening. Please fix.", get_realpath());
+    DL_WARN("\"%s\" has text relocations (https://android.googlesource.com/platform/"
+            "bionic/+/master/android-changes-for-ndk-developers.md#Text-Relocations-Enforced-"
+            "for-API-level-23)", get_realpath());
     add_dlwarning(get_realpath(), "text relocations");
     if (phdr_table_unprotect_segments(phdr, phnum, load_bias) < 0) {
       DL_ERR("can't unprotect loadable segments for \"%s\": %s",