More linker cleanup.
Change-Id: I9fb3c7c0d4b4ffef0eeaf092d4e30ffe63a08671
diff --git a/linker/linker.h b/linker/linker.h
index dac555a..cef6905 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -36,6 +36,15 @@
#include <link.h>
+#include <private/debug_format.h>
+
+#define DL_ERR(fmt, x...) \
+ do { \
+ __libc_format_buffer(linker_get_error_buffer(), linker_get_error_buffer_size(), fmt, ##x); \
+ /* If LD_DEBUG is set high enough, log every dlerror(3) message. */ \
+ DEBUG("%s\n", linker_get_error_buffer()); \
+ } while(0)
+
// Returns the address of the page containing address 'x'.
#define PAGE_START(x) ((x) & PAGE_MASK)
@@ -169,7 +178,6 @@
Elf32_Sym* dlsym_linear_lookup(const char* name, soinfo** found, soinfo* start);
soinfo* find_containing_library(const void* addr);
-const char* linker_get_error();
Elf32_Sym* dladdr_find_symbol(soinfo* si, const void* addr);
Elf32_Sym* dlsym_handle_lookup(soinfo* si, const char* name);
@@ -177,4 +185,7 @@
void debuggerd_init();
extern "C" void notify_gdb_of_libraries();
+char* linker_get_error_buffer();
+size_t linker_get_error_buffer_size();
+
#endif