blob: f79305739eccdbea8a7ee7dc65be5862543808a4 [file] [log] [blame]
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -03001define SOURCE_HELLO
2#include <stdio.h>
3int main(void)
4{
5 return puts(\"hi\");
6}
7endef
8
9ifndef NO_DWARF
10define SOURCE_DWARF
11#include <dwarf.h>
Robert Morella7112392010-11-16 14:16:33 -080012#include <elfutils/libdw.h>
13#include <elfutils/version.h>
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -030014#ifndef _ELFUTILS_PREREQ
15#error
16#endif
17
18int main(void)
19{
20 Dwarf *dbg = dwarf_begin(0, DWARF_C_READ);
21 return (long)dbg;
22}
23endef
24endif
25
26define SOURCE_LIBELF
27#include <libelf.h>
28
29int main(void)
30{
31 Elf *elf = elf_begin(0, ELF_C_READ, 0);
32 return (long)elf;
33}
34endef
35
36define SOURCE_GLIBC
37#include <gnu/libc-version.h>
38
39int main(void)
40{
41 const char *version = gnu_get_libc_version();
42 return (long)version;
43}
44endef
45
Irina Tirdead816ec22012-10-08 09:43:27 +030046define SOURCE_BIONIC
47#include <android/api-level.h>
48
49int main(void)
50{
51 return __ANDROID_API__;
52}
53endef
54
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -030055define SOURCE_ELF_MMAP
56#include <libelf.h>
57int main(void)
58{
59 Elf *elf = elf_begin(0, ELF_C_READ_MMAP, 0);
60 return (long)elf;
61}
62endef
63
Adrian Huntere955d5c2013-09-13 16:49:30 +030064define SOURCE_ELF_GETPHDRNUM
65#include <libelf.h>
66int main(void)
67{
68 size_t dst;
69 return elf_getphdrnum(0, &dst);
70}
71endef
72
Arnaldo Carvalho de Melo6692c262013-03-28 11:34:10 -030073ifndef NO_SLANG
74define SOURCE_SLANG
75#include <slang.h>
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -030076
77int main(void)
78{
Arnaldo Carvalho de Melo6692c262013-03-28 11:34:10 -030079 return SLsmg_init_smg();
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -030080}
81endef
82endif
83
Pekka Enbergc31a9452012-03-19 15:13:29 -030084ifndef NO_GTK2
85define SOURCE_GTK2
86#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
87#include <gtk/gtk.h>
88#pragma GCC diagnostic error \"-Wstrict-prototypes\"
89
90int main(int argc, char *argv[])
91{
92 gtk_init(&argc, &argv);
93
94 return 0;
95}
96endef
Namhyung Kima6b702c2012-05-29 13:23:01 +090097
98define SOURCE_GTK2_INFOBAR
99#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
100#include <gtk/gtk.h>
101#pragma GCC diagnostic error \"-Wstrict-prototypes\"
102
103int main(void)
104{
105 gtk_info_bar_new();
106
107 return 0;
108}
109endef
Pekka Enbergc31a9452012-03-19 15:13:29 -0300110endif
111
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -0300112ifndef NO_LIBPERL
113define SOURCE_PERL_EMBED
114#include <EXTERN.h>
115#include <perl.h>
116
117int main(void)
118{
119perl_alloc();
120return 0;
121}
122endef
123endif
124
125ifndef NO_LIBPYTHON
Michael Wittenced465c2011-04-02 21:46:09 +0000126define SOURCE_PYTHON_VERSION
127#include <Python.h>
128#if PY_VERSION_HEX >= 0x03000000
129 #error
130#endif
Arnaldo Carvalho de Melofeb8ada2012-10-09 15:15:25 -0300131int main(void)
132{
133 return 0;
134}
Michael Wittenced465c2011-04-02 21:46:09 +0000135endef
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -0300136define SOURCE_PYTHON_EMBED
137#include <Python.h>
Arnaldo Carvalho de Melof9af3a42010-06-09 16:57:39 -0300138int main(void)
139{
140 Py_Initialize();
141 return 0;
142}
143endef
144endif
145
146define SOURCE_BFD
147#include <bfd.h>
148
149int main(void)
150{
151 bfd_demangle(0, 0, 0);
152 return 0;
153}
154endef
155
156define SOURCE_CPLUS_DEMANGLE
157extern char *cplus_demangle(const char *, int);
158
159int main(void)
160{
161 cplus_demangle(0, 0);
162 return 0;
163}
164endef
165
Kirill A. Shutemovf4e7ac02010-08-21 03:38:20 +0300166define SOURCE_STRLCPY
167#include <stdlib.h>
168extern size_t strlcpy(char *dest, const char *src, size_t size);
169
170int main(void)
171{
172 strlcpy(NULL, NULL, 0);
173 return 0;
174}
175endef
Jiri Olsa6a40cd92012-08-07 15:20:44 +0200176
177ifndef NO_LIBUNWIND
178define SOURCE_LIBUNWIND
179#include <libunwind.h>
180#include <stdlib.h>
181
182extern 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
191int 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}
199endef
200endif
Irina Tirdeac9f08be2012-09-08 03:43:23 +0300201
202ifndef NO_BACKTRACE
203define SOURCE_BACKTRACE
204#include <execinfo.h>
205#include <stdio.h>
206
207int main(void)
208{
209 backtrace(NULL, 0);
210 backtrace_symbols(NULL, 0);
211 return 0;
212}
213endef
214endif
Namhyung Kim4d290892012-09-27 20:23:38 +0900215
216ifndef NO_LIBAUDIT
217define SOURCE_LIBAUDIT
218#include <libaudit.h>
219
220int main(void)
221{
Arnaldo Carvalho de Melo47a92b82013-10-02 18:25:26 -0300222 printf(\"error message: %s\", audit_errno_to_name(0));
Namhyung Kim4d290892012-09-27 20:23:38 +0900223 return audit_open();
224}
225endef
Bernhard Rosenkraenzer78da39f2012-10-08 09:43:26 +0300226endif
227
228define SOURCE_ON_EXIT
229#include <stdio.h>
230
231int main(void)
232{
233 return on_exit(NULL, NULL);
234}
235endef
Peter Hurley79d824e2013-01-27 20:51:22 -0500236
237define SOURCE_LIBNUMA
238#include <numa.h>
239#include <numaif.h>
240
241int main(void)
242{
243 numa_available();
244 return 0;
245}
Arnaldo Carvalho de Melo6692c262013-03-28 11:34:10 -0300246endef