1 define SOURCE_HELLO 2 #include <stdio.h> 3 int main(void) 4 { 5 return puts(\"hi\"); 6 } 7 endef 8 9 ifndef NO_DWARF 10 define SOURCE_DWARF 11 #include <dwarf.h> 12 #include <elfutils/libdw.h> 13 #include <elfutils/version.h> 14 #ifndef _ELFUTILS_PREREQ 15 #error 16 #endif 17 18 int main(void) 19 { 20 Dwarf *dbg = dwarf_begin(0, DWARF_C_READ); 21 return (long)dbg; 22 } 23 endef 24 endif 25 26 define SOURCE_LIBELF 27 #include <libelf.h> 28 29 int main(void) 30 { 31 Elf *elf = elf_begin(0, ELF_C_READ, 0); 32 return (long)elf; 33 } 34 endef 35 36 define SOURCE_GLIBC 37 #include <gnu/libc-version.h> 38 39 int main(void) 40 { 41 const char *version = gnu_get_libc_version(); 42 return (long)version; 43 } 44 endef 45 46 define SOURCE_BIONIC 47 #include <android/api-level.h> 48 49 int main(void) 50 { 51 return __ANDROID_API__; 52 } 53 endef 54 55 define SOURCE_ELF_MMAP 56 #include <libelf.h> 57 int main(void) 58 { 59 Elf *elf = elf_begin(0, ELF_C_READ_MMAP, 0); 60 return (long)elf; 61 } 62 endef 63 64 define SOURCE_ELF_GETPHDRNUM 65 #include <libelf.h> 66 int main(void) 67 { 68 size_t dst; 69 return elf_getphdrnum(0, &dst); 70 } 71 endef 72 73 ifndef NO_SLANG 74 define SOURCE_SLANG 75 #include <slang.h> 76 77 int main(void) 78 { 79 return SLsmg_init_smg(); 80 } 81 endef 82 endif 83 84 ifndef NO_GTK2 85 define SOURCE_GTK2 86 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" 87 #include <gtk/gtk.h> 88 #pragma GCC diagnostic error \"-Wstrict-prototypes\" 89 90 int main(int argc, char *argv[]) 91 { 92 gtk_init(&argc, &argv); 93 94 return 0; 95 } 96 endef 97 98 define SOURCE_GTK2_INFOBAR 99 #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" 100 #include <gtk/gtk.h> 101 #pragma GCC diagnostic error \"-Wstrict-prototypes\" 102 103 int main(void) 104 { 105 gtk_info_bar_new(); 106 107 return 0; 108 } 109 endef 110 endif 111 112 ifndef NO_LIBPERL 113 define SOURCE_PERL_EMBED 114 #include <EXTERN.h> 115 #include <perl.h> 116 117 int main(void) 118 { 119 perl_alloc(); 120 return 0; 121 } 122 endef 123 endif 124 125 ifndef NO_LIBPYTHON 126 define SOURCE_PYTHON_VERSION 127 #include <Python.h> 128 #if PY_VERSION_HEX >= 0x03000000 129 #error 130 #endif 131 int main(void) 132 { 133 return 0; 134 } 135 endef 136 define SOURCE_PYTHON_EMBED 137 #include <Python.h> 138 int main(void) 139 { 140 Py_Initialize(); 141 return 0; 142 } 143 endef 144 endif 145 146 define SOURCE_BFD 147 #include <bfd.h> 148 149 int main(void) 150 { 151 bfd_demangle(0, 0, 0); 152 return 0; 153 } 154 endef 155 156 define SOURCE_CPLUS_DEMANGLE 157 extern char *cplus_demangle(const char *, int); 158 159 int main(void) 160 { 161 cplus_demangle(0, 0); 162 return 0; 163 } 164 endef 165 166 define SOURCE_STRLCPY 167 #include <stdlib.h> 168 extern size_t strlcpy(char *dest, const char *src, size_t size); 169 170 int main(void) 171 { 172 strlcpy(NULL, NULL, 0); 173 return 0; 174 } 175 endef 176 177 ifndef NO_LIBUNWIND 178 define SOURCE_LIBUNWIND 179 #include <libunwind.h> 180 #include <stdlib.h> 181 182 extern int UNW_OBJ(dwarf_search_unwind_table) (unw_addr_space_t as, 183 unw_word_t ip, 184 unw_dyn_info_t *di, 185 unw_proc_info_t *pi, 186 int need_unwind_info, void *arg); 187 188 189 #define dwarf_search_unwind_table UNW_OBJ(dwarf_search_unwind_table) 190 191 int main(void) 192 { 193 unw_addr_space_t addr_space; 194 addr_space = unw_create_addr_space(NULL, 0); 195 unw_init_remote(NULL, addr_space, NULL); 196 dwarf_search_unwind_table(addr_space, 0, NULL, NULL, 0, NULL); 197 return 0; 198 } 199 endef 200 endif 201 202 ifndef NO_BACKTRACE 203 define SOURCE_BACKTRACE 204 #include <execinfo.h> 205 #include <stdio.h> 206 207 int main(void) 208 { 209 backtrace(NULL, 0); 210 backtrace_symbols(NULL, 0); 211 return 0; 212 } 213 endef 214 endif 215 216 ifndef NO_LIBAUDIT 217 define SOURCE_LIBAUDIT 218 #include <libaudit.h> 219 220 int main(void) 221 { 222 printf(\"error message: %s\", audit_errno_to_name(0)); 223 return audit_open(); 224 } 225 endef 226 endif 227 228 define SOURCE_ON_EXIT 229 #include <stdio.h> 230 231 int main(void) 232 { 233 return on_exit(NULL, NULL); 234 } 235 endef 236 237 define SOURCE_LIBNUMA 238 #include <numa.h> 239 #include <numaif.h> 240 241 int main(void) 242 { 243 numa_available(); 244 return 0; 245 } 246 endef 247