define SOURCE_HELLO #include int main(void) { return puts(\"hi\"); } endef ifndef NO_DWARF define SOURCE_DWARF #include #include #include #ifndef _ELFUTILS_PREREQ #error #endif int main(void) { Dwarf *dbg = dwarf_begin(0, DWARF_C_READ); return (long)dbg; } endef endif define SOURCE_LIBELF #include int main(void) { Elf *elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; } endef define SOURCE_GLIBC #include int main(void) { const char *version = gnu_get_libc_version(); return (long)version; } endef define SOURCE_BIONIC #include int main(void) { return __ANDROID_API__; } endef define SOURCE_ELF_MMAP #include int main(void) { Elf *elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; } endef ifndef NO_NEWT define SOURCE_NEWT #include int main(void) { newtInit(); newtCls(); return newtFinished(); } endef endif ifndef NO_GTK2 define SOURCE_GTK2 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #include #pragma GCC diagnostic error \"-Wstrict-prototypes\" int main(int argc, char *argv[]) { gtk_init(&argc, &argv); return 0; } endef define SOURCE_GTK2_INFOBAR #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #include #pragma GCC diagnostic error \"-Wstrict-prototypes\" int main(void) { gtk_info_bar_new(); return 0; } endef endif ifndef NO_LIBPERL define SOURCE_PERL_EMBED #include #include int main(void) { perl_alloc(); return 0; } endef endif ifndef NO_LIBPYTHON define SOURCE_PYTHON_VERSION #include #if PY_VERSION_HEX >= 0x03000000 #error #endif int main(void){} endef define SOURCE_PYTHON_EMBED #include int main(void) { Py_Initialize(); return 0; } endef endif define SOURCE_BFD #include int main(void) { bfd_demangle(0, 0, 0); return 0; } endef define SOURCE_CPLUS_DEMANGLE extern char *cplus_demangle(const char *, int); int main(void) { cplus_demangle(0, 0); return 0; } endef define SOURCE_STRLCPY #include extern size_t strlcpy(char *dest, const char *src, size_t size); int main(void) { strlcpy(NULL, NULL, 0); return 0; } endef ifndef NO_LIBUNWIND define SOURCE_LIBUNWIND #include #include extern int UNW_OBJ(dwarf_search_unwind_table) (unw_addr_space_t as, unw_word_t ip, unw_dyn_info_t *di, unw_proc_info_t *pi, int need_unwind_info, void *arg); #define dwarf_search_unwind_table UNW_OBJ(dwarf_search_unwind_table) int main(void) { unw_addr_space_t addr_space; addr_space = unw_create_addr_space(NULL, 0); unw_init_remote(NULL, addr_space, NULL); dwarf_search_unwind_table(addr_space, 0, NULL, NULL, 0, NULL); return 0; } endef endif ifndef NO_BACKTRACE define SOURCE_BACKTRACE #include #include int main(void) { backtrace(NULL, 0); backtrace_symbols(NULL, 0); return 0; } endef endif ifndef NO_LIBAUDIT define SOURCE_LIBAUDIT #include int main(void) { return audit_open(); } endef endif define SOURCE_ON_EXIT #include int main(void) { return on_exit(NULL, NULL); } endef