-void *cmalloc (size_t, size_t);
-void *xcmalloc (size_t, size_t);
-void *xcrealloc (void *, size_t, size_t);
+extern unsigned int * find_cu_tu_set (void *, unsigned int);
+
+extern void * cmalloc (size_t, size_t);
+extern void * xcalloc2 (size_t, size_t);
+extern void * xcmalloc (size_t, size_t);
+extern void * xcrealloc (void *, size_t, size_t);
+
+/* A callback into the client. Returns TRUE if there is a
+ relocation against the given debug section at the given
+ offset. */
+extern bfd_boolean reloc_at (struct dwarf_section *, dwarf_vma);
+
+extern dwarf_vma read_leb128 (unsigned char *, const unsigned char *const,
+ bfd_boolean, unsigned int *, int *);
+
+#if HAVE_LIBDEBUGINFOD
+extern unsigned char * get_build_id (void *);
+#endif
+
+static inline void
+report_leb_status (int status, const char *file, unsigned long lnum)
+{
+ if ((status & 1) != 0)
+ error (_("%s:%lu: end of data encountered whilst reading LEB\n"), file, lnum);
+ else if ((status & 2) != 0)
+ error (_("%s:%lu: read LEB value is too large to store in destination variable\n"), file, lnum);
+}
+
+#define SKIP_ULEB(start, end) \
+ do \
+ { \
+ unsigned int _len; \
+ read_leb128 (start, end, FALSE, &_len, NULL); \
+ start += _len; \
+ } \
+ while (0)
+
+#define SKIP_SLEB(start, end) \
+ do \
+ { \
+ unsigned int _len; \
+ read_leb128 (start, end, TRUE, &_len, NULL); \
+ start += _len; \
+ } \
+ while (0)