xref: /llvm-project/lld/test/MachO/tools/generate-thunkable-program.py (revision f98ee40f4b5d7474fc67e82824bf6abbaedb7b1c)
193c8559bSGreg McGary#!/usr/bin/env python3
293c8559bSGreg McGary
393c8559bSGreg McGary"""Generate many skeletal functions with a thick call graph spanning a
493c8559bSGreg McGarylarge address space to induce lld to create branch-islands for arm64.
593c8559bSGreg McGary
693c8559bSGreg McGary"""
793c8559bSGreg McGaryfrom __future__ import print_function
893c8559bSGreg McGaryimport random
993c8559bSGreg McGaryimport argparse
1093c8559bSGreg McGaryimport string
1193c8559bSGreg McGaryfrom pprint import pprint
1293c8559bSGreg McGaryfrom math import factorial
1393c8559bSGreg McGaryfrom itertools import permutations
1493c8559bSGreg McGary
1593c8559bSGreg McGary# This list comes from libSystem.tbd and contains a sizeable subset
1693c8559bSGreg McGary# of dylib calls available for all MacOS target archs.
1793c8559bSGreg McGarylibSystem_calls = (
18*f98ee40fSTobias Hieta    "__CurrentRuneLocale",
19*f98ee40fSTobias Hieta    "__DefaultRuneLocale",
20*f98ee40fSTobias Hieta    "__Exit",
21*f98ee40fSTobias Hieta    "__NSGetArgc",
22*f98ee40fSTobias Hieta    "__NSGetArgv",
23*f98ee40fSTobias Hieta    "__NSGetEnviron",
24*f98ee40fSTobias Hieta    "__NSGetMachExecuteHeader",
25*f98ee40fSTobias Hieta    "__NSGetProgname",
26*f98ee40fSTobias Hieta    "__PathLocale",
27*f98ee40fSTobias Hieta    "__Read_RuneMagi",
28*f98ee40fSTobias Hieta    "___Balloc_D2A",
29*f98ee40fSTobias Hieta    "___Bfree_D2A",
30*f98ee40fSTobias Hieta    "___ULtod_D2A",
31*f98ee40fSTobias Hieta    "____mb_cur_max",
32*f98ee40fSTobias Hieta    "____mb_cur_max_l",
33*f98ee40fSTobias Hieta    "____runetype",
34*f98ee40fSTobias Hieta    "____runetype_l",
35*f98ee40fSTobias Hieta    "____tolower",
36*f98ee40fSTobias Hieta    "____tolower_l",
37*f98ee40fSTobias Hieta    "____toupper",
38*f98ee40fSTobias Hieta    "____toupper_l",
39*f98ee40fSTobias Hieta    "___add_ovflpage",
40*f98ee40fSTobias Hieta    "___addel",
41*f98ee40fSTobias Hieta    "___any_on_D2A",
42*f98ee40fSTobias Hieta    "___assert_rtn",
43*f98ee40fSTobias Hieta    "___b2d_D2A",
44*f98ee40fSTobias Hieta    "___big_delete",
45*f98ee40fSTobias Hieta    "___big_insert",
46*f98ee40fSTobias Hieta    "___big_keydata",
47*f98ee40fSTobias Hieta    "___big_return",
48*f98ee40fSTobias Hieta    "___big_split",
49*f98ee40fSTobias Hieta    "___bigtens_D2A",
50*f98ee40fSTobias Hieta    "___bt_close",
51*f98ee40fSTobias Hieta    "___bt_cmp",
52*f98ee40fSTobias Hieta    "___bt_defcmp",
53*f98ee40fSTobias Hieta    "___bt_defpfx",
54*f98ee40fSTobias Hieta    "___bt_delete",
55*f98ee40fSTobias Hieta    "___bt_dleaf",
56*f98ee40fSTobias Hieta    "___bt_fd",
57*f98ee40fSTobias Hieta    "___bt_free",
58*f98ee40fSTobias Hieta    "___bt_get",
59*f98ee40fSTobias Hieta    "___bt_new",
60*f98ee40fSTobias Hieta    "___bt_open",
61*f98ee40fSTobias Hieta    "___bt_pgin",
62*f98ee40fSTobias Hieta    "___bt_pgout",
63*f98ee40fSTobias Hieta    "___bt_put",
64*f98ee40fSTobias Hieta    "___bt_ret",
65*f98ee40fSTobias Hieta    "___bt_search",
66*f98ee40fSTobias Hieta    "___bt_seq",
67*f98ee40fSTobias Hieta    "___bt_setcur",
68*f98ee40fSTobias Hieta    "___bt_split",
69*f98ee40fSTobias Hieta    "___bt_sync",
70*f98ee40fSTobias Hieta    "___buf_free",
71*f98ee40fSTobias Hieta    "___call_hash",
72*f98ee40fSTobias Hieta    "___cleanup",
73*f98ee40fSTobias Hieta    "___cmp_D2A",
74*f98ee40fSTobias Hieta    "___collate_equiv_match",
75*f98ee40fSTobias Hieta    "___collate_load_error",
76*f98ee40fSTobias Hieta    "___collate_lookup",
77*f98ee40fSTobias Hieta    "___collate_lookup_l",
78*f98ee40fSTobias Hieta    "___copybits_D2A",
79*f98ee40fSTobias Hieta    "___cxa_atexit",
80*f98ee40fSTobias Hieta    "___cxa_finalize",
81*f98ee40fSTobias Hieta    "___cxa_finalize_ranges",
82*f98ee40fSTobias Hieta    "___cxa_thread_atexit",
83*f98ee40fSTobias Hieta    "___d2b_D2A",
84*f98ee40fSTobias Hieta    "___dbpanic",
85*f98ee40fSTobias Hieta    "___decrement_D2A",
86*f98ee40fSTobias Hieta    "___default_hash",
87*f98ee40fSTobias Hieta    "___default_utx",
88*f98ee40fSTobias Hieta    "___delpair",
89*f98ee40fSTobias Hieta    "___diff_D2A",
90*f98ee40fSTobias Hieta    "___dtoa",
91*f98ee40fSTobias Hieta    "___expand_table",
92*f98ee40fSTobias Hieta    "___fflush",
93*f98ee40fSTobias Hieta    "___fgetwc",
94*f98ee40fSTobias Hieta    "___find_bigpair",
95*f98ee40fSTobias Hieta    "___find_last_page",
96*f98ee40fSTobias Hieta    "___fix_locale_grouping_str",
97*f98ee40fSTobias Hieta    "___fread",
98*f98ee40fSTobias Hieta    "___free_ovflpage",
99*f98ee40fSTobias Hieta    "___freedtoa",
100*f98ee40fSTobias Hieta    "___gdtoa",
101*f98ee40fSTobias Hieta    "___gdtoa_locks",
102*f98ee40fSTobias Hieta    "___get_buf",
103*f98ee40fSTobias Hieta    "___get_page",
104*f98ee40fSTobias Hieta    "___gethex_D2A",
105*f98ee40fSTobias Hieta    "___getonlyClocaleconv",
106*f98ee40fSTobias Hieta    "___hash_open",
107*f98ee40fSTobias Hieta    "___hdtoa",
108*f98ee40fSTobias Hieta    "___hexdig_D2A",
109*f98ee40fSTobias Hieta    "___hexdig_init_D2A",
110*f98ee40fSTobias Hieta    "___hexnan_D2A",
111*f98ee40fSTobias Hieta    "___hi0bits_D2A",
112*f98ee40fSTobias Hieta    "___hldtoa",
113*f98ee40fSTobias Hieta    "___i2b_D2A",
114*f98ee40fSTobias Hieta    "___ibitmap",
115*f98ee40fSTobias Hieta    "___increment_D2A",
116*f98ee40fSTobias Hieta    "___isctype",
117*f98ee40fSTobias Hieta    "___istype",
118*f98ee40fSTobias Hieta    "___istype_l",
119*f98ee40fSTobias Hieta    "___ldtoa",
120*f98ee40fSTobias Hieta    "___libc_init",
121*f98ee40fSTobias Hieta    "___lo0bits_D2A",
122*f98ee40fSTobias Hieta    "___log2",
123*f98ee40fSTobias Hieta    "___lshift_D2A",
124*f98ee40fSTobias Hieta    "___maskrune",
125*f98ee40fSTobias Hieta    "___maskrune_l",
126*f98ee40fSTobias Hieta    "___match_D2A",
127*f98ee40fSTobias Hieta    "___mb_cur_max",
128*f98ee40fSTobias Hieta    "___mb_sb_limit",
129*f98ee40fSTobias Hieta    "___memccpy_chk",
130*f98ee40fSTobias Hieta    "___memcpy_chk",
131*f98ee40fSTobias Hieta    "___memmove_chk",
132*f98ee40fSTobias Hieta    "___memset_chk",
133*f98ee40fSTobias Hieta    "___mult_D2A",
134*f98ee40fSTobias Hieta    "___multadd_D2A",
135*f98ee40fSTobias Hieta    "___nrv_alloc_D2A",
136*f98ee40fSTobias Hieta    "___opendir2",
137*f98ee40fSTobias Hieta    "___ovfl_delete",
138*f98ee40fSTobias Hieta    "___ovfl_get",
139*f98ee40fSTobias Hieta    "___ovfl_put",
140*f98ee40fSTobias Hieta    "___pow5mult_D2A",
141*f98ee40fSTobias Hieta    "___put_page",
142*f98ee40fSTobias Hieta    "___quorem_D2A",
143*f98ee40fSTobias Hieta    "___ratio_D2A",
144*f98ee40fSTobias Hieta    "___rec_close",
145*f98ee40fSTobias Hieta    "___rec_delete",
146*f98ee40fSTobias Hieta    "___rec_dleaf",
147*f98ee40fSTobias Hieta    "___rec_fd",
148*f98ee40fSTobias Hieta    "___rec_fmap",
149*f98ee40fSTobias Hieta    "___rec_fpipe",
150*f98ee40fSTobias Hieta    "___rec_get",
151*f98ee40fSTobias Hieta    "___rec_iput",
152*f98ee40fSTobias Hieta    "___rec_open",
153*f98ee40fSTobias Hieta    "___rec_put",
154*f98ee40fSTobias Hieta    "___rec_ret",
155*f98ee40fSTobias Hieta    "___rec_search",
156*f98ee40fSTobias Hieta    "___rec_seq",
157*f98ee40fSTobias Hieta    "___rec_sync",
158*f98ee40fSTobias Hieta    "___rec_vmap",
159*f98ee40fSTobias Hieta    "___rec_vpipe",
160*f98ee40fSTobias Hieta    "___reclaim_buf",
161*f98ee40fSTobias Hieta    "___rshift_D2A",
162*f98ee40fSTobias Hieta    "___rv_alloc_D2A",
163*f98ee40fSTobias Hieta    "___s2b_D2A",
164*f98ee40fSTobias Hieta    "___sF",
165*f98ee40fSTobias Hieta    "___sclose",
166*f98ee40fSTobias Hieta    "___sdidinit",
167*f98ee40fSTobias Hieta    "___set_ones_D2A",
168*f98ee40fSTobias Hieta    "___setonlyClocaleconv",
169*f98ee40fSTobias Hieta    "___sflags",
170*f98ee40fSTobias Hieta    "___sflush",
171*f98ee40fSTobias Hieta    "___sfp",
172*f98ee40fSTobias Hieta    "___sfvwrite",
173*f98ee40fSTobias Hieta    "___sglue",
174*f98ee40fSTobias Hieta    "___sinit",
175*f98ee40fSTobias Hieta    "___slbexpand",
176*f98ee40fSTobias Hieta    "___smakebuf",
177*f98ee40fSTobias Hieta    "___snprintf_chk",
178*f98ee40fSTobias Hieta    "___snprintf_object_size_chk",
179*f98ee40fSTobias Hieta    "___split_page",
180*f98ee40fSTobias Hieta    "___sprintf_chk",
181*f98ee40fSTobias Hieta    "___sprintf_object_size_chk",
182*f98ee40fSTobias Hieta    "___sread",
183*f98ee40fSTobias Hieta    "___srefill",
184*f98ee40fSTobias Hieta    "___srget",
185*f98ee40fSTobias Hieta    "___sseek",
186*f98ee40fSTobias Hieta    "___stack_chk_fail",
187*f98ee40fSTobias Hieta    "___stack_chk_guard",
188*f98ee40fSTobias Hieta    "___stderrp",
189*f98ee40fSTobias Hieta    "___stdinp",
190*f98ee40fSTobias Hieta    "___stdoutp",
191*f98ee40fSTobias Hieta    "___stpcpy_chk",
192*f98ee40fSTobias Hieta    "___stpncpy_chk",
193*f98ee40fSTobias Hieta    "___strcat_chk",
194*f98ee40fSTobias Hieta    "___strcp_D2A",
195*f98ee40fSTobias Hieta    "___strcpy_chk",
196*f98ee40fSTobias Hieta    "___strlcat_chk",
197*f98ee40fSTobias Hieta    "___strlcpy_chk",
198*f98ee40fSTobias Hieta    "___strncat_chk",
199*f98ee40fSTobias Hieta    "___strncpy_chk",
200*f98ee40fSTobias Hieta    "___strtodg",
201*f98ee40fSTobias Hieta    "___strtopdd",
202*f98ee40fSTobias Hieta    "___sum_D2A",
203*f98ee40fSTobias Hieta    "___svfscanf",
204*f98ee40fSTobias Hieta    "___swbuf",
205*f98ee40fSTobias Hieta    "___swhatbuf",
206*f98ee40fSTobias Hieta    "___swrite",
207*f98ee40fSTobias Hieta    "___swsetup",
208*f98ee40fSTobias Hieta    "___tens_D2A",
209*f98ee40fSTobias Hieta    "___tinytens_D2A",
210*f98ee40fSTobias Hieta    "___tolower",
211*f98ee40fSTobias Hieta    "___tolower_l",
212*f98ee40fSTobias Hieta    "___toupper",
213*f98ee40fSTobias Hieta    "___toupper_l",
214*f98ee40fSTobias Hieta    "___trailz_D2A",
215*f98ee40fSTobias Hieta    "___ulp_D2A",
216*f98ee40fSTobias Hieta    "___ungetc",
217*f98ee40fSTobias Hieta    "___ungetwc",
218*f98ee40fSTobias Hieta    "___vsnprintf_chk",
219*f98ee40fSTobias Hieta    "___vsprintf_chk",
220*f98ee40fSTobias Hieta    "___wcwidth",
221*f98ee40fSTobias Hieta    "___wcwidth_l",
222*f98ee40fSTobias Hieta    "__allocenvstate",
223*f98ee40fSTobias Hieta    "__atexit_receipt",
224*f98ee40fSTobias Hieta    "__c_locale",
225*f98ee40fSTobias Hieta    "__cleanup",
226*f98ee40fSTobias Hieta    "__closeutx",
227*f98ee40fSTobias Hieta    "__copyenv",
228*f98ee40fSTobias Hieta    "__cthread_init_routine",
229*f98ee40fSTobias Hieta    "__deallocenvstate",
230*f98ee40fSTobias Hieta    "__endutxent",
231*f98ee40fSTobias Hieta    "__flockfile_debug_stub",
232*f98ee40fSTobias Hieta    "__fseeko",
233*f98ee40fSTobias Hieta    "__ftello",
234*f98ee40fSTobias Hieta    "__fwalk",
235*f98ee40fSTobias Hieta    "__getenvp",
236*f98ee40fSTobias Hieta    "__getutxent",
237*f98ee40fSTobias Hieta    "__getutxid",
238*f98ee40fSTobias Hieta    "__getutxline",
239*f98ee40fSTobias Hieta    "__inet_aton_check",
240*f98ee40fSTobias Hieta    "__init_clock_port",
241*f98ee40fSTobias Hieta    "__int_to_time",
242*f98ee40fSTobias Hieta    "__libc_fork_child",
243*f98ee40fSTobias Hieta    "__libc_initializer",
244*f98ee40fSTobias Hieta    "__long_to_time",
245*f98ee40fSTobias Hieta    "__mkpath_np",
246*f98ee40fSTobias Hieta    "__mktemp",
247*f98ee40fSTobias Hieta    "__openutx",
248*f98ee40fSTobias Hieta    "__os_assert_log",
249*f98ee40fSTobias Hieta    "__os_assert_log_ctx",
250*f98ee40fSTobias Hieta    "__os_assumes_log",
251*f98ee40fSTobias Hieta    "__os_assumes_log_ctx",
252*f98ee40fSTobias Hieta    "__os_avoid_tail_call",
253*f98ee40fSTobias Hieta    "__os_crash",
254*f98ee40fSTobias Hieta    "__os_crash_callback",
255*f98ee40fSTobias Hieta    "__os_crash_fmt",
256*f98ee40fSTobias Hieta    "__os_debug_log",
257*f98ee40fSTobias Hieta    "__os_debug_log_error_str",
258*f98ee40fSTobias Hieta    "__putenvp",
259*f98ee40fSTobias Hieta    "__pututxline",
260*f98ee40fSTobias Hieta    "__rand48_add",
261*f98ee40fSTobias Hieta    "__rand48_mult",
262*f98ee40fSTobias Hieta    "__rand48_seed",
263*f98ee40fSTobias Hieta    "__readdir_unlocked",
264*f98ee40fSTobias Hieta    "__reclaim_telldir",
265*f98ee40fSTobias Hieta    "__seekdir",
266*f98ee40fSTobias Hieta    "__setenvp",
267*f98ee40fSTobias Hieta    "__setutxent",
268*f98ee40fSTobias Hieta    "__sigaction_nobind",
269*f98ee40fSTobias Hieta    "__sigintr",
270*f98ee40fSTobias Hieta    "__signal_nobind",
271*f98ee40fSTobias Hieta    "__sigvec_nobind",
272*f98ee40fSTobias Hieta    "__sread",
273*f98ee40fSTobias Hieta    "__sseek",
274*f98ee40fSTobias Hieta    "__subsystem_init",
275*f98ee40fSTobias Hieta    "__swrite",
276*f98ee40fSTobias Hieta    "__time32_to_time",
277*f98ee40fSTobias Hieta    "__time64_to_time",
278*f98ee40fSTobias Hieta    "__time_to_int",
279*f98ee40fSTobias Hieta    "__time_to_long",
280*f98ee40fSTobias Hieta    "__time_to_time32",
281*f98ee40fSTobias Hieta    "__time_to_time64",
282*f98ee40fSTobias Hieta    "__unsetenvp",
283*f98ee40fSTobias Hieta    "__utmpxname",
284*f98ee40fSTobias Hieta    "_a64l",
285*f98ee40fSTobias Hieta    "_abort",
286*f98ee40fSTobias Hieta    "_abort_report_np",
287*f98ee40fSTobias Hieta    "_abs",
288*f98ee40fSTobias Hieta    "_acl_add_flag_np",
289*f98ee40fSTobias Hieta    "_acl_add_perm",
290*f98ee40fSTobias Hieta    "_acl_calc_mask",
291*f98ee40fSTobias Hieta    "_acl_clear_flags_np",
292*f98ee40fSTobias Hieta    "_acl_clear_perms",
293*f98ee40fSTobias Hieta    "_acl_copy_entry",
294*f98ee40fSTobias Hieta    "_acl_copy_ext",
295*f98ee40fSTobias Hieta    "_acl_copy_ext_native",
296*f98ee40fSTobias Hieta    "_acl_copy_int",
297*f98ee40fSTobias Hieta    "_acl_copy_int_native",
298*f98ee40fSTobias Hieta    "_acl_create_entry",
299*f98ee40fSTobias Hieta    "_acl_create_entry_np",
300*f98ee40fSTobias Hieta    "_acl_delete_def_file",
301*f98ee40fSTobias Hieta    "_acl_delete_entry",
302*f98ee40fSTobias Hieta    "_acl_delete_fd_np",
303*f98ee40fSTobias Hieta    "_acl_delete_file_np",
304*f98ee40fSTobias Hieta    "_acl_delete_flag_np",
305*f98ee40fSTobias Hieta    "_acl_delete_link_np",
306*f98ee40fSTobias Hieta    "_acl_delete_perm",
307*f98ee40fSTobias Hieta    "_acl_dup",
308*f98ee40fSTobias Hieta    "_acl_free",
309*f98ee40fSTobias Hieta    "_acl_from_text",
310*f98ee40fSTobias Hieta    "_acl_get_entry",
311*f98ee40fSTobias Hieta    "_acl_get_fd",
312*f98ee40fSTobias Hieta    "_acl_get_fd_np",
313*f98ee40fSTobias Hieta    "_acl_get_file",
314*f98ee40fSTobias Hieta    "_acl_get_flag_np",
315*f98ee40fSTobias Hieta    "_acl_get_flagset_np",
316*f98ee40fSTobias Hieta    "_acl_get_link_np",
317*f98ee40fSTobias Hieta    "_acl_get_perm_np",
318*f98ee40fSTobias Hieta    "_acl_get_permset",
319*f98ee40fSTobias Hieta    "_acl_get_permset_mask_np",
320*f98ee40fSTobias Hieta    "_acl_get_qualifier",
321*f98ee40fSTobias Hieta    "_acl_get_tag_type",
322*f98ee40fSTobias Hieta    "_acl_init",
323*f98ee40fSTobias Hieta    "_acl_maximal_permset_mask_np",
324*f98ee40fSTobias Hieta    "_acl_set_fd",
325*f98ee40fSTobias Hieta    "_acl_set_fd_np",
326*f98ee40fSTobias Hieta    "_acl_set_file",
327*f98ee40fSTobias Hieta    "_acl_set_flagset_np",
328*f98ee40fSTobias Hieta    "_acl_set_link_np",
329*f98ee40fSTobias Hieta    "_acl_set_permset",
330*f98ee40fSTobias Hieta    "_acl_set_permset_mask_np",
331*f98ee40fSTobias Hieta    "_acl_set_qualifier",
332*f98ee40fSTobias Hieta    "_acl_set_tag_type",
333*f98ee40fSTobias Hieta    "_acl_size",
334*f98ee40fSTobias Hieta    "_acl_to_text",
335*f98ee40fSTobias Hieta    "_acl_valid",
336*f98ee40fSTobias Hieta    "_acl_valid_fd_np",
337*f98ee40fSTobias Hieta    "_acl_valid_file_np",
338*f98ee40fSTobias Hieta    "_acl_valid_link",
339*f98ee40fSTobias Hieta    "_addr2ascii",
340*f98ee40fSTobias Hieta    "_alarm",
341*f98ee40fSTobias Hieta    "_alphasort",
342*f98ee40fSTobias Hieta    "_arc4random",
343*f98ee40fSTobias Hieta    "_arc4random_addrandom",
344*f98ee40fSTobias Hieta    "_arc4random_buf",
345*f98ee40fSTobias Hieta    "_arc4random_stir",
346*f98ee40fSTobias Hieta    "_arc4random_uniform",
347*f98ee40fSTobias Hieta    "_ascii2addr",
348*f98ee40fSTobias Hieta    "_asctime",
349*f98ee40fSTobias Hieta    "_asctime_r",
350*f98ee40fSTobias Hieta    "_asprintf",
351*f98ee40fSTobias Hieta    "_asprintf_l",
352*f98ee40fSTobias Hieta    "_asxprintf",
353*f98ee40fSTobias Hieta    "_asxprintf_exec",
354*f98ee40fSTobias Hieta    "_atexit",
355*f98ee40fSTobias Hieta    "_atexit_b",
356*f98ee40fSTobias Hieta    "_atof",
357*f98ee40fSTobias Hieta    "_atof_l",
358*f98ee40fSTobias Hieta    "_atoi",
359*f98ee40fSTobias Hieta    "_atoi_l",
360*f98ee40fSTobias Hieta    "_atol",
361*f98ee40fSTobias Hieta    "_atol_l",
362*f98ee40fSTobias Hieta    "_atoll",
363*f98ee40fSTobias Hieta    "_atoll_l",
364*f98ee40fSTobias Hieta    "_backtrace",
365*f98ee40fSTobias Hieta    "_backtrace_from_fp",
366*f98ee40fSTobias Hieta    "_backtrace_image_offsets",
367*f98ee40fSTobias Hieta    "_backtrace_symbols",
368*f98ee40fSTobias Hieta    "_backtrace_symbols_fd",
369*f98ee40fSTobias Hieta    "_basename",
370*f98ee40fSTobias Hieta    "_basename_r",
371*f98ee40fSTobias Hieta    "_bcopy",
372*f98ee40fSTobias Hieta    "_brk",
373*f98ee40fSTobias Hieta    "_bsd_signal",
374*f98ee40fSTobias Hieta    "_bsearch",
375*f98ee40fSTobias Hieta    "_bsearch_b",
376*f98ee40fSTobias Hieta    "_btowc",
377*f98ee40fSTobias Hieta    "_btowc_l",
378*f98ee40fSTobias Hieta    "_catclose",
379*f98ee40fSTobias Hieta    "_catgets",
380*f98ee40fSTobias Hieta    "_catopen",
381*f98ee40fSTobias Hieta    "_cfgetispeed",
382*f98ee40fSTobias Hieta    "_cfgetospeed",
383*f98ee40fSTobias Hieta    "_cfmakeraw",
384*f98ee40fSTobias Hieta    "_cfsetispeed",
385*f98ee40fSTobias Hieta    "_cfsetospeed",
386*f98ee40fSTobias Hieta    "_cfsetspeed",
387*f98ee40fSTobias Hieta    "_cgetcap",
388*f98ee40fSTobias Hieta    "_cgetclose",
389*f98ee40fSTobias Hieta    "_cgetent",
390*f98ee40fSTobias Hieta    "_cgetfirst",
391*f98ee40fSTobias Hieta    "_cgetmatch",
392*f98ee40fSTobias Hieta    "_cgetnext",
393*f98ee40fSTobias Hieta    "_cgetnum",
394*f98ee40fSTobias Hieta    "_cgetset",
395*f98ee40fSTobias Hieta    "_cgetstr",
396*f98ee40fSTobias Hieta    "_cgetustr",
397*f98ee40fSTobias Hieta    "_chmodx_np",
398*f98ee40fSTobias Hieta    "_clearerr",
399*f98ee40fSTobias Hieta    "_clearerr_unlocked",
400*f98ee40fSTobias Hieta    "_clock",
401*f98ee40fSTobias Hieta    "_clock_getres",
402*f98ee40fSTobias Hieta    "_clock_gettime",
403*f98ee40fSTobias Hieta    "_clock_gettime_nsec_np",
404*f98ee40fSTobias Hieta    "_clock_port",
405*f98ee40fSTobias Hieta    "_clock_sem",
406*f98ee40fSTobias Hieta    "_clock_settime",
407*f98ee40fSTobias Hieta    "_closedir",
408*f98ee40fSTobias Hieta    "_compat_mode",
409*f98ee40fSTobias Hieta    "_confstr",
410*f98ee40fSTobias Hieta    "_copy_printf_domain",
411*f98ee40fSTobias Hieta    "_creat",
412*f98ee40fSTobias Hieta    "_crypt",
413*f98ee40fSTobias Hieta    "_ctermid",
414*f98ee40fSTobias Hieta    "_ctermid_r",
415*f98ee40fSTobias Hieta    "_ctime",
416*f98ee40fSTobias Hieta    "_ctime_r",
417*f98ee40fSTobias Hieta    "_daemon",
418*f98ee40fSTobias Hieta    "_daylight",
419*f98ee40fSTobias Hieta    "_dbm_clearerr",
420*f98ee40fSTobias Hieta    "_dbm_close",
421*f98ee40fSTobias Hieta    "_dbm_delete",
422*f98ee40fSTobias Hieta    "_dbm_dirfno",
423*f98ee40fSTobias Hieta    "_dbm_error",
424*f98ee40fSTobias Hieta    "_dbm_fetch",
425*f98ee40fSTobias Hieta    "_dbm_firstkey",
426*f98ee40fSTobias Hieta    "_dbm_nextkey",
427*f98ee40fSTobias Hieta    "_dbm_open",
428*f98ee40fSTobias Hieta    "_dbm_store",
429*f98ee40fSTobias Hieta    "_dbopen",
430*f98ee40fSTobias Hieta    "_devname",
431*f98ee40fSTobias Hieta    "_devname_r",
432*f98ee40fSTobias Hieta    "_difftime",
433*f98ee40fSTobias Hieta    "_digittoint",
434*f98ee40fSTobias Hieta    "_digittoint_l",
435*f98ee40fSTobias Hieta    "_dirfd",
436*f98ee40fSTobias Hieta    "_dirname",
437*f98ee40fSTobias Hieta    "_dirname_r",
438*f98ee40fSTobias Hieta    "_div",
439*f98ee40fSTobias Hieta    "_dprintf",
440*f98ee40fSTobias Hieta    "_dprintf_l",
441*f98ee40fSTobias Hieta    "_drand48",
442*f98ee40fSTobias Hieta    "_duplocale",
443*f98ee40fSTobias Hieta    "_dxprintf",
444*f98ee40fSTobias Hieta    "_dxprintf_exec",
445*f98ee40fSTobias Hieta    "_ecvt",
446*f98ee40fSTobias Hieta    "_encrypt",
447*f98ee40fSTobias Hieta    "_endttyent",
448*f98ee40fSTobias Hieta    "_endusershell",
449*f98ee40fSTobias Hieta    "_endutxent",
450*f98ee40fSTobias Hieta    "_endutxent_wtmp",
451*f98ee40fSTobias Hieta    "_erand48",
452*f98ee40fSTobias Hieta    "_err",
453*f98ee40fSTobias Hieta    "_err_set_exit",
454*f98ee40fSTobias Hieta    "_err_set_exit_b",
455*f98ee40fSTobias Hieta    "_err_set_file",
456*f98ee40fSTobias Hieta    "_errc",
457*f98ee40fSTobias Hieta    "_errx",
458*f98ee40fSTobias Hieta    "_execl",
459*f98ee40fSTobias Hieta    "_execle",
460*f98ee40fSTobias Hieta    "_execlp",
461*f98ee40fSTobias Hieta    "_execv",
462*f98ee40fSTobias Hieta    "_execvP",
463*f98ee40fSTobias Hieta    "_execvp",
464*f98ee40fSTobias Hieta    "_exit",
465*f98ee40fSTobias Hieta    "_f_prealloc",
466*f98ee40fSTobias Hieta    "_fchmodx_np",
467*f98ee40fSTobias Hieta    "_fclose",
468*f98ee40fSTobias Hieta    "_fcvt",
469*f98ee40fSTobias Hieta    "_fdopen",
470*f98ee40fSTobias Hieta    "_fdopendir",
471*f98ee40fSTobias Hieta    "_feof",
472*f98ee40fSTobias Hieta    "_feof_unlocked",
473*f98ee40fSTobias Hieta    "_ferror",
474*f98ee40fSTobias Hieta    "_ferror_unlocked",
475*f98ee40fSTobias Hieta    "_fflagstostr",
476*f98ee40fSTobias Hieta    "_fflush",
477*f98ee40fSTobias Hieta    "_fgetc",
478*f98ee40fSTobias Hieta    "_fgetln",
479*f98ee40fSTobias Hieta    "_fgetpos",
480*f98ee40fSTobias Hieta    "_fgetrune",
481*f98ee40fSTobias Hieta    "_fgets",
482*f98ee40fSTobias Hieta    "_fgetwc",
483*f98ee40fSTobias Hieta    "_fgetwc_l",
484*f98ee40fSTobias Hieta    "_fgetwln",
485*f98ee40fSTobias Hieta    "_fgetwln_l",
486*f98ee40fSTobias Hieta    "_fgetws",
487*f98ee40fSTobias Hieta    "_fgetws_l",
488*f98ee40fSTobias Hieta    "_fileno",
489*f98ee40fSTobias Hieta    "_fileno_unlocked",
490*f98ee40fSTobias Hieta    "_filesec_dup",
491*f98ee40fSTobias Hieta    "_filesec_free",
492*f98ee40fSTobias Hieta    "_filesec_get_property",
493*f98ee40fSTobias Hieta    "_filesec_init",
494*f98ee40fSTobias Hieta    "_filesec_query_property",
495*f98ee40fSTobias Hieta    "_filesec_set_property",
496*f98ee40fSTobias Hieta    "_filesec_unset_property",
497*f98ee40fSTobias Hieta    "_flockfile",
498*f98ee40fSTobias Hieta    "_fmemopen",
499*f98ee40fSTobias Hieta    "_fmtcheck",
500*f98ee40fSTobias Hieta    "_fmtmsg",
501*f98ee40fSTobias Hieta    "_fnmatch",
502*f98ee40fSTobias Hieta    "_fopen",
503*f98ee40fSTobias Hieta    "_fork",
504*f98ee40fSTobias Hieta    "_forkpty",
505*f98ee40fSTobias Hieta    "_fparseln",
506*f98ee40fSTobias Hieta    "_fprintf",
507*f98ee40fSTobias Hieta    "_fprintf_l",
508*f98ee40fSTobias Hieta    "_fpurge",
509*f98ee40fSTobias Hieta    "_fputc",
510*f98ee40fSTobias Hieta    "_fputrune",
511*f98ee40fSTobias Hieta    "_fputs",
512*f98ee40fSTobias Hieta    "_fputwc",
513*f98ee40fSTobias Hieta    "_fputwc_l",
514*f98ee40fSTobias Hieta    "_fputws",
515*f98ee40fSTobias Hieta    "_fputws_l",
516*f98ee40fSTobias Hieta    "_fread",
517*f98ee40fSTobias Hieta    "_free_printf_comp",
518*f98ee40fSTobias Hieta    "_free_printf_domain",
519*f98ee40fSTobias Hieta    "_freelocale",
520*f98ee40fSTobias Hieta    "_freopen",
521*f98ee40fSTobias Hieta    "_fscanf",
522*f98ee40fSTobias Hieta    "_fscanf_l",
523*f98ee40fSTobias Hieta    "_fseek",
524*f98ee40fSTobias Hieta    "_fseeko",
525*f98ee40fSTobias Hieta    "_fsetpos",
526*f98ee40fSTobias Hieta    "_fstatvfs",
527*f98ee40fSTobias Hieta    "_fstatx_np",
528*f98ee40fSTobias Hieta    "_fsync_volume_np",
529*f98ee40fSTobias Hieta    "_ftell",
530*f98ee40fSTobias Hieta    "_ftello",
531*f98ee40fSTobias Hieta    "_ftime",
532*f98ee40fSTobias Hieta    "_ftok",
533*f98ee40fSTobias Hieta    "_ftrylockfile",
534*f98ee40fSTobias Hieta    "_fts_children",
535*f98ee40fSTobias Hieta    "_fts_close",
536*f98ee40fSTobias Hieta    "_fts_open",
537*f98ee40fSTobias Hieta    "_fts_open_b",
538*f98ee40fSTobias Hieta    "_fts_read",
539*f98ee40fSTobias Hieta    "_fts_set",
540*f98ee40fSTobias Hieta    "_ftw",
541*f98ee40fSTobias Hieta    "_fungetrune",
542*f98ee40fSTobias Hieta    "_funlockfile",
543*f98ee40fSTobias Hieta    "_funopen",
544*f98ee40fSTobias Hieta    "_fwide",
545*f98ee40fSTobias Hieta    "_fwprintf",
546*f98ee40fSTobias Hieta    "_fwprintf_l",
547*f98ee40fSTobias Hieta    "_fwrite",
548*f98ee40fSTobias Hieta    "_fwscanf",
549*f98ee40fSTobias Hieta    "_fwscanf_l",
550*f98ee40fSTobias Hieta    "_fxprintf",
551*f98ee40fSTobias Hieta    "_fxprintf_exec",
552*f98ee40fSTobias Hieta    "_gcvt",
553*f98ee40fSTobias Hieta    "_getbsize",
554*f98ee40fSTobias Hieta    "_getc",
555*f98ee40fSTobias Hieta    "_getc_unlocked",
556*f98ee40fSTobias Hieta    "_getchar",
557*f98ee40fSTobias Hieta    "_getchar_unlocked",
558*f98ee40fSTobias Hieta    "_getcwd",
559*f98ee40fSTobias Hieta    "_getdate",
560*f98ee40fSTobias Hieta    "_getdate_err",
561*f98ee40fSTobias Hieta    "_getdelim",
562*f98ee40fSTobias Hieta    "_getdiskbyname",
563*f98ee40fSTobias Hieta    "_getenv",
564*f98ee40fSTobias Hieta    "_gethostid",
565*f98ee40fSTobias Hieta    "_gethostname",
566*f98ee40fSTobias Hieta    "_getipv4sourcefilter",
567*f98ee40fSTobias Hieta    "_getlastlogx",
568*f98ee40fSTobias Hieta    "_getlastlogxbyname",
569*f98ee40fSTobias Hieta    "_getline",
570*f98ee40fSTobias Hieta    "_getloadavg",
571*f98ee40fSTobias Hieta    "_getlogin",
572*f98ee40fSTobias Hieta    "_getlogin_r",
573*f98ee40fSTobias Hieta    "_getmntinfo",
574*f98ee40fSTobias Hieta    "_getmntinfo_r_np",
575*f98ee40fSTobias Hieta    "_getmode",
576*f98ee40fSTobias Hieta    "_getopt",
577*f98ee40fSTobias Hieta    "_getopt_long",
578*f98ee40fSTobias Hieta    "_getopt_long_only",
579*f98ee40fSTobias Hieta    "_getpagesize",
580*f98ee40fSTobias Hieta    "_getpass",
581*f98ee40fSTobias Hieta    "_getpeereid",
582*f98ee40fSTobias Hieta    "_getprogname",
583*f98ee40fSTobias Hieta    "_gets",
584*f98ee40fSTobias Hieta    "_getsourcefilter",
585*f98ee40fSTobias Hieta    "_getsubopt",
586*f98ee40fSTobias Hieta    "_gettimeofday",
587*f98ee40fSTobias Hieta    "_getttyent",
588*f98ee40fSTobias Hieta    "_getttynam",
589*f98ee40fSTobias Hieta    "_getusershell",
590*f98ee40fSTobias Hieta    "_getutmp",
591*f98ee40fSTobias Hieta    "_getutmpx",
592*f98ee40fSTobias Hieta    "_getutxent",
593*f98ee40fSTobias Hieta    "_getutxent_wtmp",
594*f98ee40fSTobias Hieta    "_getutxid",
595*f98ee40fSTobias Hieta    "_getutxline",
596*f98ee40fSTobias Hieta    "_getvfsbyname",
597*f98ee40fSTobias Hieta    "_getw",
598*f98ee40fSTobias Hieta    "_getwc",
599*f98ee40fSTobias Hieta    "_getwc_l",
600*f98ee40fSTobias Hieta    "_getwchar",
601*f98ee40fSTobias Hieta    "_getwchar_l",
602*f98ee40fSTobias Hieta    "_getwd",
603*f98ee40fSTobias Hieta    "_glob",
604*f98ee40fSTobias Hieta    "_glob_b",
605*f98ee40fSTobias Hieta    "_globfree",
606*f98ee40fSTobias Hieta    "_gmtime",
607*f98ee40fSTobias Hieta    "_gmtime_r",
608*f98ee40fSTobias Hieta    "_grantpt",
609*f98ee40fSTobias Hieta    "_hash_create",
610*f98ee40fSTobias Hieta    "_hash_destroy",
611*f98ee40fSTobias Hieta    "_hash_purge",
612*f98ee40fSTobias Hieta    "_hash_search",
613*f98ee40fSTobias Hieta    "_hash_stats",
614*f98ee40fSTobias Hieta    "_hash_traverse",
615*f98ee40fSTobias Hieta    "_hcreate",
616*f98ee40fSTobias Hieta    "_hdestroy",
617*f98ee40fSTobias Hieta    "_heapsort",
618*f98ee40fSTobias Hieta    "_heapsort_b",
619*f98ee40fSTobias Hieta    "_hsearch",
620*f98ee40fSTobias Hieta    "_imaxabs",
621*f98ee40fSTobias Hieta    "_imaxdiv",
622*f98ee40fSTobias Hieta    "_inet_addr",
623*f98ee40fSTobias Hieta    "_inet_aton",
624*f98ee40fSTobias Hieta    "_inet_lnaof",
625*f98ee40fSTobias Hieta    "_inet_makeaddr",
626*f98ee40fSTobias Hieta    "_inet_net_ntop",
627*f98ee40fSTobias Hieta    "_inet_net_pton",
628*f98ee40fSTobias Hieta    "_inet_neta",
629*f98ee40fSTobias Hieta    "_inet_netof",
630*f98ee40fSTobias Hieta    "_inet_network",
631*f98ee40fSTobias Hieta    "_inet_nsap_addr",
632*f98ee40fSTobias Hieta    "_inet_nsap_ntoa",
633*f98ee40fSTobias Hieta    "_inet_ntoa",
634*f98ee40fSTobias Hieta    "_inet_ntop",
635*f98ee40fSTobias Hieta    "_inet_ntop4",
636*f98ee40fSTobias Hieta    "_inet_ntop6",
637*f98ee40fSTobias Hieta    "_inet_pton",
638*f98ee40fSTobias Hieta    "_initstate",
639*f98ee40fSTobias Hieta    "_insque",
640*f98ee40fSTobias Hieta    "_isalnum",
641*f98ee40fSTobias Hieta    "_isalnum_l",
642*f98ee40fSTobias Hieta    "_isalpha",
643*f98ee40fSTobias Hieta    "_isalpha_l",
644*f98ee40fSTobias Hieta    "_isascii",
645*f98ee40fSTobias Hieta    "_isatty",
646*f98ee40fSTobias Hieta    "_isblank",
647*f98ee40fSTobias Hieta    "_isblank_l",
648*f98ee40fSTobias Hieta    "_iscntrl",
649*f98ee40fSTobias Hieta    "_iscntrl_l",
650*f98ee40fSTobias Hieta    "_isdigit",
651*f98ee40fSTobias Hieta    "_isdigit_l",
652*f98ee40fSTobias Hieta    "_isgraph",
653*f98ee40fSTobias Hieta    "_isgraph_l",
654*f98ee40fSTobias Hieta    "_ishexnumber",
655*f98ee40fSTobias Hieta    "_ishexnumber_l",
656*f98ee40fSTobias Hieta    "_isideogram",
657*f98ee40fSTobias Hieta    "_isideogram_l",
658*f98ee40fSTobias Hieta    "_islower",
659*f98ee40fSTobias Hieta    "_islower_l",
660*f98ee40fSTobias Hieta    "_isnumber",
661*f98ee40fSTobias Hieta    "_isnumber_l",
662*f98ee40fSTobias Hieta    "_isphonogram",
663*f98ee40fSTobias Hieta    "_isphonogram_l",
664*f98ee40fSTobias Hieta    "_isprint",
665*f98ee40fSTobias Hieta    "_isprint_l",
666*f98ee40fSTobias Hieta    "_ispunct",
667*f98ee40fSTobias Hieta    "_ispunct_l",
668*f98ee40fSTobias Hieta    "_isrune",
669*f98ee40fSTobias Hieta    "_isrune_l",
670*f98ee40fSTobias Hieta    "_isspace",
671*f98ee40fSTobias Hieta    "_isspace_l",
672*f98ee40fSTobias Hieta    "_isspecial",
673*f98ee40fSTobias Hieta    "_isspecial_l",
674*f98ee40fSTobias Hieta    "_isupper",
675*f98ee40fSTobias Hieta    "_isupper_l",
676*f98ee40fSTobias Hieta    "_iswalnum",
677*f98ee40fSTobias Hieta    "_iswalnum_l",
678*f98ee40fSTobias Hieta    "_iswalpha",
679*f98ee40fSTobias Hieta    "_iswalpha_l",
680*f98ee40fSTobias Hieta    "_iswascii",
681*f98ee40fSTobias Hieta    "_iswblank",
682*f98ee40fSTobias Hieta    "_iswblank_l",
683*f98ee40fSTobias Hieta    "_iswcntrl",
684*f98ee40fSTobias Hieta    "_iswcntrl_l",
685*f98ee40fSTobias Hieta    "_iswctype",
686*f98ee40fSTobias Hieta    "_iswctype_l",
687*f98ee40fSTobias Hieta    "_iswdigit",
688*f98ee40fSTobias Hieta    "_iswdigit_l",
689*f98ee40fSTobias Hieta    "_iswgraph",
690*f98ee40fSTobias Hieta    "_iswgraph_l",
691*f98ee40fSTobias Hieta    "_iswhexnumber",
692*f98ee40fSTobias Hieta    "_iswhexnumber_l",
693*f98ee40fSTobias Hieta    "_iswideogram",
694*f98ee40fSTobias Hieta    "_iswideogram_l",
695*f98ee40fSTobias Hieta    "_iswlower",
696*f98ee40fSTobias Hieta    "_iswlower_l",
697*f98ee40fSTobias Hieta    "_iswnumber",
698*f98ee40fSTobias Hieta    "_iswnumber_l",
699*f98ee40fSTobias Hieta    "_iswphonogram",
700*f98ee40fSTobias Hieta    "_iswphonogram_l",
701*f98ee40fSTobias Hieta    "_iswprint",
702*f98ee40fSTobias Hieta    "_iswprint_l",
703*f98ee40fSTobias Hieta    "_iswpunct",
704*f98ee40fSTobias Hieta    "_iswpunct_l",
705*f98ee40fSTobias Hieta    "_iswrune",
706*f98ee40fSTobias Hieta    "_iswrune_l",
707*f98ee40fSTobias Hieta    "_iswspace",
708*f98ee40fSTobias Hieta    "_iswspace_l",
709*f98ee40fSTobias Hieta    "_iswspecial",
710*f98ee40fSTobias Hieta    "_iswspecial_l",
711*f98ee40fSTobias Hieta    "_iswupper",
712*f98ee40fSTobias Hieta    "_iswupper_l",
713*f98ee40fSTobias Hieta    "_iswxdigit",
714*f98ee40fSTobias Hieta    "_iswxdigit_l",
715*f98ee40fSTobias Hieta    "_isxdigit",
716*f98ee40fSTobias Hieta    "_isxdigit_l",
717*f98ee40fSTobias Hieta    "_jrand48",
718*f98ee40fSTobias Hieta    "_kOSThermalNotificationPressureLevelName",
719*f98ee40fSTobias Hieta    "_killpg",
720*f98ee40fSTobias Hieta    "_l64a",
721*f98ee40fSTobias Hieta    "_labs",
722*f98ee40fSTobias Hieta    "_lchflags",
723*f98ee40fSTobias Hieta    "_lchmod",
724*f98ee40fSTobias Hieta    "_lcong48",
725*f98ee40fSTobias Hieta    "_ldiv",
726*f98ee40fSTobias Hieta    "_lfind",
727*f98ee40fSTobias Hieta    "_link_addr",
728*f98ee40fSTobias Hieta    "_link_ntoa",
729*f98ee40fSTobias Hieta    "_llabs",
730*f98ee40fSTobias Hieta    "_lldiv",
731*f98ee40fSTobias Hieta    "_localeconv",
732*f98ee40fSTobias Hieta    "_localeconv_l",
733*f98ee40fSTobias Hieta    "_localtime",
734*f98ee40fSTobias Hieta    "_localtime_r",
735*f98ee40fSTobias Hieta    "_lockf",
736*f98ee40fSTobias Hieta    "_login",
737*f98ee40fSTobias Hieta    "_login_tty",
738*f98ee40fSTobias Hieta    "_logout",
739*f98ee40fSTobias Hieta    "_logwtmp",
740*f98ee40fSTobias Hieta    "_lrand48",
741*f98ee40fSTobias Hieta    "_lsearch",
742*f98ee40fSTobias Hieta    "_lstatx_np",
743*f98ee40fSTobias Hieta    "_lutimes",
744*f98ee40fSTobias Hieta    "_mblen",
745*f98ee40fSTobias Hieta    "_mblen_l",
746*f98ee40fSTobias Hieta    "_mbmb",
747*f98ee40fSTobias Hieta    "_mbrlen",
748*f98ee40fSTobias Hieta    "_mbrlen_l",
749*f98ee40fSTobias Hieta    "_mbrrune",
750*f98ee40fSTobias Hieta    "_mbrtowc",
751*f98ee40fSTobias Hieta    "_mbrtowc_l",
752*f98ee40fSTobias Hieta    "_mbrune",
753*f98ee40fSTobias Hieta    "_mbsinit",
754*f98ee40fSTobias Hieta    "_mbsinit_l",
755*f98ee40fSTobias Hieta    "_mbsnrtowcs",
756*f98ee40fSTobias Hieta    "_mbsnrtowcs_l",
757*f98ee40fSTobias Hieta    "_mbsrtowcs",
758*f98ee40fSTobias Hieta    "_mbsrtowcs_l",
759*f98ee40fSTobias Hieta    "_mbstowcs",
760*f98ee40fSTobias Hieta    "_mbstowcs_l",
761*f98ee40fSTobias Hieta    "_mbtowc",
762*f98ee40fSTobias Hieta    "_mbtowc_l",
763*f98ee40fSTobias Hieta    "_memmem",
764*f98ee40fSTobias Hieta    "_memset_s",
765*f98ee40fSTobias Hieta    "_mergesort",
766*f98ee40fSTobias Hieta    "_mergesort_b",
767*f98ee40fSTobias Hieta    "_mkdirx_np",
768*f98ee40fSTobias Hieta    "_mkdtemp",
769*f98ee40fSTobias Hieta    "_mkdtempat_np",
770*f98ee40fSTobias Hieta    "_mkfifox_np",
771*f98ee40fSTobias Hieta    "_mkostemp",
772*f98ee40fSTobias Hieta    "_mkostemps",
773*f98ee40fSTobias Hieta    "_mkostempsat_np",
774*f98ee40fSTobias Hieta    "_mkpath_np",
775*f98ee40fSTobias Hieta    "_mkpathat_np",
776*f98ee40fSTobias Hieta    "_mkstemp",
777*f98ee40fSTobias Hieta    "_mkstemp_dprotected_np",
778*f98ee40fSTobias Hieta    "_mkstemps",
779*f98ee40fSTobias Hieta    "_mkstempsat_np",
780*f98ee40fSTobias Hieta    "_mktemp",
781*f98ee40fSTobias Hieta    "_mktime",
782*f98ee40fSTobias Hieta    "_monaddition",
783*f98ee40fSTobias Hieta    "_moncontrol",
784*f98ee40fSTobias Hieta    "_moncount",
785*f98ee40fSTobias Hieta    "_moninit",
786*f98ee40fSTobias Hieta    "_monitor",
787*f98ee40fSTobias Hieta    "_monoutput",
788*f98ee40fSTobias Hieta    "_monreset",
789*f98ee40fSTobias Hieta    "_monstartup",
790*f98ee40fSTobias Hieta    "_mpool_close",
791*f98ee40fSTobias Hieta    "_mpool_filter",
792*f98ee40fSTobias Hieta    "_mpool_get",
793*f98ee40fSTobias Hieta    "_mpool_new",
794*f98ee40fSTobias Hieta    "_mpool_open",
795*f98ee40fSTobias Hieta    "_mpool_put",
796*f98ee40fSTobias Hieta    "_mpool_sync",
797*f98ee40fSTobias Hieta    "_mrand48",
798*f98ee40fSTobias Hieta    "_nanosleep",
799*f98ee40fSTobias Hieta    "_new_printf_comp",
800*f98ee40fSTobias Hieta    "_new_printf_domain",
801*f98ee40fSTobias Hieta    "_newlocale",
802*f98ee40fSTobias Hieta    "_nextwctype",
803*f98ee40fSTobias Hieta    "_nextwctype_l",
804*f98ee40fSTobias Hieta    "_nftw",
805*f98ee40fSTobias Hieta    "_nice",
806*f98ee40fSTobias Hieta    "_nl_langinfo",
807*f98ee40fSTobias Hieta    "_nl_langinfo_l",
808*f98ee40fSTobias Hieta    "_nrand48",
809*f98ee40fSTobias Hieta    "_nvis",
810*f98ee40fSTobias Hieta    "_off32",
811*f98ee40fSTobias Hieta    "_off64",
812*f98ee40fSTobias Hieta    "_offtime",
813*f98ee40fSTobias Hieta    "_open_memstream",
814*f98ee40fSTobias Hieta    "_open_with_subsystem",
815*f98ee40fSTobias Hieta    "_open_wmemstream",
816*f98ee40fSTobias Hieta    "_opendev",
817*f98ee40fSTobias Hieta    "_opendir",
818*f98ee40fSTobias Hieta    "_openpty",
819*f98ee40fSTobias Hieta    "_openx_np",
820*f98ee40fSTobias Hieta    "_optarg",
821*f98ee40fSTobias Hieta    "_opterr",
822*f98ee40fSTobias Hieta    "_optind",
823*f98ee40fSTobias Hieta    "_optopt",
824*f98ee40fSTobias Hieta    "_optreset",
825*f98ee40fSTobias Hieta    "_pause",
826*f98ee40fSTobias Hieta    "_pclose",
827*f98ee40fSTobias Hieta    "_perror",
828*f98ee40fSTobias Hieta    "_popen",
829*f98ee40fSTobias Hieta    "_posix2time",
830*f98ee40fSTobias Hieta    "_posix_openpt",
831*f98ee40fSTobias Hieta    "_posix_spawnp",
832*f98ee40fSTobias Hieta    "_printf",
833*f98ee40fSTobias Hieta    "_printf_l",
834*f98ee40fSTobias Hieta    "_psignal",
835*f98ee40fSTobias Hieta    "_psort",
836*f98ee40fSTobias Hieta    "_psort_b",
837*f98ee40fSTobias Hieta    "_psort_r",
838*f98ee40fSTobias Hieta    "_ptsname",
839*f98ee40fSTobias Hieta    "_ptsname_r",
840*f98ee40fSTobias Hieta    "_putc",
841*f98ee40fSTobias Hieta    "_putc_unlocked",
842*f98ee40fSTobias Hieta    "_putchar",
843*f98ee40fSTobias Hieta    "_putchar_unlocked",
844*f98ee40fSTobias Hieta    "_putenv",
845*f98ee40fSTobias Hieta    "_puts",
846*f98ee40fSTobias Hieta    "_pututxline",
847*f98ee40fSTobias Hieta    "_putw",
848*f98ee40fSTobias Hieta    "_putwc",
849*f98ee40fSTobias Hieta    "_putwc_l",
850*f98ee40fSTobias Hieta    "_putwchar",
851*f98ee40fSTobias Hieta    "_putwchar_l",
852*f98ee40fSTobias Hieta    "_qsort",
853*f98ee40fSTobias Hieta    "_qsort_b",
854*f98ee40fSTobias Hieta    "_qsort_r",
855*f98ee40fSTobias Hieta    "_querylocale",
856*f98ee40fSTobias Hieta    "_radixsort",
857*f98ee40fSTobias Hieta    "_raise",
858*f98ee40fSTobias Hieta    "_rand",
859*f98ee40fSTobias Hieta    "_rand_r",
860*f98ee40fSTobias Hieta    "_random",
861*f98ee40fSTobias Hieta    "_rb_tree_count",
862*f98ee40fSTobias Hieta    "_rb_tree_find_node",
863*f98ee40fSTobias Hieta    "_rb_tree_find_node_geq",
864*f98ee40fSTobias Hieta    "_rb_tree_find_node_leq",
865*f98ee40fSTobias Hieta    "_rb_tree_init",
866*f98ee40fSTobias Hieta    "_rb_tree_insert_node",
867*f98ee40fSTobias Hieta    "_rb_tree_iterate",
868*f98ee40fSTobias Hieta    "_rb_tree_remove_node",
869*f98ee40fSTobias Hieta    "_readdir",
870*f98ee40fSTobias Hieta    "_readdir_r",
871*f98ee40fSTobias Hieta    "_readpassphrase",
872*f98ee40fSTobias Hieta    "_reallocf",
873*f98ee40fSTobias Hieta    "_realpath",
874*f98ee40fSTobias Hieta    "_recv",
875*f98ee40fSTobias Hieta    "_regcomp",
876*f98ee40fSTobias Hieta    "_regcomp_l",
877*f98ee40fSTobias Hieta    "_regerror",
878*f98ee40fSTobias Hieta    "_regexec",
879*f98ee40fSTobias Hieta    "_regfree",
880*f98ee40fSTobias Hieta    "_register_printf_domain_function",
881*f98ee40fSTobias Hieta    "_register_printf_domain_render_std",
882*f98ee40fSTobias Hieta    "_regncomp",
883*f98ee40fSTobias Hieta    "_regncomp_l",
884*f98ee40fSTobias Hieta    "_regnexec",
885*f98ee40fSTobias Hieta    "_regwcomp",
886*f98ee40fSTobias Hieta    "_regwcomp_l",
887*f98ee40fSTobias Hieta    "_regwexec",
888*f98ee40fSTobias Hieta    "_regwncomp",
889*f98ee40fSTobias Hieta    "_regwncomp_l",
890*f98ee40fSTobias Hieta    "_regwnexec",
891*f98ee40fSTobias Hieta    "_remove",
892*f98ee40fSTobias Hieta    "_remque",
893*f98ee40fSTobias Hieta    "_rewind",
894*f98ee40fSTobias Hieta    "_rewinddir",
895*f98ee40fSTobias Hieta    "_rindex",
896*f98ee40fSTobias Hieta    "_rpmatch",
897*f98ee40fSTobias Hieta    "_sbrk",
898*f98ee40fSTobias Hieta    "_scandir",
899*f98ee40fSTobias Hieta    "_scandir_b",
900*f98ee40fSTobias Hieta    "_scanf",
901*f98ee40fSTobias Hieta    "_scanf_l",
902*f98ee40fSTobias Hieta    "_seed48",
903*f98ee40fSTobias Hieta    "_seekdir",
904*f98ee40fSTobias Hieta    "_send",
905*f98ee40fSTobias Hieta    "_setbuf",
906*f98ee40fSTobias Hieta    "_setbuffer",
907*f98ee40fSTobias Hieta    "_setenv",
908*f98ee40fSTobias Hieta    "_sethostid",
909*f98ee40fSTobias Hieta    "_sethostname",
910*f98ee40fSTobias Hieta    "_setinvalidrune",
911*f98ee40fSTobias Hieta    "_setipv4sourcefilter",
912*f98ee40fSTobias Hieta    "_setkey",
913*f98ee40fSTobias Hieta    "_setlinebuf",
914*f98ee40fSTobias Hieta    "_setlocale",
915*f98ee40fSTobias Hieta    "_setlogin",
916*f98ee40fSTobias Hieta    "_setmode",
917*f98ee40fSTobias Hieta    "_setpgrp",
918*f98ee40fSTobias Hieta    "_setprogname",
919*f98ee40fSTobias Hieta    "_setrgid",
920*f98ee40fSTobias Hieta    "_setruid",
921*f98ee40fSTobias Hieta    "_setrunelocale",
922*f98ee40fSTobias Hieta    "_setsourcefilter",
923*f98ee40fSTobias Hieta    "_setstate",
924*f98ee40fSTobias Hieta    "_settimeofday",
925*f98ee40fSTobias Hieta    "_setttyent",
926*f98ee40fSTobias Hieta    "_setusershell",
927*f98ee40fSTobias Hieta    "_setutxent",
928*f98ee40fSTobias Hieta    "_setutxent_wtmp",
929*f98ee40fSTobias Hieta    "_setvbuf",
930*f98ee40fSTobias Hieta    "_sigaction",
931*f98ee40fSTobias Hieta    "_sigaddset",
932*f98ee40fSTobias Hieta    "_sigaltstack",
933*f98ee40fSTobias Hieta    "_sigblock",
934*f98ee40fSTobias Hieta    "_sigdelset",
935*f98ee40fSTobias Hieta    "_sigemptyset",
936*f98ee40fSTobias Hieta    "_sigfillset",
937*f98ee40fSTobias Hieta    "_sighold",
938*f98ee40fSTobias Hieta    "_sigignore",
939*f98ee40fSTobias Hieta    "_siginterrupt",
940*f98ee40fSTobias Hieta    "_sigismember",
941*f98ee40fSTobias Hieta    "_signal",
942*f98ee40fSTobias Hieta    "_sigpause",
943*f98ee40fSTobias Hieta    "_sigrelse",
944*f98ee40fSTobias Hieta    "_sigset",
945*f98ee40fSTobias Hieta    "_sigsetmask",
946*f98ee40fSTobias Hieta    "_sigvec",
947*f98ee40fSTobias Hieta    "_skip",
948*f98ee40fSTobias Hieta    "_sl_add",
949*f98ee40fSTobias Hieta    "_sl_find",
950*f98ee40fSTobias Hieta    "_sl_free",
951*f98ee40fSTobias Hieta    "_sl_init",
952*f98ee40fSTobias Hieta    "_sleep",
953*f98ee40fSTobias Hieta    "_snprintf",
954*f98ee40fSTobias Hieta    "_snprintf_l",
955*f98ee40fSTobias Hieta    "_snvis",
956*f98ee40fSTobias Hieta    "_sockatmark",
957*f98ee40fSTobias Hieta    "_sprintf",
958*f98ee40fSTobias Hieta    "_sprintf_l",
959*f98ee40fSTobias Hieta    "_sradixsort",
960*f98ee40fSTobias Hieta    "_srand",
961*f98ee40fSTobias Hieta    "_srand48",
962*f98ee40fSTobias Hieta    "_sranddev",
963*f98ee40fSTobias Hieta    "_srandom",
964*f98ee40fSTobias Hieta    "_srandomdev",
965*f98ee40fSTobias Hieta    "_sscanf",
966*f98ee40fSTobias Hieta    "_sscanf_l",
967*f98ee40fSTobias Hieta    "_stat_with_subsystem",
968*f98ee40fSTobias Hieta    "_statvfs",
969*f98ee40fSTobias Hieta    "_statx_np",
970*f98ee40fSTobias Hieta    "_stpcpy",
971*f98ee40fSTobias Hieta    "_stpncpy",
972*f98ee40fSTobias Hieta    "_strcasecmp",
973*f98ee40fSTobias Hieta    "_strcasecmp_l",
974*f98ee40fSTobias Hieta    "_strcasestr",
975*f98ee40fSTobias Hieta    "_strcasestr_l",
976*f98ee40fSTobias Hieta    "_strcat",
977*f98ee40fSTobias Hieta    "_strcoll",
978*f98ee40fSTobias Hieta    "_strcoll_l",
979*f98ee40fSTobias Hieta    "_strcspn",
980*f98ee40fSTobias Hieta    "_strdup",
981*f98ee40fSTobias Hieta    "_strenvisx",
982*f98ee40fSTobias Hieta    "_strerror",
983*f98ee40fSTobias Hieta    "_strerror_r",
984*f98ee40fSTobias Hieta    "_strfmon",
985*f98ee40fSTobias Hieta    "_strfmon_l",
986*f98ee40fSTobias Hieta    "_strftime",
987*f98ee40fSTobias Hieta    "_strftime_l",
988*f98ee40fSTobias Hieta    "_strmode",
989*f98ee40fSTobias Hieta    "_strncasecmp",
990*f98ee40fSTobias Hieta    "_strncasecmp_l",
991*f98ee40fSTobias Hieta    "_strncat",
992*f98ee40fSTobias Hieta    "_strndup",
993*f98ee40fSTobias Hieta    "_strnstr",
994*f98ee40fSTobias Hieta    "_strnunvis",
995*f98ee40fSTobias Hieta    "_strnunvisx",
996*f98ee40fSTobias Hieta    "_strnvis",
997*f98ee40fSTobias Hieta    "_strnvisx",
998*f98ee40fSTobias Hieta    "_strpbrk",
999*f98ee40fSTobias Hieta    "_strptime",
1000*f98ee40fSTobias Hieta    "_strptime_l",
1001*f98ee40fSTobias Hieta    "_strrchr",
1002*f98ee40fSTobias Hieta    "_strsenvisx",
1003*f98ee40fSTobias Hieta    "_strsep",
1004*f98ee40fSTobias Hieta    "_strsignal",
1005*f98ee40fSTobias Hieta    "_strsignal_r",
1006*f98ee40fSTobias Hieta    "_strsnvis",
1007*f98ee40fSTobias Hieta    "_strsnvisx",
1008*f98ee40fSTobias Hieta    "_strspn",
1009*f98ee40fSTobias Hieta    "_strsvis",
1010*f98ee40fSTobias Hieta    "_strsvisx",
1011*f98ee40fSTobias Hieta    "_strtod",
1012*f98ee40fSTobias Hieta    "_strtod_l",
1013*f98ee40fSTobias Hieta    "_strtof",
1014*f98ee40fSTobias Hieta    "_strtof_l",
1015*f98ee40fSTobias Hieta    "_strtofflags",
1016*f98ee40fSTobias Hieta    "_strtoimax",
1017*f98ee40fSTobias Hieta    "_strtoimax_l",
1018*f98ee40fSTobias Hieta    "_strtok",
1019*f98ee40fSTobias Hieta    "_strtok_r",
1020*f98ee40fSTobias Hieta    "_strtol",
1021*f98ee40fSTobias Hieta    "_strtol_l",
1022*f98ee40fSTobias Hieta    "_strtold",
1023*f98ee40fSTobias Hieta    "_strtold_l",
1024*f98ee40fSTobias Hieta    "_strtoll",
1025*f98ee40fSTobias Hieta    "_strtoll_l",
1026*f98ee40fSTobias Hieta    "_strtonum",
1027*f98ee40fSTobias Hieta    "_strtoq",
1028*f98ee40fSTobias Hieta    "_strtoq_l",
1029*f98ee40fSTobias Hieta    "_strtoul",
1030*f98ee40fSTobias Hieta    "_strtoul_l",
1031*f98ee40fSTobias Hieta    "_strtoull",
1032*f98ee40fSTobias Hieta    "_strtoull_l",
1033*f98ee40fSTobias Hieta    "_strtoumax",
1034*f98ee40fSTobias Hieta    "_strtoumax_l",
1035*f98ee40fSTobias Hieta    "_strtouq",
1036*f98ee40fSTobias Hieta    "_strtouq_l",
1037*f98ee40fSTobias Hieta    "_strunvis",
1038*f98ee40fSTobias Hieta    "_strunvisx",
1039*f98ee40fSTobias Hieta    "_strvis",
1040*f98ee40fSTobias Hieta    "_strvisx",
1041*f98ee40fSTobias Hieta    "_strxfrm",
1042*f98ee40fSTobias Hieta    "_strxfrm_l",
1043*f98ee40fSTobias Hieta    "_suboptarg",
1044*f98ee40fSTobias Hieta    "_svis",
1045*f98ee40fSTobias Hieta    "_swab",
1046*f98ee40fSTobias Hieta    "_swprintf",
1047*f98ee40fSTobias Hieta    "_swprintf_l",
1048*f98ee40fSTobias Hieta    "_swscanf",
1049*f98ee40fSTobias Hieta    "_swscanf_l",
1050*f98ee40fSTobias Hieta    "_sxprintf",
1051*f98ee40fSTobias Hieta    "_sxprintf_exec",
1052*f98ee40fSTobias Hieta    "_sync_volume_np",
1053*f98ee40fSTobias Hieta    "_sys_errlist",
1054*f98ee40fSTobias Hieta    "_sys_nerr",
1055*f98ee40fSTobias Hieta    "_sys_siglist",
1056*f98ee40fSTobias Hieta    "_sys_signame",
1057*f98ee40fSTobias Hieta    "_sysconf",
1058*f98ee40fSTobias Hieta    "_sysctl",
1059*f98ee40fSTobias Hieta    "_sysctlbyname",
1060*f98ee40fSTobias Hieta    "_sysctlnametomib",
1061*f98ee40fSTobias Hieta    "_system",
1062*f98ee40fSTobias Hieta    "_tcdrain",
1063*f98ee40fSTobias Hieta    "_tcflow",
1064*f98ee40fSTobias Hieta    "_tcflush",
1065*f98ee40fSTobias Hieta    "_tcgetattr",
1066*f98ee40fSTobias Hieta    "_tcgetpgrp",
1067*f98ee40fSTobias Hieta    "_tcgetsid",
1068*f98ee40fSTobias Hieta    "_tcsendbreak",
1069*f98ee40fSTobias Hieta    "_tcsetattr",
1070*f98ee40fSTobias Hieta    "_tcsetpgrp",
1071*f98ee40fSTobias Hieta    "_tdelete",
1072*f98ee40fSTobias Hieta    "_telldir",
1073*f98ee40fSTobias Hieta    "_tempnam",
1074*f98ee40fSTobias Hieta    "_tfind",
1075*f98ee40fSTobias Hieta    "_thread_stack_pcs",
1076*f98ee40fSTobias Hieta    "_time",
1077*f98ee40fSTobias Hieta    "_time2posix",
1078*f98ee40fSTobias Hieta    "_timegm",
1079*f98ee40fSTobias Hieta    "_timelocal",
1080*f98ee40fSTobias Hieta    "_timeoff",
1081*f98ee40fSTobias Hieta    "_times",
1082*f98ee40fSTobias Hieta    "_timespec_get",
1083*f98ee40fSTobias Hieta    "_timezone",
1084*f98ee40fSTobias Hieta    "_timingsafe_bcmp",
1085*f98ee40fSTobias Hieta    "_tmpfile",
1086*f98ee40fSTobias Hieta    "_tmpnam",
1087*f98ee40fSTobias Hieta    "_toascii",
1088*f98ee40fSTobias Hieta    "_tolower",
1089*f98ee40fSTobias Hieta    "_tolower_l",
1090*f98ee40fSTobias Hieta    "_toupper",
1091*f98ee40fSTobias Hieta    "_toupper_l",
1092*f98ee40fSTobias Hieta    "_towctrans",
1093*f98ee40fSTobias Hieta    "_towctrans_l",
1094*f98ee40fSTobias Hieta    "_towlower",
1095*f98ee40fSTobias Hieta    "_towlower_l",
1096*f98ee40fSTobias Hieta    "_towupper",
1097*f98ee40fSTobias Hieta    "_towupper_l",
1098*f98ee40fSTobias Hieta    "_tre_ast_new_catenation",
1099*f98ee40fSTobias Hieta    "_tre_ast_new_iter",
1100*f98ee40fSTobias Hieta    "_tre_ast_new_literal",
1101*f98ee40fSTobias Hieta    "_tre_ast_new_node",
1102*f98ee40fSTobias Hieta    "_tre_ast_new_union",
1103*f98ee40fSTobias Hieta    "_tre_compile",
1104*f98ee40fSTobias Hieta    "_tre_fill_pmatch",
1105*f98ee40fSTobias Hieta    "_tre_free",
1106*f98ee40fSTobias Hieta    "_tre_mem_alloc_impl",
1107*f98ee40fSTobias Hieta    "_tre_mem_destroy",
1108*f98ee40fSTobias Hieta    "_tre_mem_new_impl",
1109*f98ee40fSTobias Hieta    "_tre_parse",
1110*f98ee40fSTobias Hieta    "_tre_stack_destroy",
1111*f98ee40fSTobias Hieta    "_tre_stack_new",
1112*f98ee40fSTobias Hieta    "_tre_stack_num_objects",
1113*f98ee40fSTobias Hieta    "_tre_tnfa_run_backtrack",
1114*f98ee40fSTobias Hieta    "_tre_tnfa_run_parallel",
1115*f98ee40fSTobias Hieta    "_tsearch",
1116*f98ee40fSTobias Hieta    "_ttyname",
1117*f98ee40fSTobias Hieta    "_ttyname_r",
1118*f98ee40fSTobias Hieta    "_ttyslot",
1119*f98ee40fSTobias Hieta    "_twalk",
1120*f98ee40fSTobias Hieta    "_tzname",
1121*f98ee40fSTobias Hieta    "_tzset",
1122*f98ee40fSTobias Hieta    "_tzsetwall",
1123*f98ee40fSTobias Hieta    "_ualarm",
1124*f98ee40fSTobias Hieta    "_ulimit",
1125*f98ee40fSTobias Hieta    "_umaskx_np",
1126*f98ee40fSTobias Hieta    "_uname",
1127*f98ee40fSTobias Hieta    "_ungetc",
1128*f98ee40fSTobias Hieta    "_ungetwc",
1129*f98ee40fSTobias Hieta    "_ungetwc_l",
1130*f98ee40fSTobias Hieta    "_unlockpt",
1131*f98ee40fSTobias Hieta    "_unsetenv",
1132*f98ee40fSTobias Hieta    "_unvis",
1133*f98ee40fSTobias Hieta    "_uselocale",
1134*f98ee40fSTobias Hieta    "_usleep",
1135*f98ee40fSTobias Hieta    "_utime",
1136*f98ee40fSTobias Hieta    "_utmpxname",
1137*f98ee40fSTobias Hieta    "_uuid_clear",
1138*f98ee40fSTobias Hieta    "_uuid_compare",
1139*f98ee40fSTobias Hieta    "_uuid_copy",
1140*f98ee40fSTobias Hieta    "_uuid_generate",
1141*f98ee40fSTobias Hieta    "_uuid_generate_random",
1142*f98ee40fSTobias Hieta    "_uuid_generate_time",
1143*f98ee40fSTobias Hieta    "_uuid_is_null",
1144*f98ee40fSTobias Hieta    "_uuid_pack",
1145*f98ee40fSTobias Hieta    "_uuid_parse",
1146*f98ee40fSTobias Hieta    "_uuid_unpack",
1147*f98ee40fSTobias Hieta    "_uuid_unparse",
1148*f98ee40fSTobias Hieta    "_uuid_unparse_lower",
1149*f98ee40fSTobias Hieta    "_uuid_unparse_upper",
1150*f98ee40fSTobias Hieta    "_vasprintf",
1151*f98ee40fSTobias Hieta    "_vasprintf_l",
1152*f98ee40fSTobias Hieta    "_vasxprintf",
1153*f98ee40fSTobias Hieta    "_vasxprintf_exec",
1154*f98ee40fSTobias Hieta    "_vdprintf",
1155*f98ee40fSTobias Hieta    "_vdprintf_l",
1156*f98ee40fSTobias Hieta    "_vdxprintf",
1157*f98ee40fSTobias Hieta    "_vdxprintf_exec",
1158*f98ee40fSTobias Hieta    "_verr",
1159*f98ee40fSTobias Hieta    "_verrc",
1160*f98ee40fSTobias Hieta    "_verrx",
1161*f98ee40fSTobias Hieta    "_vfprintf",
1162*f98ee40fSTobias Hieta    "_vfprintf_l",
1163*f98ee40fSTobias Hieta    "_vfscanf",
1164*f98ee40fSTobias Hieta    "_vfscanf_l",
1165*f98ee40fSTobias Hieta    "_vfwprintf",
1166*f98ee40fSTobias Hieta    "_vfwprintf_l",
1167*f98ee40fSTobias Hieta    "_vfwscanf",
1168*f98ee40fSTobias Hieta    "_vfwscanf_l",
1169*f98ee40fSTobias Hieta    "_vfxprintf",
1170*f98ee40fSTobias Hieta    "_vfxprintf_exec",
1171*f98ee40fSTobias Hieta    "_vis",
1172*f98ee40fSTobias Hieta    "_vprintf",
1173*f98ee40fSTobias Hieta    "_vprintf_l",
1174*f98ee40fSTobias Hieta    "_vscanf",
1175*f98ee40fSTobias Hieta    "_vscanf_l",
1176*f98ee40fSTobias Hieta    "_vsnprintf",
1177*f98ee40fSTobias Hieta    "_vsnprintf_l",
1178*f98ee40fSTobias Hieta    "_vsprintf",
1179*f98ee40fSTobias Hieta    "_vsprintf_l",
1180*f98ee40fSTobias Hieta    "_vsscanf",
1181*f98ee40fSTobias Hieta    "_vsscanf_l",
1182*f98ee40fSTobias Hieta    "_vswprintf",
1183*f98ee40fSTobias Hieta    "_vswprintf_l",
1184*f98ee40fSTobias Hieta    "_vswscanf",
1185*f98ee40fSTobias Hieta    "_vswscanf_l",
1186*f98ee40fSTobias Hieta    "_vsxprintf",
1187*f98ee40fSTobias Hieta    "_vsxprintf_exec",
1188*f98ee40fSTobias Hieta    "_vwarn",
1189*f98ee40fSTobias Hieta    "_vwarnc",
1190*f98ee40fSTobias Hieta    "_vwarnx",
1191*f98ee40fSTobias Hieta    "_vwprintf",
1192*f98ee40fSTobias Hieta    "_vwprintf_l",
1193*f98ee40fSTobias Hieta    "_vwscanf",
1194*f98ee40fSTobias Hieta    "_vwscanf_l",
1195*f98ee40fSTobias Hieta    "_vxprintf",
1196*f98ee40fSTobias Hieta    "_vxprintf_exec",
1197*f98ee40fSTobias Hieta    "_wait",
1198*f98ee40fSTobias Hieta    "_wait3",
1199*f98ee40fSTobias Hieta    "_waitpid",
1200*f98ee40fSTobias Hieta    "_warn",
1201*f98ee40fSTobias Hieta    "_warnc",
1202*f98ee40fSTobias Hieta    "_warnx",
1203*f98ee40fSTobias Hieta    "_wcpcpy",
1204*f98ee40fSTobias Hieta    "_wcpncpy",
1205*f98ee40fSTobias Hieta    "_wcrtomb",
1206*f98ee40fSTobias Hieta    "_wcrtomb_l",
1207*f98ee40fSTobias Hieta    "_wcscasecmp",
1208*f98ee40fSTobias Hieta    "_wcscasecmp_l",
1209*f98ee40fSTobias Hieta    "_wcscat",
1210*f98ee40fSTobias Hieta    "_wcschr",
1211*f98ee40fSTobias Hieta    "_wcscmp",
1212*f98ee40fSTobias Hieta    "_wcscoll",
1213*f98ee40fSTobias Hieta    "_wcscoll_l",
1214*f98ee40fSTobias Hieta    "_wcscpy",
1215*f98ee40fSTobias Hieta    "_wcscspn",
1216*f98ee40fSTobias Hieta    "_wcsdup",
1217*f98ee40fSTobias Hieta    "_wcsftime",
1218*f98ee40fSTobias Hieta    "_wcsftime_l",
1219*f98ee40fSTobias Hieta    "_wcslcat",
1220*f98ee40fSTobias Hieta    "_wcslcpy",
1221*f98ee40fSTobias Hieta    "_wcslen",
1222*f98ee40fSTobias Hieta    "_wcsncasecmp",
1223*f98ee40fSTobias Hieta    "_wcsncasecmp_l",
1224*f98ee40fSTobias Hieta    "_wcsncat",
1225*f98ee40fSTobias Hieta    "_wcsncmp",
1226*f98ee40fSTobias Hieta    "_wcsncpy",
1227*f98ee40fSTobias Hieta    "_wcsnlen",
1228*f98ee40fSTobias Hieta    "_wcsnrtombs",
1229*f98ee40fSTobias Hieta    "_wcsnrtombs_l",
1230*f98ee40fSTobias Hieta    "_wcspbrk",
1231*f98ee40fSTobias Hieta    "_wcsrchr",
1232*f98ee40fSTobias Hieta    "_wcsrtombs",
1233*f98ee40fSTobias Hieta    "_wcsrtombs_l",
1234*f98ee40fSTobias Hieta    "_wcsspn",
1235*f98ee40fSTobias Hieta    "_wcsstr",
1236*f98ee40fSTobias Hieta    "_wcstod",
1237*f98ee40fSTobias Hieta    "_wcstod_l",
1238*f98ee40fSTobias Hieta    "_wcstof",
1239*f98ee40fSTobias Hieta    "_wcstof_l",
1240*f98ee40fSTobias Hieta    "_wcstoimax",
1241*f98ee40fSTobias Hieta    "_wcstoimax_l",
1242*f98ee40fSTobias Hieta    "_wcstok",
1243*f98ee40fSTobias Hieta    "_wcstol",
1244*f98ee40fSTobias Hieta    "_wcstol_l",
1245*f98ee40fSTobias Hieta    "_wcstold",
1246*f98ee40fSTobias Hieta    "_wcstold_l",
1247*f98ee40fSTobias Hieta    "_wcstoll",
1248*f98ee40fSTobias Hieta    "_wcstoll_l",
1249*f98ee40fSTobias Hieta    "_wcstombs",
1250*f98ee40fSTobias Hieta    "_wcstombs_l",
1251*f98ee40fSTobias Hieta    "_wcstoul",
1252*f98ee40fSTobias Hieta    "_wcstoul_l",
1253*f98ee40fSTobias Hieta    "_wcstoull",
1254*f98ee40fSTobias Hieta    "_wcstoull_l",
1255*f98ee40fSTobias Hieta    "_wcstoumax",
1256*f98ee40fSTobias Hieta    "_wcstoumax_l",
1257*f98ee40fSTobias Hieta    "_wcswidth",
1258*f98ee40fSTobias Hieta    "_wcswidth_l",
1259*f98ee40fSTobias Hieta    "_wcsxfrm",
1260*f98ee40fSTobias Hieta    "_wcsxfrm_l",
1261*f98ee40fSTobias Hieta    "_wctob",
1262*f98ee40fSTobias Hieta    "_wctob_l",
1263*f98ee40fSTobias Hieta    "_wctomb",
1264*f98ee40fSTobias Hieta    "_wctomb_l",
1265*f98ee40fSTobias Hieta    "_wctrans",
1266*f98ee40fSTobias Hieta    "_wctrans_l",
1267*f98ee40fSTobias Hieta    "_wctype",
1268*f98ee40fSTobias Hieta    "_wctype_l",
1269*f98ee40fSTobias Hieta    "_wcwidth",
1270*f98ee40fSTobias Hieta    "_wcwidth_l",
1271*f98ee40fSTobias Hieta    "_wmemchr",
1272*f98ee40fSTobias Hieta    "_wmemcmp",
1273*f98ee40fSTobias Hieta    "_wmemcpy",
1274*f98ee40fSTobias Hieta    "_wmemmove",
1275*f98ee40fSTobias Hieta    "_wmemset",
1276*f98ee40fSTobias Hieta    "_wordexp",
1277*f98ee40fSTobias Hieta    "_wordfree",
1278*f98ee40fSTobias Hieta    "_wprintf",
1279*f98ee40fSTobias Hieta    "_wprintf_l",
1280*f98ee40fSTobias Hieta    "_wscanf",
1281*f98ee40fSTobias Hieta    "_wscanf_l",
1282*f98ee40fSTobias Hieta    "_wtmpxname",
1283*f98ee40fSTobias Hieta    "_xprintf",
1284*f98ee40fSTobias Hieta    "_xprintf_exec",
128593c8559bSGreg McGary)
128693c8559bSGreg McGary
1287*f98ee40fSTobias Hieta
128893c8559bSGreg McGarydef print_here_head(name):
1289*f98ee40fSTobias Hieta    print(
1290*f98ee40fSTobias Hieta        """\
1291*f98ee40fSTobias Hieta(tee %s.s |llvm-mc -filetype=obj -triple %s -o %s.o) <<END_OF_FILE &"""
1292*f98ee40fSTobias Hieta        % (name, triple, name)
1293*f98ee40fSTobias Hieta    )
1294*f98ee40fSTobias Hieta
129593c8559bSGreg McGary
129693c8559bSGreg McGarydef print_here_tail():
1297*f98ee40fSTobias Hieta    print(
1298*f98ee40fSTobias Hieta        """\
129993c8559bSGreg McGaryEND_OF_FILE
1300*f98ee40fSTobias Hieta"""
1301*f98ee40fSTobias Hieta    )
1302*f98ee40fSTobias Hieta
130393c8559bSGreg McGary
130493c8559bSGreg McGarydef print_function_head(p2align, name):
130593c8559bSGreg McGary    if args.os == "macos":
1306*f98ee40fSTobias Hieta        print(
1307*f98ee40fSTobias Hieta            """\
130893c8559bSGreg McGary    .section __TEXT,__text,regular,pure_instructions
130993c8559bSGreg McGary    .p2align %d, 0x90
131093c8559bSGreg McGary    .globl _%s
1311*f98ee40fSTobias Hieta_%s:"""
1312*f98ee40fSTobias Hieta            % (p2align, name, name)
1313*f98ee40fSTobias Hieta        )
131493c8559bSGreg McGary    elif args.os == "windows":
1315*f98ee40fSTobias Hieta        print(
1316*f98ee40fSTobias Hieta            """\
131793c8559bSGreg McGary    .text
131893c8559bSGreg McGary    .def %s;
131993c8559bSGreg McGary    .scl 2;
132093c8559bSGreg McGary    .type 32;
132193c8559bSGreg McGary    .endef
132293c8559bSGreg McGary    .globl %s
132393c8559bSGreg McGary    .p2align %d
1324*f98ee40fSTobias Hieta%s:"""
1325*f98ee40fSTobias Hieta            % (name, name, p2align, name)
1326*f98ee40fSTobias Hieta        )
132793c8559bSGreg McGary    elif args.os == "linux":
1328*f98ee40fSTobias Hieta        print(
1329*f98ee40fSTobias Hieta            """\
133093c8559bSGreg McGary    .text
133193c8559bSGreg McGary    .p2align %d
133293c8559bSGreg McGary    .globl %s
1333*f98ee40fSTobias Hieta%s:"""
1334*f98ee40fSTobias Hieta            % (p2align, name, name)
1335*f98ee40fSTobias Hieta        )
1336*f98ee40fSTobias Hieta
133793c8559bSGreg McGary
133893c8559bSGreg McGarydef print_function(addr, size, addrs):
133993c8559bSGreg McGary    name = "x%08x" % addr
134093c8559bSGreg McGary    calls = random.randint(0, size >> 12)
134193c8559bSGreg McGary    print_here_head(name)
1342*f98ee40fSTobias Hieta    print(
1343*f98ee40fSTobias Hieta        """\
1344*f98ee40fSTobias Hieta### %s size=%x calls=%x"""
1345*f98ee40fSTobias Hieta        % (name, size, calls)
1346*f98ee40fSTobias Hieta    )
134793c8559bSGreg McGary    print_function_head(4, name)
134893c8559bSGreg McGary    for i in range(calls):
1349*f98ee40fSTobias Hieta        print(
1350*f98ee40fSTobias Hieta            "    bl %sx%08x\n    .p2align 4"
1351*f98ee40fSTobias Hieta            % (
1352*f98ee40fSTobias Hieta                "_" if args.os == "macos" else "",
1353*f98ee40fSTobias Hieta                addrs[random.randint(0, len(addrs) - 1)],
1354*f98ee40fSTobias Hieta            )
1355*f98ee40fSTobias Hieta        )
135693c8559bSGreg McGary        if args.os == "macos":
1357*f98ee40fSTobias Hieta            print(
1358*f98ee40fSTobias Hieta                "    bl %s\n    .p2align 4"
1359*f98ee40fSTobias Hieta                % (libSystem_calls[random.randint(0, len(libSystem_calls) - 1)])
1360*f98ee40fSTobias Hieta            )
136193c8559bSGreg McGary    fill = size - 4 * (calls + 1)
136293c8559bSGreg McGary    assert fill > 0
1363*f98ee40fSTobias Hieta    print(
1364*f98ee40fSTobias Hieta        """\
136593c8559bSGreg McGary    .fill 0x%x
1366*f98ee40fSTobias Hieta    ret"""
1367*f98ee40fSTobias Hieta        % (fill)
1368*f98ee40fSTobias Hieta    )
136993c8559bSGreg McGary    print_here_tail()
137093c8559bSGreg McGary
1371*f98ee40fSTobias Hieta
137293c8559bSGreg McGarydef random_seed():
13735dbd8faaSGabriel Ravier    """Generate a seed that can easily be passed back in via --seed=STRING"""
1374*f98ee40fSTobias Hieta    return "".join(random.choice(string.ascii_lowercase) for i in range(10))
1375*f98ee40fSTobias Hieta
137693c8559bSGreg McGary
137793c8559bSGreg McGarydef generate_sizes(base, megabytes):
137893c8559bSGreg McGary    total = 0
137993c8559bSGreg McGary    while total < megabytes:
138093c8559bSGreg McGary        size = random.randint(0x100, 0x10000) * 0x10
138193c8559bSGreg McGary        yield size
138293c8559bSGreg McGary        total += size
138393c8559bSGreg McGary
1384*f98ee40fSTobias Hieta
138593c8559bSGreg McGarydef generate_addrs(addr, sizes):
138693c8559bSGreg McGary    i = 0
138793c8559bSGreg McGary    while i < len(sizes):
138893c8559bSGreg McGary        yield addr
138993c8559bSGreg McGary        addr += sizes[i]
139093c8559bSGreg McGary        i += 1
139193c8559bSGreg McGary
1392*f98ee40fSTobias Hieta
139393c8559bSGreg McGarydef main():
139493c8559bSGreg McGary    parser = argparse.ArgumentParser(
139593c8559bSGreg McGary        description=__doc__,
139693c8559bSGreg McGary        epilog="""\
139793c8559bSGreg McGaryWRITEME
1398*f98ee40fSTobias Hieta""",
1399*f98ee40fSTobias Hieta    )
1400*f98ee40fSTobias Hieta    parser.add_argument(
1401*f98ee40fSTobias Hieta        "--seed",
1402*f98ee40fSTobias Hieta        type=str,
1403*f98ee40fSTobias Hieta        default=random_seed(),
1404*f98ee40fSTobias Hieta        help="Seed the random number generator",
1405*f98ee40fSTobias Hieta    )
1406*f98ee40fSTobias Hieta    parser.add_argument(
1407*f98ee40fSTobias Hieta        "--size",
1408*f98ee40fSTobias Hieta        type=int,
1409*f98ee40fSTobias Hieta        default=None,
1410*f98ee40fSTobias Hieta        help="Total text size to generate, in megabytes",
1411*f98ee40fSTobias Hieta    )
1412*f98ee40fSTobias Hieta    parser.add_argument(
1413*f98ee40fSTobias Hieta        "--os", type=str, default="macos", help="Target OS: macos, windows, or linux"
1414*f98ee40fSTobias Hieta    )
141593c8559bSGreg McGary    global args
141693c8559bSGreg McGary    args = parser.parse_args()
141793c8559bSGreg McGary    triples = {
141893c8559bSGreg McGary        "macos": "arm64-apple-macos",
141993c8559bSGreg McGary        "linux": "aarch64-pc-linux",
1420*f98ee40fSTobias Hieta        "windows": "aarch64-pc-windows",
142193c8559bSGreg McGary    }
142293c8559bSGreg McGary    global triple
142393c8559bSGreg McGary    triple = triples.get(args.os)
142493c8559bSGreg McGary
1425*f98ee40fSTobias Hieta    print(
1426*f98ee40fSTobias Hieta        """\
142793c8559bSGreg McGary### seed=%s triple=%s
1428*f98ee40fSTobias Hieta"""
1429*f98ee40fSTobias Hieta        % (args.seed, triple)
1430*f98ee40fSTobias Hieta    )
143193c8559bSGreg McGary
143293c8559bSGreg McGary    random.seed(args.seed)
143393c8559bSGreg McGary
143493c8559bSGreg McGary    base = 0x4010
143593c8559bSGreg McGary    megabytes = (int(args.size) if args.size else 512) * 1024 * 1024
143693c8559bSGreg McGary    sizes = [size for size in generate_sizes(base, megabytes)]
143793c8559bSGreg McGary    addrs = [addr for addr in generate_addrs(base, sizes)]
143893c8559bSGreg McGary
143993c8559bSGreg McGary    for i in range(len(addrs)):
144093c8559bSGreg McGary        print_function(addrs[i], sizes[i], addrs)
144193c8559bSGreg McGary
144293c8559bSGreg McGary    print_here_head("main")
1443*f98ee40fSTobias Hieta    print(
1444*f98ee40fSTobias Hieta        """\
144593c8559bSGreg McGary### _x%08x
1446*f98ee40fSTobias Hieta"""
1447*f98ee40fSTobias Hieta        % (addrs[-1] + sizes[-1])
1448*f98ee40fSTobias Hieta    )
144993c8559bSGreg McGary    print_function_head(14 if args.os == "macos" else 4, "main")
145093c8559bSGreg McGary    print("    ret")
145193c8559bSGreg McGary    print_here_tail()
145293c8559bSGreg McGary    print("wait")
145393c8559bSGreg McGary
145493c8559bSGreg McGary
1455*f98ee40fSTobias Hietaif __name__ == "__main__":
145693c8559bSGreg McGary    main()
1457