Stop using __LIBC_HIDDEN__ in linker_main.cpp.

This only adds confusion now we use linker maps.

Add the missing "C", and mark this as const too.

Change-Id: I3ac60b2576cb8cf43788dfe3473e259a25ae8234
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index 4a103fa..51c1a56 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -580,7 +580,9 @@
 const unsigned kRelSzTag = DT_RELSZ;
 #endif
 
-extern __LIBC_HIDDEN__ ElfW(Ehdr) __ehdr_start;
+// Magic linker-provided pointer to the ELF header.
+// Hidden so it's accessible before linker relocations have been processed.
+extern "C" const ElfW(Ehdr) __ehdr_start __attribute__((__visibility__("hidden")));
 
 static void call_ifunc_resolvers_for_section(RelType* begin, RelType* end) {
   auto ehdr = reinterpret_cast<ElfW(Addr)>(&__ehdr_start);