linker: simplify how warnings turn into errors past a certain api level.

This was motivated by the fact that most of the _anchors_ on the doc page were outdated. I've taken the simple expedient of removing those. I was then struck by the amount of copy & paste involved in showing both warning and error, so the new function takes care of that.

Change-Id: I82d3e6a6d8235a78f7cfe427b1209a1f9c83f682
diff --git a/tests/dlfcn_test.cpp b/tests/dlfcn_test.cpp
index c27adb6..57982b9 100644
--- a/tests/dlfcn_test.cpp
+++ b/tests/dlfcn_test.cpp
@@ -1584,7 +1584,7 @@
   const std::string libpath = GetPrebuiltElfDir() + "/libtest_invalid-rw_load_segment.so";
   void* handle = dlopen(libpath.c_str(), RTLD_NOW);
   ASSERT_TRUE(handle == nullptr);
-  std::string expected_dlerror = std::string("dlopen failed: \"") + libpath + "\": W+E load segments are not allowed";
+  std::string expected_dlerror = std::string("dlopen failed: \"") + libpath + "\" has load segments that are both writable and executable";
   ASSERT_STREQ(expected_dlerror.c_str(), dlerror());
 }