Add RTLD_NOLOAD support and some related changes.

 * Aligned RTLD_ values with glibc for lp64
 * dlopen supports RTLD_NOLOAD flag
 * soinfo_unload calls find_library(.., RTLD_NOLOAD)
   instead of naive find_loaded_library_by_name()
 * dlopen changed to add child to caller soinfo instead
   of somain.

Bug: https://code.google.com/p/android/issues/detail?id=64069
Change-Id: I1a65f2c34f3e0edc6d2c41a2e408b58195feb640
diff --git a/libc/include/dlfcn.h b/libc/include/dlfcn.h
index 7daa8f7..8dde08c 100644
--- a/libc/include/dlfcn.h
+++ b/libc/include/dlfcn.h
@@ -50,15 +50,29 @@
 extern int          dladdr(const void* addr, Dl_info *info);
 
 enum {
+#if defined(__LP64__)
+  RTLD_NOW  = 2,
+#else
   RTLD_NOW  = 0,
+#endif
   RTLD_LAZY = 1,
 
   RTLD_LOCAL  = 0,
+#if defined(__LP64__)
+  RTLD_GLOBAL = 0x00100,
+#else
   RTLD_GLOBAL = 2,
+#endif
+  RTLD_NOLOAD = 4,
 };
 
+#if defined (__LP64__)
+#define RTLD_DEFAULT  ((void*) 0)
+#define RTLD_NEXT     ((void*) -1L)
+#else
 #define RTLD_DEFAULT  ((void*) 0xffffffff)
 #define RTLD_NEXT     ((void*) 0xfffffffe)
+#endif
 
 __END_DECLS