Export dlfcn.h functions as C functions

Bug: 151847750
Test: Build nanoapps and verify they don't refer to the mangled C++ name
Change-Id: I4874d6045b836580457d46d73206049b0a3dd985
diff --git a/platform/shared/include/chre/platform/shared/libc/dlfcn.h b/platform/shared/include/chre/platform/shared/libc/dlfcn.h
index f7623b3..9758378 100644
--- a/platform/shared/include/chre/platform/shared/libc/dlfcn.h
+++ b/platform/shared/include/chre/platform/shared/libc/dlfcn.h
@@ -28,6 +28,10 @@
 #define RTLD_NEXT ((void *)-1L)
 #endif  // RTLD_NEXT
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * This function parses, verifies, and loads a buffer containing an ELF
  * file, and returns an opaque handle for symbol lookup via dlsym.
@@ -58,4 +62,8 @@
  */
 int dlclose(void *handle);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif  // CHRE_PLATFORM_SHARED_DLFCN_H_
diff --git a/platform/shared/nanoapp_loader.cc b/platform/shared/nanoapp_loader.cc
index 011c963..5de7a90 100644
--- a/platform/shared/nanoapp_loader.cc
+++ b/platform/shared/nanoapp_loader.cc
@@ -125,7 +125,9 @@
     ADD_EXPORTED_C_SYMBOL(__cxa_pure_virtual),
     ADD_EXPORTED_SYMBOL(atexitOverride, "atexit"),
     ADD_EXPORTED_SYMBOL(deleteOverride, "_ZdlPv"),
+    // TODO(b/151847750): Remove export once nanoapps are migrated to C symbol.
     ADD_EXPORTED_SYMBOL(dlsym, "_Z5dlsymPvPKc"),
+    ADD_EXPORTED_C_SYMBOL(dlsym),
     ADD_EXPORTED_C_SYMBOL(memcmp),
     ADD_EXPORTED_C_SYMBOL(memcpy),
     ADD_EXPORTED_C_SYMBOL(memmove),