-
Notifications
You must be signed in to change notification settings - Fork 11
/
libc_mapping.cc
1407 lines (1385 loc) · 79.8 KB
/
libc_mapping.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#include "libc_mapping.h"
#include "raw_write.h"
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#include <aliases.h>
#include <argp.h>
#include <argz.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#include <asm/prctl.h>
#include <ctype.h>
#include <dirent.h>
#include <dlfcn.h>
#include <elf.h>
#include <err.h>
#include <errno.h>
#include <error.h>
#include <execinfo.h>
#include <fcntl.h>
#include <fnmatch.h>
#include <fts.h>
#include <ftw.h>
#include <getopt.h>
#include <glob.h>
#include <gnu/libc-version.h>
#include <grp.h>
#include <gshadow.h>
#include <iconv.h>
#include <ifaddrs.h>
#include <langinfo.h>
#include <libgen.h>
#include <libintl.h>
#include <link.h>
#include <malloc.h>
#include <math.h>
#include <mcheck.h>
#include <mntent.h>
#include <mqueue.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <obstack.h>
#include <poll.h>
#include <printf.h>
#include <pthread.h>
#include <pty.h>
#include <pwd.h>
#include <regex.h>
#include <resolv.h>
#include <sched.h>
#include <search.h>
#include <semaphore.h>
#include <setjmp.h>
#include <shadow.h>
#include <signal.h>
#include <spawn.h>
#include <stdio.h>
#include <stdio_ext.h>
#include <stdlib.h>
#include <string.h>
#include <sys/auxv.h>
#include <sys/capability.h>
#include <sys/epoll.h>
#include <sys/eventfd.h>
#include <sys/file.h>
#include <sys/fsuid.h>
#include <sys/inotify.h>
#include <sys/io.h>
#include <sys/ioctl.h>
#include <sys/ipc.h>
#include <sys/klog.h>
#include <sys/mman.h>
#include <sys/mount.h>
#include <sys/msg.h>
#include <sys/personality.h>
#include <sys/prctl.h>
#include <sys/ptrace.h>
#include <sys/random.h>
#include <sys/resource.h>
#include <sys/sem.h>
#include <sys/sendfile.h>
#include <sys/shm.h>
#include <sys/signalfd.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/statvfs.h>
#include <sys/syscall.h>
#include <sys/sysinfo.h>
#include <sys/sysmacros.h>
#include <sys/time.h>
#include <sys/timerfd.h>
#include <sys/times.h>
#include <sys/timex.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/utsname.h>
#include <sys/vfs.h>
#include <sys/wait.h>
#include <sys/xattr.h>
#include <syslog.h>
#include <termios.h>
#include <ttyent.h>
#include <ucontext.h>
#include <unistd.h>
#include <utime.h>
#include <utmp.h>
#include <utmpx.h>
#include <wchar.h>
#include <wctype.h>
#include <cinttypes>
#include <cstring>
#include <ctime>
#include "sloader_dl.h"
extern thread_local unsigned long sloader_dummy_to_secure_tls_space[];
extern unsigned long sloader_tls_offset;
// Copy from libc
extern __thread struct __res_state* __resp;
namespace libc_mapping {
const char* (*strchr_c)(const char*, int) = strchr;
const char* (*strrchr_c)(const char*, int) = strrchr;
const void* (*rawmemchr_c)(const void*, int) = rawmemchr;
const wchar_t* (*wmemchr_c)(const wchar_t*, wchar_t, size_t) = wmemchr;
const void* (*memchr_c)(const void*, int, size_t) = memchr;
const char* (*strstr_c)(const char*, const char*) = strstr;
const char* (*strpbrk_c)(const char*, const char*) = strpbrk;
double (*frexp_c)(double, int*) = frexp;
double (*ldexp_c)(double, int) = ldexp;
const char* (*strchrnul_c)(const char*, int) = strchrnul;
const char* (*strcasestr_c)(const char* haystack, const char* needle) = strcasestr;
double (*modf_c)(double x, double* iptr) = modf;
const char* (*rindex_c)(const char* s, int c) = rindex;
const wchar_t* (*wcsstr_c)(const wchar_t* dest, const wchar_t* src) = wcsstr;
const wchar_t* (*wcspbrk_c)(const wchar_t* wcs1, const wchar_t* wcs2) = wcspbrk;
// TODO: I don't know why these functions need dummy definition not casts of function pointers.
// const wchar_t* (*wcschr_c)(const wchar_t* string, wchar_t character) = wcschr;
const wchar_t* wcschr_c(const wchar_t* string, wchar_t character) {
// printf("wcschr_c: string=%p wc=%d\n", string, character);
return wcschr(string, character);
}
// const wchar_t* (*wcsrchr_c)(const wchar_t *wcs, wchar_t wc) = wcsrchr;
const wchar_t* wcsrchr_c(const wchar_t* wcs, wchar_t wc) {
// printf("wcsrchr_c: wcs=%p wc=%d\n", wcs, wc);
return wcsrchr(wcs, wc);
}
// const void* (*memrchr_c)(const void*, int, size_t) = memrchr;
const void* memrchr_c(const void* s, int c, size_t n) {
// printf("memrchr_c: s=%p c=%d n=%zu\n", s, c, n);
return memchr(s, c, n);
}
int sloader_register_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void), void* dso_handle) {
return pthread_atfork(prepare, parent, child);
}
typedef struct {
unsigned long int ti_module;
unsigned long int ti_offset;
} tls_index;
void* sloader_tls_get_addr(tls_index* ti) {
return reinterpret_cast<void*>(reinterpret_cast<char*>(sloader_dummy_to_secure_tls_space) + sloader_tls_offset + ti->ti_offset);
}
void sloader_libc_start_main(int (*main)(int, char**, char**), int argc, char** argv, void (*init)(void), void (*fini)(void),
void (*rtld_fini)(void), void* stack_end) {
// Although glibc write this function in assembly, we can use a plain C function?
// https://github.com/akawashiro/glibc/blob/0005e54f762b2ec65cee2c4ecf1e9d42612030f0/sysdeps/x86_64/start.S#L64-L76
// TODO
// After SYS_arch_prctl, we cannot use glog.
// LOG(INFO) << LOG_BITS(main);
// We need __libc_stack_end
// TODO: Passing __environ to main is not correct.
exit(main(argc, argv, __environ));
}
#define DEFINE_DUMMY_FUN(name) \
void sloader_##name() { \
; \
}
// #define DEFINE_DUMMY_FUN(name) void sloader_##name(){ RAW_PRINT_STR(#name); }
DEFINE_DUMMY_FUN(ZSTD_trace_compress_begin)
DEFINE_DUMMY_FUN(ZSTD_trace_compress_end)
DEFINE_DUMMY_FUN(ZSTD_trace_decompress_begin)
DEFINE_DUMMY_FUN(ZSTD_trace_decompress_end)
DEFINE_DUMMY_FUN(_ITM_deregisterTMCloneTable)
DEFINE_DUMMY_FUN(_ITM_registerTMCloneTable)
DEFINE_DUMMY_FUN(__asprintf_chk)
DEFINE_DUMMY_FUN(__assert_fail)
DEFINE_DUMMY_FUN(__cxa_finalize)
DEFINE_DUMMY_FUN(__gmon_start__)
DEFINE_DUMMY_FUN(__gmtime_r)
DEFINE_DUMMY_FUN(__libc_dn_expand)
DEFINE_DUMMY_FUN(__libc_ns_makecanon)
DEFINE_DUMMY_FUN(__libc_ns_samename)
DEFINE_DUMMY_FUN(__libc_res_nameinquery)
DEFINE_DUMMY_FUN(__libc_res_queriesmatch)
DEFINE_DUMMY_FUN(__stack_chk_fail)
DEFINE_DUMMY_FUN(__xpg_strerror_r)
DEFINE_DUMMY_FUN(__xstat)
DEFINE_DUMMY_FUN(atexit)
DEFINE_DUMMY_FUN(__cxa_atexit)
DEFINE_DUMMY_FUN(_nl_msg_cat_cntr)
DEFINE_DUMMY_FUN(__fxstat)
DEFINE_DUMMY_FUN(__strtold_nan)
DEFINE_DUMMY_FUN(__strtod_nan)
DEFINE_DUMMY_FUN(__strtof128_nan)
DEFINE_DUMMY_FUN(__strtof_nan)
DEFINE_DUMMY_FUN(_rtld_global_ro)
DEFINE_DUMMY_FUN(__cxa_thread_atexit_impl)
DEFINE_DUMMY_FUN(delete_module)
DEFINE_DUMMY_FUN(init_module)
DEFINE_DUMMY_FUN(__libc_dynarray_resize)
DEFINE_DUMMY_FUN(_libc_intl_domainname)
DEFINE_DUMMY_FUN(__nss_configure_lookup)
DEFINE_DUMMY_FUN(__progname_full)
DEFINE_DUMMY_FUN(__progname)
DEFINE_DUMMY_FUN(__res_context_hostalias)
DEFINE_DUMMY_FUN(__res_context_query)
DEFINE_DUMMY_FUN(__res_context_search)
DEFINE_DUMMY_FUN(__resolv_context_get_override)
DEFINE_DUMMY_FUN(__resolv_context_get)
DEFINE_DUMMY_FUN(__resolv_context_put)
DEFINE_DUMMY_FUN(__res_get_nsaddr)
DEFINE_DUMMY_FUN(__res_iclose)
std::map<std::string, const char*> sloader_libc_tls_variables = {
{"errno", reinterpret_cast<const char*>(&errno)},
{"__h_errno", reinterpret_cast<const char*>(&h_errno)},
{"__resp", reinterpret_cast<const char*>(&_res)},
};
int sloader_atexit_always_success(void (*function)(void)) {
return 0;
}
std::map<std::string, Elf64_Addr> sloader_libc_map = {
// sloader dummy functions
{"ZSTD_trace_compress_begin", reinterpret_cast<Elf64_Addr>(&sloader_ZSTD_trace_compress_begin)},
{"ZSTD_trace_compress_end", reinterpret_cast<Elf64_Addr>(&sloader_ZSTD_trace_compress_end)},
{"ZSTD_trace_decompress_begin", reinterpret_cast<Elf64_Addr>(&sloader_ZSTD_trace_decompress_begin)},
{"ZSTD_trace_decompress_end", reinterpret_cast<Elf64_Addr>(&sloader_ZSTD_trace_decompress_end)},
{"_ITM_deregisterTMCloneTable", reinterpret_cast<Elf64_Addr>(&sloader__ITM_deregisterTMCloneTable)},
{"_ITM_registerTMCloneTable", reinterpret_cast<Elf64_Addr>(&sloader__ITM_registerTMCloneTable)},
{"__asprintf_chk", reinterpret_cast<Elf64_Addr>(&sloader___asprintf_chk)},
{"__assert_fail", reinterpret_cast<Elf64_Addr>(&sloader___assert_fail)},
{"__cxa_atexit", reinterpret_cast<Elf64_Addr>(&sloader_atexit_always_success)},
{"__cxa_finalize", reinterpret_cast<Elf64_Addr>(&sloader___cxa_finalize)},
{"__cxa_thread_atexit_impl", reinterpret_cast<Elf64_Addr>(&sloader___cxa_thread_atexit_impl)},
{"__fxstat", reinterpret_cast<Elf64_Addr>(&sloader___fxstat)},
{"__gmon_start__", reinterpret_cast<Elf64_Addr>(&sloader___gmon_start__)},
{"__gmtime_r", reinterpret_cast<Elf64_Addr>(&sloader___gmtime_r)},
{"__libc_dn_expand", reinterpret_cast<Elf64_Addr>(&sloader___libc_dn_expand)},
{"__libc_dynarray_resize", reinterpret_cast<Elf64_Addr>(&sloader___libc_dynarray_resize)},
{"__libc_ns_makecanon", reinterpret_cast<Elf64_Addr>(&sloader___libc_ns_makecanon)},
{"__libc_ns_samename", reinterpret_cast<Elf64_Addr>(&sloader___libc_ns_samename)},
{"__libc_res_nameinquery", reinterpret_cast<Elf64_Addr>(&sloader___libc_res_nameinquery)},
{"__libc_res_queriesmatch", reinterpret_cast<Elf64_Addr>(&sloader___libc_res_queriesmatch)},
{"__nss_configure_lookup", reinterpret_cast<Elf64_Addr>(&sloader___nss_configure_lookup)},
{"__progname", reinterpret_cast<Elf64_Addr>(&sloader___progname)},
{"__progname_full", reinterpret_cast<Elf64_Addr>(&sloader___progname_full)},
{"__res_context_hostalias", reinterpret_cast<Elf64_Addr>(&sloader___res_context_hostalias)},
{"__res_context_query", reinterpret_cast<Elf64_Addr>(&sloader___res_context_query)},
{"__res_context_search", reinterpret_cast<Elf64_Addr>(&sloader___res_context_search)},
{"__res_get_nsaddr", reinterpret_cast<Elf64_Addr>(&sloader___res_get_nsaddr)},
{"__res_iclose", reinterpret_cast<Elf64_Addr>(&sloader___res_iclose)},
{"__resolv_context_get", reinterpret_cast<Elf64_Addr>(&sloader___resolv_context_get)},
{"__resolv_context_get_override", reinterpret_cast<Elf64_Addr>(&sloader___resolv_context_get_override)},
{"__resolv_context_put", reinterpret_cast<Elf64_Addr>(&sloader___resolv_context_put)},
{"__stack_chk_fail", reinterpret_cast<Elf64_Addr>(&sloader___stack_chk_fail)},
{"__strtod_nan", reinterpret_cast<Elf64_Addr>(&sloader___strtod_nan)},
{"__strtof128_nan", reinterpret_cast<Elf64_Addr>(&sloader___strtof128_nan)},
{"__strtof_nan", reinterpret_cast<Elf64_Addr>(&sloader___strtof_nan)},
{"__strtold_nan", reinterpret_cast<Elf64_Addr>(&sloader___strtold_nan)},
{"__xpg_strerror_r", reinterpret_cast<Elf64_Addr>(&sloader___xpg_strerror_r)},
{"__xstat", reinterpret_cast<Elf64_Addr>(&sloader___xstat)},
{"_libc_intl_domainname", reinterpret_cast<Elf64_Addr>(&sloader__libc_intl_domainname)},
{"_nl_msg_cat_cntr", reinterpret_cast<Elf64_Addr>(&sloader__nl_msg_cat_cntr)},
{"_rtld_global_ro", reinterpret_cast<Elf64_Addr>(&sloader__rtld_global_ro)},
{"atexit", reinterpret_cast<Elf64_Addr>(&sloader_atexit)},
{"delete_module", reinterpret_cast<Elf64_Addr>(&sloader_delete_module)},
{"init_module", reinterpret_cast<Elf64_Addr>(&sloader_init_module)},
// sloader original functions
{"__libc_start_main", reinterpret_cast<Elf64_Addr>(&sloader_libc_start_main)},
{"__register_atfork", reinterpret_cast<Elf64_Addr>(&sloader_register_atfork)},
{"__tls_get_addr", reinterpret_cast<Elf64_Addr>(&sloader_tls_get_addr)},
// libc functions
{"__ctype_b_loc", reinterpret_cast<Elf64_Addr>(&__ctype_b_loc)},
{"__ctype_get_mb_cur_max", reinterpret_cast<Elf64_Addr>(&__ctype_get_mb_cur_max)},
{"__ctype_tolower_loc", reinterpret_cast<Elf64_Addr>(&__ctype_tolower_loc)},
{"__ctype_toupper_loc", reinterpret_cast<Elf64_Addr>(&__ctype_toupper_loc)},
{"__dcgettext", reinterpret_cast<Elf64_Addr>(&__dcgettext)},
{"__dprintf_chk", reinterpret_cast<Elf64_Addr>(&__dprintf_chk)},
{"__duplocale", reinterpret_cast<Elf64_Addr>(&duplocale)},
{"__environ", reinterpret_cast<Elf64_Addr>(&__environ)},
{"__errno_location", reinterpret_cast<Elf64_Addr>(&__errno_location)},
{"__explicit_bzero_chk", reinterpret_cast<Elf64_Addr>(&__explicit_bzero_chk)},
{"__fdelt_chk", reinterpret_cast<Elf64_Addr>(&__fdelt_chk)},
{"__fgets_chk", reinterpret_cast<Elf64_Addr>(&__fgets_chk)},
{"__fgets_unlocked_chk", reinterpret_cast<Elf64_Addr>(&__fgets_unlocked_chk)},
{"__fgetws_chk", reinterpret_cast<Elf64_Addr>(&__fgetws_chk)},
{"__fpending", reinterpret_cast<Elf64_Addr>(&__fpending)},
{"__fprintf_chk", reinterpret_cast<Elf64_Addr>(&__fprintf_chk)},
{"__fpurge", reinterpret_cast<Elf64_Addr>(&__fpurge)},
{"__fread_chk", reinterpret_cast<Elf64_Addr>(&__fread_chk)},
{"__fread_unlocked_chk", reinterpret_cast<Elf64_Addr>(&__fread_unlocked_chk)},
{"__freading", reinterpret_cast<Elf64_Addr>(&__freading)},
{"__freelocale", reinterpret_cast<Elf64_Addr>(&freelocale)},
{"__fsetlocking", reinterpret_cast<Elf64_Addr>(&__fsetlocking)},
{"__fwriting", reinterpret_cast<Elf64_Addr>(&__fwriting)},
{"__getdelim", reinterpret_cast<Elf64_Addr>(&__getdelim)},
{"__getgroups_chk", reinterpret_cast<Elf64_Addr>(&__getgroups_chk)},
{"__gethostname_chk", reinterpret_cast<Elf64_Addr>(&__gethostname_chk)},
{"__getpagesize", reinterpret_cast<Elf64_Addr>(&__getpagesize)},
{"__h_errno_location", reinterpret_cast<Elf64_Addr>(&__h_errno_location)},
{"__isoc99_fscanf", reinterpret_cast<Elf64_Addr>(&fscanf)},
{"__isoc99_scanf", reinterpret_cast<Elf64_Addr>(&scanf)},
{"__isoc99_sscanf", reinterpret_cast<Elf64_Addr>(&sscanf)}, // TODO
{"__isoc99_vfscanf", reinterpret_cast<Elf64_Addr>(&vfscanf)},
{"__isoc99_vsscanf", reinterpret_cast<Elf64_Addr>(&vsscanf)},
{"__iswctype_l", reinterpret_cast<Elf64_Addr>(&iswctype_l)},
{"__libc_current_sigrtmax", reinterpret_cast<Elf64_Addr>(&__libc_current_sigrtmax)},
{"__libc_current_sigrtmin", reinterpret_cast<Elf64_Addr>(&__libc_current_sigrtmin)},
{"__libc_current_sigrtmin", reinterpret_cast<Elf64_Addr>(&__libc_current_sigrtmin)},
{"__libc_single_threaded", reinterpret_cast<Elf64_Addr>(&__libc_single_threaded)},
{"__longjmp_chk", reinterpret_cast<Elf64_Addr>(&longjmp)},
{"__mbrlen", reinterpret_cast<Elf64_Addr>(&__mbrlen)},
{"__mbsnrtowcs_chk", reinterpret_cast<Elf64_Addr>(&__mbsnrtowcs_chk)},
{"__mbsrtowcs_chk", reinterpret_cast<Elf64_Addr>(&__mbsrtowcs_chk)},
{"__mbstowcs_chk", reinterpret_cast<Elf64_Addr>(&__mbstowcs_chk)},
{"__memcpy_chk", reinterpret_cast<Elf64_Addr>(&memcpy)},
{"__memmove_chk", reinterpret_cast<Elf64_Addr>(&memmove)},
{"__mempcpy", reinterpret_cast<Elf64_Addr>(&__mempcpy)},
{"__mempcpy_chk", reinterpret_cast<Elf64_Addr>(&mempcpy)},
{"__memset_chk", reinterpret_cast<Elf64_Addr>(&memset)},
{"__newlocale", reinterpret_cast<Elf64_Addr>(&newlocale)},
{"__nl_langinfo_l", reinterpret_cast<Elf64_Addr>(&nl_langinfo_l)},
{"__open64_2", reinterpret_cast<Elf64_Addr>(&__open64_2)},
{"__open_2", reinterpret_cast<Elf64_Addr>(&__open_2)},
{"__openat64_2", reinterpret_cast<Elf64_Addr>(&__openat64_2)},
{"__openat_2", reinterpret_cast<Elf64_Addr>(&__openat_2)},
{"__overflow", reinterpret_cast<Elf64_Addr>(&__overflow)},
{"__poll_chk", reinterpret_cast<Elf64_Addr>(&__poll_chk)},
{"__ppoll_chk", reinterpret_cast<Elf64_Addr>(&__ppoll_chk)},
{"__pread64_chk", reinterpret_cast<Elf64_Addr>(&__pread64_chk)},
{"__pread_chk", reinterpret_cast<Elf64_Addr>(&__pread_chk)},
{"__printf_chk", reinterpret_cast<Elf64_Addr>(&__printf_chk)},
{"__rawmemchr", reinterpret_cast<Elf64_Addr>(&rawmemchr_c)},
{"__read_chk", reinterpret_cast<Elf64_Addr>(&__read_chk)},
{"__realpath_chk", reinterpret_cast<Elf64_Addr>(&__realpath_chk)},
{"__res_init", reinterpret_cast<Elf64_Addr>(&__res_init)},
{"__res_nclose", reinterpret_cast<Elf64_Addr>(&__res_nclose)},
{"__res_ninit", reinterpret_cast<Elf64_Addr>(&__res_ninit)},
{"__resp", reinterpret_cast<Elf64_Addr>(&__resp)},
{"__sched_cpualloc", reinterpret_cast<Elf64_Addr>(&__sched_cpualloc)},
{"__sched_cpucount", reinterpret_cast<Elf64_Addr>(&__sched_cpucount)},
{"__sched_cpufree", reinterpret_cast<Elf64_Addr>(&__sched_cpufree)},
{"__sigsetjmp", reinterpret_cast<Elf64_Addr>(&__sigsetjmp)},
{"__snprintf_chk", reinterpret_cast<Elf64_Addr>(&__snprintf_chk)},
{"__sprintf_chk", reinterpret_cast<Elf64_Addr>(&__sprintf_chk)},
{"__stpcpy", reinterpret_cast<Elf64_Addr>(&__stpcpy)},
{"__stpcpy_chk", reinterpret_cast<Elf64_Addr>(&stpcpy)},
{"__strcat_chk", reinterpret_cast<Elf64_Addr>(&strcat)},
{"__strcoll_l", reinterpret_cast<Elf64_Addr>(&strcoll_l)},
{"__strcpy_chk", reinterpret_cast<Elf64_Addr>(&strcpy)},
{"__strftime_l", reinterpret_cast<Elf64_Addr>(&strftime_l)},
{"__strncat_chk", reinterpret_cast<Elf64_Addr>(&strncat)},
{"__strncpy_chk", reinterpret_cast<Elf64_Addr>(&strncpy)},
{"__strtod_l", reinterpret_cast<Elf64_Addr>(&strtod_l)},
{"__strtof_l", reinterpret_cast<Elf64_Addr>(&strtof_l)},
{"__strxfrm_l", reinterpret_cast<Elf64_Addr>(&strxfrm_l)},
{"__sysconf", reinterpret_cast<Elf64_Addr>(&__sysconf)},
{"__syslog_chk", reinterpret_cast<Elf64_Addr>(&__syslog_chk)},
{"__sysv_signal", reinterpret_cast<Elf64_Addr>(&__sysv_signal)},
{"__timezone", reinterpret_cast<Elf64_Addr>(&__timezone)},
{"__towlower_l", reinterpret_cast<Elf64_Addr>(&towlower_l)},
{"__towupper_l", reinterpret_cast<Elf64_Addr>(&towupper_l)},
{"__uflow", reinterpret_cast<Elf64_Addr>(&__uflow)},
{"__uselocale", reinterpret_cast<Elf64_Addr>(&__gnu_cxx::__uselocale)},
{"__vasprintf_chk", reinterpret_cast<Elf64_Addr>(&__vasprintf_chk)},
{"__vfprintf_chk", reinterpret_cast<Elf64_Addr>(&__vfprintf_chk)},
{"__vsnprintf_chk", reinterpret_cast<Elf64_Addr>(&__vsnprintf_chk)},
{"__vsprintf_chk", reinterpret_cast<Elf64_Addr>(&__vsprintf_chk)},
{"__vsyslog_chk", reinterpret_cast<Elf64_Addr>(&__vsyslog_chk)},
{"__wcscoll_l", reinterpret_cast<Elf64_Addr>(&wcscoll_l)},
{"__wcsftime_l", reinterpret_cast<Elf64_Addr>(&wcsftime_l)},
{"__wcsncpy_chk", reinterpret_cast<Elf64_Addr>(&__wcsncpy_chk)},
{"__wcsxfrm_l", reinterpret_cast<Elf64_Addr>(&wcsxfrm_l)},
{"__wctomb_chk", reinterpret_cast<Elf64_Addr>(&__wctomb_chk)},
{"__wctype_l", reinterpret_cast<Elf64_Addr>(&wctype_l)},
{"__wmemcpy_chk", reinterpret_cast<Elf64_Addr>(&__wmemcpy_chk)},
{"__wmemmove_chk", reinterpret_cast<Elf64_Addr>(&__wmemmove_chk)},
{"__wmemset_chk", reinterpret_cast<Elf64_Addr>(&__wmemset_chk)},
{"__xpg_basename", reinterpret_cast<Elf64_Addr>(&__xpg_basename)},
{"_dl_find_object", reinterpret_cast<Elf64_Addr>(&_dl_find_object)},
{"_exit", reinterpret_cast<Elf64_Addr>(&_exit)},
{"_longjmp", reinterpret_cast<Elf64_Addr>(&_longjmp)},
{"_obstack_begin", reinterpret_cast<Elf64_Addr>(&_obstack_begin)},
{"_obstack_newchunk", reinterpret_cast<Elf64_Addr>(&_obstack_newchunk)},
{"_obstack_free", reinterpret_cast<Elf64_Addr>(&obstack_free)},
{"_setjmp", reinterpret_cast<Elf64_Addr>(&_setjmp)},
{"abort", reinterpret_cast<Elf64_Addr>(&abort)},
{"accept", reinterpret_cast<Elf64_Addr>(&accept)},
{"accept4", reinterpret_cast<Elf64_Addr>(&accept4)},
{"access", reinterpret_cast<Elf64_Addr>(&access)},
{"access", reinterpret_cast<Elf64_Addr>(&access)},
{"alarm", reinterpret_cast<Elf64_Addr>(&alarm)},
{"aligned_alloc", reinterpret_cast<Elf64_Addr>(&aligned_alloc)},
{"alphasort", reinterpret_cast<Elf64_Addr>(&alphasort)},
{"alphasort64", reinterpret_cast<Elf64_Addr>(&alphasort64)},
{"argp_err_exit_status", reinterpret_cast<Elf64_Addr>(&argp_err_exit_status)},
{"argp_help", reinterpret_cast<Elf64_Addr>(&argp_help)},
{"argp_parse", reinterpret_cast<Elf64_Addr>(&argp_parse)},
{"argz_create_sep", reinterpret_cast<Elf64_Addr>(&argz_create_sep)},
{"asctime", reinterpret_cast<Elf64_Addr>(&asctime)},
{"asctime_r", reinterpret_cast<Elf64_Addr>(&asctime_r)},
{"asprintf", reinterpret_cast<Elf64_Addr>(&asprintf)},
{"atof", reinterpret_cast<Elf64_Addr>(&atof)},
{"atoi", reinterpret_cast<Elf64_Addr>(&atoi)},
{"atol", reinterpret_cast<Elf64_Addr>(&atol)},
{"atoll", reinterpret_cast<Elf64_Addr>(&atoll)},
{"backtrace", reinterpret_cast<Elf64_Addr>(&backtrace)},
{"backtrace_symbols", reinterpret_cast<Elf64_Addr>(&backtrace_symbols)},
{"backtrace_symbols_fd", reinterpret_cast<Elf64_Addr>(&backtrace_symbols_fd)},
{"basename", reinterpret_cast<Elf64_Addr>(&basename)},
{"bind", reinterpret_cast<Elf64_Addr>(&bind)},
{"bind_textdomain_codeset", reinterpret_cast<Elf64_Addr>(&bind_textdomain_codeset)},
{"bindtextdomain", reinterpret_cast<Elf64_Addr>(&bindtextdomain)},
{"bsearch", reinterpret_cast<Elf64_Addr>(&bsearch)},
{"bsearch", reinterpret_cast<Elf64_Addr>(&bsearch)},
{"bsearch", reinterpret_cast<Elf64_Addr>(&bsearch)},
{"bsearch", reinterpret_cast<Elf64_Addr>(&bsearch)},
{"bsearch", reinterpret_cast<Elf64_Addr>(&bsearch)},
{"btowc", reinterpret_cast<Elf64_Addr>(&btowc)},
{"calloc", reinterpret_cast<Elf64_Addr>(&calloc)},
{"canonicalize_file_name", reinterpret_cast<Elf64_Addr>(&canonicalize_file_name)},
{"capget", reinterpret_cast<Elf64_Addr>(&capget)},
{"capset", reinterpret_cast<Elf64_Addr>(&capset)},
{"cfgetispeed", reinterpret_cast<Elf64_Addr>(&cfgetispeed)},
{"cfgetospeed", reinterpret_cast<Elf64_Addr>(&cfgetospeed)},
{"cfmakeraw", reinterpret_cast<Elf64_Addr>(&cfmakeraw)},
{"cfsetispeed", reinterpret_cast<Elf64_Addr>(&cfsetispeed)},
{"cfsetospeed", reinterpret_cast<Elf64_Addr>(&cfsetospeed)},
{"cfsetspeed", reinterpret_cast<Elf64_Addr>(&cfsetspeed)},
{"chdir", reinterpret_cast<Elf64_Addr>(&chdir)},
{"chmod", reinterpret_cast<Elf64_Addr>(&chmod)},
{"chown", reinterpret_cast<Elf64_Addr>(&chown)},
{"chroot", reinterpret_cast<Elf64_Addr>(&chroot)},
{"clearenv", reinterpret_cast<Elf64_Addr>(&clearenv)},
{"clearerr", reinterpret_cast<Elf64_Addr>(&clearerr)},
{"clearerr_unlocked", reinterpret_cast<Elf64_Addr>(&clearerr_unlocked)},
{"clock", reinterpret_cast<Elf64_Addr>(&clock)},
{"clock_getres", reinterpret_cast<Elf64_Addr>(&clock_getres)},
{"clock_gettime", reinterpret_cast<Elf64_Addr>(&clock_gettime)},
{"clock_settime", reinterpret_cast<Elf64_Addr>(&clock_settime)},
{"clone", reinterpret_cast<Elf64_Addr>(&clone)},
{"close", reinterpret_cast<Elf64_Addr>(&close)},
{"close_range", reinterpret_cast<Elf64_Addr>(&close_range)},
{"closedir", reinterpret_cast<Elf64_Addr>(&closedir)},
{"closefrom", reinterpret_cast<Elf64_Addr>(&closefrom)},
{"closelog", reinterpret_cast<Elf64_Addr>(&closelog)},
{"confstr", reinterpret_cast<Elf64_Addr>(&confstr)},
{"connect", reinterpret_cast<Elf64_Addr>(&connect)},
{"copy_file_range", reinterpret_cast<Elf64_Addr>(©_file_range)},
{"creat", reinterpret_cast<Elf64_Addr>(&creat)},
{"creat64", reinterpret_cast<Elf64_Addr>(&creat64)},
{"ctermid", reinterpret_cast<Elf64_Addr>(&ctermid)},
{"ctime", reinterpret_cast<Elf64_Addr>(&ctime)},
{"ctime_r", reinterpret_cast<Elf64_Addr>(&ctime_r)},
{"daemon", reinterpret_cast<Elf64_Addr>(&daemon)},
{"dcgettext", reinterpret_cast<Elf64_Addr>(&dcgettext)},
{"dcngettext", reinterpret_cast<Elf64_Addr>(&dcngettext)},
{"dgettext", reinterpret_cast<Elf64_Addr>(&dgettext)},
{"difftime", reinterpret_cast<Elf64_Addr>(&difftime)},
{"dirfd", reinterpret_cast<Elf64_Addr>(&dirfd)},
{"dirname", reinterpret_cast<Elf64_Addr>(&dirname)},
{"dl_iterate_phdr", reinterpret_cast<Elf64_Addr>(&dl_iterate_phdr)},
{"dladdr", reinterpret_cast<Elf64_Addr>(&sloader_dladdr)},
{"dlclose", reinterpret_cast<Elf64_Addr>(&dlclose)},
{"dlerror", reinterpret_cast<Elf64_Addr>(&dlerror)},
{"dlopen", reinterpret_cast<Elf64_Addr>(&sloader_dlopen)},
{"dlsym", reinterpret_cast<Elf64_Addr>(&sloader_dlsym)},
{"dlvsym", reinterpret_cast<Elf64_Addr>(&sloader_dlvsym)},
{"dn_expand", reinterpret_cast<Elf64_Addr>(&dn_expand)},
{"dn_skipname", reinterpret_cast<Elf64_Addr>(&dn_skipname)},
{"dngettext", reinterpret_cast<Elf64_Addr>(&dngettext)},
{"dup", reinterpret_cast<Elf64_Addr>(&dup)},
{"dup2", reinterpret_cast<Elf64_Addr>(&dup2)},
{"dup3", reinterpret_cast<Elf64_Addr>(&dup3)},
{"duplocale", reinterpret_cast<Elf64_Addr>(&duplocale)},
{"duplocale", reinterpret_cast<Elf64_Addr>(&duplocale)},
{"duplocale", reinterpret_cast<Elf64_Addr>(&duplocale)},
{"duplocale", reinterpret_cast<Elf64_Addr>(&duplocale)},
{"eaccess", reinterpret_cast<Elf64_Addr>(&eaccess)},
{"endaliasent", reinterpret_cast<Elf64_Addr>(&endaliasent)},
{"endgrent", reinterpret_cast<Elf64_Addr>(&endgrent)},
{"endhostent", reinterpret_cast<Elf64_Addr>(&endhostent)},
{"endmntent", reinterpret_cast<Elf64_Addr>(&endmntent)},
{"endnetent", reinterpret_cast<Elf64_Addr>(&endnetent)},
{"endnetgrent", reinterpret_cast<Elf64_Addr>(&endnetgrent)},
{"endprotoent", reinterpret_cast<Elf64_Addr>(&endprotoent)},
{"endpwent", reinterpret_cast<Elf64_Addr>(&endpwent)},
{"endrpcent", reinterpret_cast<Elf64_Addr>(&endrpcent)},
{"endservent", reinterpret_cast<Elf64_Addr>(&endservent)},
{"endsgent", reinterpret_cast<Elf64_Addr>(&endsgent)},
{"endspent", reinterpret_cast<Elf64_Addr>(&endspent)},
{"endusershell", reinterpret_cast<Elf64_Addr>(&endusershell)},
{"endutent", reinterpret_cast<Elf64_Addr>(&endutent)},
{"endutxent", reinterpret_cast<Elf64_Addr>(&endutxent)},
{"environ", reinterpret_cast<Elf64_Addr>(&environ)},
{"epoll_create", reinterpret_cast<Elf64_Addr>(&epoll_create)},
{"epoll_create1", reinterpret_cast<Elf64_Addr>(&epoll_create1)},
{"epoll_ctl", reinterpret_cast<Elf64_Addr>(&epoll_ctl)},
{"epoll_pwait", reinterpret_cast<Elf64_Addr>(&epoll_pwait)},
{"epoll_wait", reinterpret_cast<Elf64_Addr>(&epoll_wait)},
{"err", reinterpret_cast<Elf64_Addr>(&err)},
{"error", reinterpret_cast<Elf64_Addr>(&error)},
{"error_at_line", reinterpret_cast<Elf64_Addr>(&error_at_line)},
{"errx", reinterpret_cast<Elf64_Addr>(&errx)},
{"ether_aton", reinterpret_cast<Elf64_Addr>(ðer_aton)},
{"ether_hostton", reinterpret_cast<Elf64_Addr>(ðer_hostton)},
{"ether_ntoa", reinterpret_cast<Elf64_Addr>(ðer_ntoa)},
{"ether_ntohost", reinterpret_cast<Elf64_Addr>(ðer_ntohost)},
{"euidaccess", reinterpret_cast<Elf64_Addr>(&euidaccess)},
{"eventfd", reinterpret_cast<Elf64_Addr>(&eventfd)},
{"eventfd_read", reinterpret_cast<Elf64_Addr>(&eventfd_read)},
{"eventfd_write", reinterpret_cast<Elf64_Addr>(&eventfd_write)},
{"execl", reinterpret_cast<Elf64_Addr>(&execl)},
{"execle", reinterpret_cast<Elf64_Addr>(&execle)},
{"execlp", reinterpret_cast<Elf64_Addr>(&execlp)},
{"execv", reinterpret_cast<Elf64_Addr>(&execv)},
{"execve", reinterpret_cast<Elf64_Addr>(&execve)},
{"execvp", reinterpret_cast<Elf64_Addr>(&execvp)},
{"exit", reinterpret_cast<Elf64_Addr>(&exit)},
{"faccessat", reinterpret_cast<Elf64_Addr>(&faccessat)},
{"fallocate", reinterpret_cast<Elf64_Addr>(&fallocate)},
{"fallocate64", reinterpret_cast<Elf64_Addr>(&fallocate64)},
{"fchdir", reinterpret_cast<Elf64_Addr>(&fchdir)},
{"fchmod", reinterpret_cast<Elf64_Addr>(&fchmod)},
{"fchmodat", reinterpret_cast<Elf64_Addr>(&fchmodat)},
{"fchown", reinterpret_cast<Elf64_Addr>(&fchown)},
{"fchownat", reinterpret_cast<Elf64_Addr>(&fchownat)},
{"fclose", reinterpret_cast<Elf64_Addr>(&fclose)},
{"fcntl", reinterpret_cast<Elf64_Addr>(&fcntl)},
{"fcntl64", reinterpret_cast<Elf64_Addr>(&fcntl64)},
{"fdatasync", reinterpret_cast<Elf64_Addr>(&fdatasync)},
{"fdopen", reinterpret_cast<Elf64_Addr>(&fdopen)},
{"fdopendir", reinterpret_cast<Elf64_Addr>(&fdopendir)},
{"feof", reinterpret_cast<Elf64_Addr>(&feof)},
{"ferror", reinterpret_cast<Elf64_Addr>(&ferror)},
{"fexecve", reinterpret_cast<Elf64_Addr>(&fexecve)},
{"fflush", reinterpret_cast<Elf64_Addr>(&fflush)},
{"fflush_unlocked", reinterpret_cast<Elf64_Addr>(&fflush_unlocked)},
{"fgetc", reinterpret_cast<Elf64_Addr>(&fgetc)},
{"fgets", reinterpret_cast<Elf64_Addr>(&fgets)},
{"fgets_unlocked", reinterpret_cast<Elf64_Addr>(&fgets_unlocked)},
{"fgetwc", reinterpret_cast<Elf64_Addr>(&fgetwc)},
{"fgetxattr", reinterpret_cast<Elf64_Addr>(&fgetxattr)},
{"fileno", reinterpret_cast<Elf64_Addr>(&fileno)},
{"fileno_unlocked", reinterpret_cast<Elf64_Addr>(&fileno_unlocked)},
{"flistxattr", reinterpret_cast<Elf64_Addr>(&flistxattr)},
{"flock", reinterpret_cast<Elf64_Addr>(&flock)},
{"flockfile", reinterpret_cast<Elf64_Addr>(&flockfile)},
{"fmemopen", reinterpret_cast<Elf64_Addr>(&fmemopen)},
{"fnmatch", reinterpret_cast<Elf64_Addr>(&fnmatch)},
{"fopen", reinterpret_cast<Elf64_Addr>(&fopen)},
{"fopen64", reinterpret_cast<Elf64_Addr>(&fopen64)},
{"fopencookie", reinterpret_cast<Elf64_Addr>(&fopencookie)},
{"fork", reinterpret_cast<Elf64_Addr>(&fork)},
{"forkpty", reinterpret_cast<Elf64_Addr>(&forkpty)},
{"fpathconf", reinterpret_cast<Elf64_Addr>(&fpathconf)},
{"fprintf", reinterpret_cast<Elf64_Addr>(&fprintf)},
{"fputc", reinterpret_cast<Elf64_Addr>(&fputc)},
{"fputc_unlocked", reinterpret_cast<Elf64_Addr>(&fputc_unlocked)},
{"fputs", reinterpret_cast<Elf64_Addr>(&fputs)},
{"fputs_unlocked", reinterpret_cast<Elf64_Addr>(&fputs_unlocked)},
{"fputwc", reinterpret_cast<Elf64_Addr>(&fputwc)},
{"fputws", reinterpret_cast<Elf64_Addr>(&fputws)},
{"fread", reinterpret_cast<Elf64_Addr>(&fread)},
{"fread_unlocked", reinterpret_cast<Elf64_Addr>(&fread_unlocked)},
{"free", reinterpret_cast<Elf64_Addr>(&free)},
{"freeaddrinfo", reinterpret_cast<Elf64_Addr>(&freeaddrinfo)},
{"freeaddrinfo", reinterpret_cast<Elf64_Addr>(&freeaddrinfo)},
{"freeaddrinfo", reinterpret_cast<Elf64_Addr>(&freeaddrinfo)},
{"freeaddrinfo", reinterpret_cast<Elf64_Addr>(&freeaddrinfo)},
{"freeaddrinfo", reinterpret_cast<Elf64_Addr>(&freeaddrinfo)},
{"freeifaddrs", reinterpret_cast<Elf64_Addr>(&freeifaddrs)},
{"freelocale", reinterpret_cast<Elf64_Addr>(&freelocale)},
{"fremovexattr", reinterpret_cast<Elf64_Addr>(&fremovexattr)},
{"freopen", reinterpret_cast<Elf64_Addr>(&freopen)},
{"freopen64", reinterpret_cast<Elf64_Addr>(&freopen64)},
{"frexp", reinterpret_cast<Elf64_Addr>(frexp_c)},
{"frexpl", reinterpret_cast<Elf64_Addr>(&frexpl)},
{"fscanf", reinterpret_cast<Elf64_Addr>(&fscanf)},
{"fseek", reinterpret_cast<Elf64_Addr>(&fseek)},
{"fseeko", reinterpret_cast<Elf64_Addr>(&fseeko)},
{"fseeko64", reinterpret_cast<Elf64_Addr>(&fseeko64)},
{"fsetxattr", reinterpret_cast<Elf64_Addr>(&fsetxattr)},
{"fstat", reinterpret_cast<Elf64_Addr>(&fstat)},
{"fstat64", reinterpret_cast<Elf64_Addr>(&fstat64)},
{"fstatat", reinterpret_cast<Elf64_Addr>(&fstatat)},
{"fstatat64", reinterpret_cast<Elf64_Addr>(&fstatat64)},
{"fstatfs", reinterpret_cast<Elf64_Addr>(&fstatfs)},
{"fstatfs64", reinterpret_cast<Elf64_Addr>(&fstatfs64)},
{"fstatvfs", reinterpret_cast<Elf64_Addr>(&fstatvfs)},
{"fstatvfs64", reinterpret_cast<Elf64_Addr>(&fstatvfs64)},
{"fsync", reinterpret_cast<Elf64_Addr>(&fsync)},
{"ftell", reinterpret_cast<Elf64_Addr>(&ftell)},
{"ftello", reinterpret_cast<Elf64_Addr>(&ftello)},
{"ftello64", reinterpret_cast<Elf64_Addr>(&ftello64)},
{"ftruncate", reinterpret_cast<Elf64_Addr>(&ftruncate)},
{"ftruncate64", reinterpret_cast<Elf64_Addr>(&ftruncate64)},
{"fts_close", reinterpret_cast<Elf64_Addr>(&fts_close)},
{"fts_open", reinterpret_cast<Elf64_Addr>(&fts_open)},
{"fts_read", reinterpret_cast<Elf64_Addr>(&fts_read)},
{"fts_set", reinterpret_cast<Elf64_Addr>(&fts_set)},
{"ftw", reinterpret_cast<Elf64_Addr>(&ftw)},
{"funlockfile", reinterpret_cast<Elf64_Addr>(&funlockfile)},
{"futimens", reinterpret_cast<Elf64_Addr>(&futimens)},
{"futimesat", reinterpret_cast<Elf64_Addr>(&futimesat)},
{"fwrite", reinterpret_cast<Elf64_Addr>(&fwrite)},
{"fwrite_unlocked", reinterpret_cast<Elf64_Addr>(&fwrite_unlocked)},
{"gai_strerror", reinterpret_cast<Elf64_Addr>(&gai_strerror)},
{"get_current_dir_name", reinterpret_cast<Elf64_Addr>(&get_current_dir_name)},
{"get_nprocs", reinterpret_cast<Elf64_Addr>(&get_nprocs)},
{"getaddrinfo", reinterpret_cast<Elf64_Addr>(&getaddrinfo)},
{"getaliasbyname", reinterpret_cast<Elf64_Addr>(&getaliasbyname)},
{"getaliasent", reinterpret_cast<Elf64_Addr>(&getaliasent)},
{"getauxval", reinterpret_cast<Elf64_Addr>(&getauxval)},
{"getc", reinterpret_cast<Elf64_Addr>(&getc)},
{"getcontext", reinterpret_cast<Elf64_Addr>(&getcontext)},
{"getcwd", reinterpret_cast<Elf64_Addr>(&getcwd)},
{"getdelim", reinterpret_cast<Elf64_Addr>(&getdelim)},
{"getdomainname", reinterpret_cast<Elf64_Addr>(&getdomainname)},
{"getdtablesize", reinterpret_cast<Elf64_Addr>(&getdtablesize)},
{"getegid", reinterpret_cast<Elf64_Addr>(&getegid)},
{"getentropy", reinterpret_cast<Elf64_Addr>(&getentropy)},
{"getenv", reinterpret_cast<Elf64_Addr>(&getenv)},
{"geteuid", reinterpret_cast<Elf64_Addr>(&geteuid)},
{"getgid", reinterpret_cast<Elf64_Addr>(&getgid)},
{"getgrent", reinterpret_cast<Elf64_Addr>(&getgrent)},
{"getgrgid", reinterpret_cast<Elf64_Addr>(&getgrgid)},
{"getgrgid_r", reinterpret_cast<Elf64_Addr>(&getgrgid_r)},
{"getgrnam", reinterpret_cast<Elf64_Addr>(&getgrnam)},
{"getgrnam_r", reinterpret_cast<Elf64_Addr>(&getgrnam_r)},
{"getgrouplist", reinterpret_cast<Elf64_Addr>(&getgrouplist)},
{"getgroups", reinterpret_cast<Elf64_Addr>(&getgroups)},
{"gethostbyaddr", reinterpret_cast<Elf64_Addr>(&gethostbyaddr)},
{"gethostbyaddr_r", reinterpret_cast<Elf64_Addr>(&gethostbyaddr_r)},
{"gethostbyname", reinterpret_cast<Elf64_Addr>(&gethostbyname)},
{"gethostbyname2", reinterpret_cast<Elf64_Addr>(&gethostbyname2)},
{"gethostbyname_r", reinterpret_cast<Elf64_Addr>(&gethostbyname_r)},
{"gethostent", reinterpret_cast<Elf64_Addr>(&gethostent)},
{"gethostid", reinterpret_cast<Elf64_Addr>(&gethostid)},
{"gethostname", reinterpret_cast<Elf64_Addr>(&gethostname)},
{"getifaddrs", reinterpret_cast<Elf64_Addr>(&getifaddrs)},
{"getifaddrs", reinterpret_cast<Elf64_Addr>(&getifaddrs)},
{"getitimer", reinterpret_cast<Elf64_Addr>(&getitimer)},
{"getline", reinterpret_cast<Elf64_Addr>(&getline)},
{"getloadavg", reinterpret_cast<Elf64_Addr>(&getloadavg)},
{"getlogin", reinterpret_cast<Elf64_Addr>(&getlogin)},
{"getmntent", reinterpret_cast<Elf64_Addr>(&getmntent)},
{"getmntent_r", reinterpret_cast<Elf64_Addr>(&getmntent_r)},
{"getnameinfo", reinterpret_cast<Elf64_Addr>(&getnameinfo)},
{"getnetbyaddr", reinterpret_cast<Elf64_Addr>(&getnetbyaddr)},
{"getnetbyname", reinterpret_cast<Elf64_Addr>(&getnetbyname)},
{"getnetent", reinterpret_cast<Elf64_Addr>(&getnetent)},
{"getnetgrent", reinterpret_cast<Elf64_Addr>(&getnetgrent)},
{"getopt", reinterpret_cast<Elf64_Addr>(&getopt)},
{"getopt_long", reinterpret_cast<Elf64_Addr>(&getopt_long)},
{"getopt_long_only", reinterpret_cast<Elf64_Addr>(&getopt_long_only)},
{"getpagesize", reinterpret_cast<Elf64_Addr>(&getpagesize)},
{"getpass", reinterpret_cast<Elf64_Addr>(&getpass)},
{"getpeername", reinterpret_cast<Elf64_Addr>(&getpeername)},
{"getpgid", reinterpret_cast<Elf64_Addr>(&getpgid)},
{"getpgrp", reinterpret_cast<Elf64_Addr>(&getpgrp)},
{"getpid", reinterpret_cast<Elf64_Addr>(&getpid)},
{"getppid", reinterpret_cast<Elf64_Addr>(&getppid)},
{"getpriority", reinterpret_cast<Elf64_Addr>(&getpriority)},
{"getprotobyname", reinterpret_cast<Elf64_Addr>(&getprotobyname)},
{"getprotobynumber", reinterpret_cast<Elf64_Addr>(&getprotobynumber)},
{"getprotoent", reinterpret_cast<Elf64_Addr>(&getprotoent)},
{"getpwent", reinterpret_cast<Elf64_Addr>(&getpwent)},
{"getpwnam", reinterpret_cast<Elf64_Addr>(&getpwnam)},
{"getpwnam_r", reinterpret_cast<Elf64_Addr>(&getpwnam_r)},
{"getpwuid", reinterpret_cast<Elf64_Addr>(&getpwuid)},
{"getpwuid_r", reinterpret_cast<Elf64_Addr>(&getpwuid_r)},
{"getpwuid_r", reinterpret_cast<Elf64_Addr>(&getpwuid_r)},
{"getpwuid_r", reinterpret_cast<Elf64_Addr>(&getpwuid_r)},
{"getrandom", reinterpret_cast<Elf64_Addr>(&getrandom)},
{"getresgid", reinterpret_cast<Elf64_Addr>(&getresgid)},
{"getresuid", reinterpret_cast<Elf64_Addr>(&getresuid)},
{"getrlimit", reinterpret_cast<Elf64_Addr>(&getrlimit)},
{"getrlimit64", reinterpret_cast<Elf64_Addr>(&getrlimit64)},
{"getrpcbyname", reinterpret_cast<Elf64_Addr>(&getrpcbyname)},
{"getrpcbynumber", reinterpret_cast<Elf64_Addr>(&getrpcbynumber)},
{"getrpcent", reinterpret_cast<Elf64_Addr>(&getrpcent)},
{"getrusage", reinterpret_cast<Elf64_Addr>(&getrusage)},
{"getservbyname", reinterpret_cast<Elf64_Addr>(&getservbyname)},
{"getservbyport", reinterpret_cast<Elf64_Addr>(&getservbyport)},
{"getservbyport_r", reinterpret_cast<Elf64_Addr>(&getservbyport_r)},
{"getservent", reinterpret_cast<Elf64_Addr>(&getservent)},
{"getsgent", reinterpret_cast<Elf64_Addr>(&getsgent)},
{"getsgnam", reinterpret_cast<Elf64_Addr>(&getsgnam)},
{"getsid", reinterpret_cast<Elf64_Addr>(&getsid)},
{"getsockname", reinterpret_cast<Elf64_Addr>(&getsockname)},
{"getsockopt", reinterpret_cast<Elf64_Addr>(&getsockopt)},
{"getspent", reinterpret_cast<Elf64_Addr>(&getspent)},
{"getspnam", reinterpret_cast<Elf64_Addr>(&getspnam)},
{"getspnam_r", reinterpret_cast<Elf64_Addr>(&getspnam_r)},
{"gettext", reinterpret_cast<Elf64_Addr>(&gettext)},
{"gettid", reinterpret_cast<Elf64_Addr>(&gettid)},
{"gettimeofday", reinterpret_cast<Elf64_Addr>(&gettimeofday)},
{"getttynam", reinterpret_cast<Elf64_Addr>(&getttynam)},
{"getuid", reinterpret_cast<Elf64_Addr>(&getuid)},
{"getusershell", reinterpret_cast<Elf64_Addr>(&getusershell)},
{"getutent", reinterpret_cast<Elf64_Addr>(&getutent)},
{"getutline", reinterpret_cast<Elf64_Addr>(&getutline)},
{"getutxent", reinterpret_cast<Elf64_Addr>(&getutxent)},
{"getutxline", reinterpret_cast<Elf64_Addr>(&getutxline)},
{"getwc", reinterpret_cast<Elf64_Addr>(&getwc)},
{"getwchar", reinterpret_cast<Elf64_Addr>(&getwchar)},
{"getxattr", reinterpret_cast<Elf64_Addr>(&getxattr)},
{"glob", reinterpret_cast<Elf64_Addr>(&glob)},
{"glob64", reinterpret_cast<Elf64_Addr>(&glob64)},
{"glob_pattern_p", reinterpret_cast<Elf64_Addr>(&glob_pattern_p)},
{"globfree", reinterpret_cast<Elf64_Addr>(&globfree)},
{"globfree64", reinterpret_cast<Elf64_Addr>(&globfree64)},
{"gmtime", reinterpret_cast<Elf64_Addr>(&gmtime)},
{"gmtime_r", reinterpret_cast<Elf64_Addr>(&gmtime_r)},
{"gnu_dev_major", reinterpret_cast<Elf64_Addr>(&gnu_dev_major)},
{"gnu_dev_major", reinterpret_cast<Elf64_Addr>(&gnu_dev_major)},
{"gnu_dev_major", reinterpret_cast<Elf64_Addr>(&gnu_dev_major)},
{"gnu_dev_major", reinterpret_cast<Elf64_Addr>(&gnu_dev_major)},
{"gnu_dev_major", reinterpret_cast<Elf64_Addr>(&gnu_dev_major)},
{"gnu_dev_makedev", reinterpret_cast<Elf64_Addr>(&gnu_dev_makedev)},
{"gnu_dev_makedev", reinterpret_cast<Elf64_Addr>(&gnu_dev_makedev)},
{"gnu_dev_makedev", reinterpret_cast<Elf64_Addr>(&gnu_dev_makedev)},
{"gnu_dev_makedev", reinterpret_cast<Elf64_Addr>(&gnu_dev_makedev)},
{"gnu_dev_makedev", reinterpret_cast<Elf64_Addr>(&gnu_dev_makedev)},
{"gnu_dev_minor", reinterpret_cast<Elf64_Addr>(&gnu_dev_minor)},
{"gnu_dev_minor", reinterpret_cast<Elf64_Addr>(&gnu_dev_minor)},
{"gnu_dev_minor", reinterpret_cast<Elf64_Addr>(&gnu_dev_minor)},
{"gnu_dev_minor", reinterpret_cast<Elf64_Addr>(&gnu_dev_minor)},
{"gnu_dev_minor", reinterpret_cast<Elf64_Addr>(&gnu_dev_minor)},
{"gnu_get_libc_version", reinterpret_cast<Elf64_Addr>(&gnu_get_libc_version)},
{"grantpt", reinterpret_cast<Elf64_Addr>(&grantpt)},
{"group_member", reinterpret_cast<Elf64_Addr>(&group_member)},
{"hasmntopt", reinterpret_cast<Elf64_Addr>(&hasmntopt)},
{"herror", reinterpret_cast<Elf64_Addr>(&herror)},
{"hstrerror", reinterpret_cast<Elf64_Addr>(&hstrerror)},
{"iconv", reinterpret_cast<Elf64_Addr>(&iconv)},
{"iconv_close", reinterpret_cast<Elf64_Addr>(&iconv_close)},
{"iconv_open", reinterpret_cast<Elf64_Addr>(&iconv_open)},
{"if_freenameindex", reinterpret_cast<Elf64_Addr>(&if_freenameindex)},
{"if_indextoname", reinterpret_cast<Elf64_Addr>(&if_indextoname)},
{"if_nameindex", reinterpret_cast<Elf64_Addr>(&if_nameindex)},
{"if_nametoindex", reinterpret_cast<Elf64_Addr>(&if_nametoindex)},
{"in6addr_any", reinterpret_cast<Elf64_Addr>(&in6addr_any)},
{"in6addr_any", reinterpret_cast<Elf64_Addr>(&in6addr_any)},
{"in6addr_loopback", reinterpret_cast<Elf64_Addr>(&in6addr_loopback)},
{"inet_addr", reinterpret_cast<Elf64_Addr>(&inet_addr)},
{"inet_aton", reinterpret_cast<Elf64_Addr>(&inet_aton)},
{"inet_nsap_ntoa", reinterpret_cast<Elf64_Addr>(&inet_nsap_ntoa)},
{"inet_ntoa", reinterpret_cast<Elf64_Addr>(&inet_ntoa)},
{"inet_ntop", reinterpret_cast<Elf64_Addr>(&inet_ntop)},
{"inet_pton", reinterpret_cast<Elf64_Addr>(&inet_pton)},
{"initgroups", reinterpret_cast<Elf64_Addr>(&initgroups)},
{"innetgr", reinterpret_cast<Elf64_Addr>(&innetgr)},
{"inotify_add_watch", reinterpret_cast<Elf64_Addr>(&inotify_add_watch)},
{"inotify_init", reinterpret_cast<Elf64_Addr>(&inotify_init)},
{"inotify_init1", reinterpret_cast<Elf64_Addr>(&inotify_init1)},
{"inotify_rm_watch", reinterpret_cast<Elf64_Addr>(&inotify_rm_watch)},
{"ioctl", reinterpret_cast<Elf64_Addr>(&ioctl)},
{"iopl", reinterpret_cast<Elf64_Addr>(&iopl)},
{"isalnum", reinterpret_cast<Elf64_Addr>(&isalnum)},
{"isalpha", reinterpret_cast<Elf64_Addr>(&isalpha)},
{"isatty", reinterpret_cast<Elf64_Addr>(&isatty)},
{"isblank", reinterpret_cast<Elf64_Addr>(&isblank)},
{"iscntrl", reinterpret_cast<Elf64_Addr>(&iscntrl)},
{"isdigit", reinterpret_cast<Elf64_Addr>(&isdigit)},
{"isgraph", reinterpret_cast<Elf64_Addr>(&isgraph)},
{"islower", reinterpret_cast<Elf64_Addr>(&islower)},
{"isprint", reinterpret_cast<Elf64_Addr>(&isprint)},
{"ispunct", reinterpret_cast<Elf64_Addr>(&ispunct)},
{"isspace", reinterpret_cast<Elf64_Addr>(&isspace)},
{"isupper", reinterpret_cast<Elf64_Addr>(&isupper)},
{"iswalnum", reinterpret_cast<Elf64_Addr>(&iswalnum)},
{"iswalpha", reinterpret_cast<Elf64_Addr>(&iswalpha)},
{"iswcntrl", reinterpret_cast<Elf64_Addr>(&iscntrl)},
{"iswctype", reinterpret_cast<Elf64_Addr>(&iswctype)},
{"iswdigit", reinterpret_cast<Elf64_Addr>(&iswdigit)},
{"iswgraph", reinterpret_cast<Elf64_Addr>(&iswgraph)},
{"iswlower", reinterpret_cast<Elf64_Addr>(&iswlower)},
{"iswprint", reinterpret_cast<Elf64_Addr>(&isprint)},
{"iswspace", reinterpret_cast<Elf64_Addr>(&iswspace)},
{"iswupper", reinterpret_cast<Elf64_Addr>(&iswupper)},
{"isxdigit", reinterpret_cast<Elf64_Addr>(&isxdigit)},
{"jrand48", reinterpret_cast<Elf64_Addr>(&jrand48)},
{"kill", reinterpret_cast<Elf64_Addr>(&kill)},
{"killpg", reinterpret_cast<Elf64_Addr>(&killpg)},
{"klogctl", reinterpret_cast<Elf64_Addr>(&klogctl)},
{"l64a", reinterpret_cast<Elf64_Addr>(&l64a)},
{"lchmod", reinterpret_cast<Elf64_Addr>(&lchmod)},
{"lchown", reinterpret_cast<Elf64_Addr>(&lchown)},
{"lckpwdf", reinterpret_cast<Elf64_Addr>(&lckpwdf)},
{"ldexp", reinterpret_cast<Elf64_Addr>(ldexp_c)},
{"ldexpl", reinterpret_cast<Elf64_Addr>(&ldexpl)},
{"lgetxattr", reinterpret_cast<Elf64_Addr>(&lgetxattr)},
{"link", reinterpret_cast<Elf64_Addr>(&link)},
{"linkat", reinterpret_cast<Elf64_Addr>(&linkat)},
{"listen", reinterpret_cast<Elf64_Addr>(&listen)},
{"listen", reinterpret_cast<Elf64_Addr>(&listen)},
{"listxattr", reinterpret_cast<Elf64_Addr>(&listxattr)},
{"llistxattr", reinterpret_cast<Elf64_Addr>(&llistxattr)},
{"localeconv", reinterpret_cast<Elf64_Addr>(&localeconv)},
{"localtime", reinterpret_cast<Elf64_Addr>(&localtime)},
{"localtime_r", reinterpret_cast<Elf64_Addr>(&localtime_r)},
{"lockf", reinterpret_cast<Elf64_Addr>(&lockf)},
{"lockf64", reinterpret_cast<Elf64_Addr>(&lockf64)},
{"lremovexattr", reinterpret_cast<Elf64_Addr>(&lremovexattr)},
{"lsearch", reinterpret_cast<Elf64_Addr>(&lsearch)},
{"lseek", reinterpret_cast<Elf64_Addr>(&lseek)},
{"lseek", reinterpret_cast<Elf64_Addr>(&lseek)},
{"lseek64", reinterpret_cast<Elf64_Addr>(&lseek64)},
{"lsetxattr", reinterpret_cast<Elf64_Addr>(&lsetxattr)},
{"lstat", reinterpret_cast<Elf64_Addr>(&lstat)},
{"lstat64", reinterpret_cast<Elf64_Addr>(&lstat64)},
{"lutimes", reinterpret_cast<Elf64_Addr>(&lutimes)},
{"madvise", reinterpret_cast<Elf64_Addr>(&madvise)},
{"makecontext", reinterpret_cast<Elf64_Addr>(&makecontext)},
{"mallinfo", reinterpret_cast<Elf64_Addr>(&mallinfo)},
{"mallinfo2", reinterpret_cast<Elf64_Addr>(&mallinfo2)},
{"malloc", reinterpret_cast<Elf64_Addr>(&malloc)},
{"malloc_trim", reinterpret_cast<Elf64_Addr>(&malloc_trim)},
{"malloc_usable_size", reinterpret_cast<Elf64_Addr>(&malloc_usable_size)},
{"mblen", reinterpret_cast<Elf64_Addr>(&mblen)},
{"mbrtowc", reinterpret_cast<Elf64_Addr>(&mbrtowc)},
{"mbsinit", reinterpret_cast<Elf64_Addr>(&mbsinit)},
{"mbsnrtowcs", reinterpret_cast<Elf64_Addr>(&mbsnrtowcs)},
{"mbsrtowcs", reinterpret_cast<Elf64_Addr>(&mbsrtowcs)},
{"mbstowcs", reinterpret_cast<Elf64_Addr>(&mbstowcs)},
{"mbtowc", reinterpret_cast<Elf64_Addr>(&mbtowc)},
{"memccpy", reinterpret_cast<Elf64_Addr>(&memccpy)},
{"memchr", reinterpret_cast<Elf64_Addr>(memchr_c)},
{"memcmp", reinterpret_cast<Elf64_Addr>(&memcmp)},
{"memcpy", reinterpret_cast<Elf64_Addr>(&memcpy)},
{"memfd_create", reinterpret_cast<Elf64_Addr>(&memfd_create)},
{"memmem", reinterpret_cast<Elf64_Addr>(&memmem)},
{"memmove", reinterpret_cast<Elf64_Addr>(&memmove)},
{"mempcpy", reinterpret_cast<Elf64_Addr>(&mempcpy)},
{"memrchr", reinterpret_cast<Elf64_Addr>(&memrchr_c)},
{"memset", reinterpret_cast<Elf64_Addr>(&memset)},
{"mincore", reinterpret_cast<Elf64_Addr>(&mincore)},
{"mkdir", reinterpret_cast<Elf64_Addr>(&mkdir)},
{"mkdirat", reinterpret_cast<Elf64_Addr>(&mkdirat)},
{"mkdtemp", reinterpret_cast<Elf64_Addr>(&mkdtemp)},
{"mkfifo", reinterpret_cast<Elf64_Addr>(&mkfifo)},
{"mkfifoat", reinterpret_cast<Elf64_Addr>(&mkfifoat)},
{"mknod", reinterpret_cast<Elf64_Addr>(&mknod)},
{"mknodat", reinterpret_cast<Elf64_Addr>(&mknodat)},
{"mkostemp", reinterpret_cast<Elf64_Addr>(&mkostemp)},
{"mkostemp64", reinterpret_cast<Elf64_Addr>(&mkostemp64)},
{"mkstemp", reinterpret_cast<Elf64_Addr>(&mkstemp)},
{"mkstemp64", reinterpret_cast<Elf64_Addr>(&mkstemp64)},
{"mkstemp64", reinterpret_cast<Elf64_Addr>(&mkstemp64)},
{"mkstemps", reinterpret_cast<Elf64_Addr>(&mkstemps)},
{"mktime", reinterpret_cast<Elf64_Addr>(&mktime)},
{"mlock", reinterpret_cast<Elf64_Addr>(&mlock)},
{"mmap", reinterpret_cast<Elf64_Addr>(&mmap)},
{"mmap64", reinterpret_cast<Elf64_Addr>(&mmap64)},
{"modf", reinterpret_cast<Elf64_Addr>(&modf_c)},
{"mount", reinterpret_cast<Elf64_Addr>(&mount)},
{"mprotect", reinterpret_cast<Elf64_Addr>(&mprotect)},
{"mq_getattr", reinterpret_cast<Elf64_Addr>(&mq_getattr)},
{"mremap", reinterpret_cast<Elf64_Addr>(&mremap)},
{"msgctl", reinterpret_cast<Elf64_Addr>(&msgctl)},
{"msync", reinterpret_cast<Elf64_Addr>(&msync)},
{"mtrace", reinterpret_cast<Elf64_Addr>(&mtrace)},
{"munlock", reinterpret_cast<Elf64_Addr>(&munlock)},
{"munmap", reinterpret_cast<Elf64_Addr>(&munmap)},
{"name_to_handle_at", reinterpret_cast<Elf64_Addr>(&name_to_handle_at)},
{"nanosleep", reinterpret_cast<Elf64_Addr>(&nanosleep)},
{"newlocale", reinterpret_cast<Elf64_Addr>(&newlocale)},
{"nftw64", reinterpret_cast<Elf64_Addr>(&nftw64)},
{"nice", reinterpret_cast<Elf64_Addr>(&nice)},
{"nl_langinfo", reinterpret_cast<Elf64_Addr>(&nl_langinfo)},
{"ns_name_uncompress", reinterpret_cast<Elf64_Addr>(&ns_name_uncompress)},
{"ntp_gettimex", reinterpret_cast<Elf64_Addr>(&ntp_gettimex)},
{"obstack_free", reinterpret_cast<Elf64_Addr>(&obstack_free)},
{"obstack_printf", reinterpret_cast<Elf64_Addr>(&obstack_printf)},
{"obstack_vprintf", reinterpret_cast<Elf64_Addr>(&obstack_vprintf)},
{"open", reinterpret_cast<Elf64_Addr>(&open)},
{"open64", reinterpret_cast<Elf64_Addr>(&open64)},
{"open_by_handle_at", reinterpret_cast<Elf64_Addr>(&open_by_handle_at)},
{"open_memstream", reinterpret_cast<Elf64_Addr>(&open_memstream)},
{"openat", reinterpret_cast<Elf64_Addr>(&openat)},
{"openat64", reinterpret_cast<Elf64_Addr>(&openat64)},
{"opendir", reinterpret_cast<Elf64_Addr>(&opendir)},
{"openlog", reinterpret_cast<Elf64_Addr>(&openlog)},
{"openpty", reinterpret_cast<Elf64_Addr>(&openpty)},
{"optarg", reinterpret_cast<Elf64_Addr>(&optarg)},
{"opterr", reinterpret_cast<Elf64_Addr>(&opterr)},
{"optind", reinterpret_cast<Elf64_Addr>(&optind)},
{"optopt", reinterpret_cast<Elf64_Addr>(&optopt)},
{"parse_printf_format", reinterpret_cast<Elf64_Addr>(&parse_printf_format)},
{"pathconf", reinterpret_cast<Elf64_Addr>(&pathconf)},
{"pause", reinterpret_cast<Elf64_Addr>(&pause)},
{"pclose", reinterpret_cast<Elf64_Addr>(&pclose)},
{"perror", reinterpret_cast<Elf64_Addr>(&perror)},
{"personality", reinterpret_cast<Elf64_Addr>(&personality)},
{"pipe", reinterpret_cast<Elf64_Addr>(&pipe)},
{"pipe2", reinterpret_cast<Elf64_Addr>(&pipe2)},
{"poll", reinterpret_cast<Elf64_Addr>(&poll)},
{"popen", reinterpret_cast<Elf64_Addr>(&popen)},
{"posix_fadvise", reinterpret_cast<Elf64_Addr>(&posix_fadvise)},
{"posix_fadvise64", reinterpret_cast<Elf64_Addr>(&posix_fadvise64)},
{"posix_fallocate", reinterpret_cast<Elf64_Addr>(&posix_fallocate)},
{"posix_fallocate64", reinterpret_cast<Elf64_Addr>(&posix_fallocate64)},
{"posix_madvise", reinterpret_cast<Elf64_Addr>(&posix_madvise)},
{"posix_memalign", reinterpret_cast<Elf64_Addr>(&posix_memalign)},
{"posix_openpt", reinterpret_cast<Elf64_Addr>(&posix_openpt)},
{"posix_spawn", reinterpret_cast<Elf64_Addr>(&posix_spawn)},
{"posix_spawn_file_actions_addclose", reinterpret_cast<Elf64_Addr>(&posix_spawn_file_actions_addclose)},
{"posix_spawn_file_actions_adddup2", reinterpret_cast<Elf64_Addr>(&posix_spawn_file_actions_adddup2)},
{"posix_spawn_file_actions_addopen", reinterpret_cast<Elf64_Addr>(&posix_spawn_file_actions_addopen)},
{"posix_spawn_file_actions_destroy", reinterpret_cast<Elf64_Addr>(&posix_spawn_file_actions_destroy)},
{"posix_spawn_file_actions_init", reinterpret_cast<Elf64_Addr>(&posix_spawn_file_actions_init)},
{"posix_spawnattr_destroy", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_destroy)},
{"posix_spawnattr_init", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_init)},
{"posix_spawnattr_setflags", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setflags)},
{"posix_spawnattr_setpgroup", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setpgroup)},
{"posix_spawnattr_setschedparam", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setschedparam)},
{"posix_spawnattr_setschedpolicy", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setschedpolicy)},
{"posix_spawnattr_setsigdefault", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setsigdefault)},
{"posix_spawnattr_setsigmask", reinterpret_cast<Elf64_Addr>(&posix_spawnattr_setsigmask)},
{"posix_spawnp", reinterpret_cast<Elf64_Addr>(&posix_spawnp)},
{"ppoll", reinterpret_cast<Elf64_Addr>(&ppoll)},
{"prctl", reinterpret_cast<Elf64_Addr>(&prctl)},
{"pread", reinterpret_cast<Elf64_Addr>(&pread)},
{"pread64", reinterpret_cast<Elf64_Addr>(&pread64)},
{"preadv64v2", reinterpret_cast<Elf64_Addr>(&preadv64v2)},
{"printf", reinterpret_cast<Elf64_Addr>(&printf)},
{"process_vm_readv", reinterpret_cast<Elf64_Addr>(&process_vm_readv)},
{"process_vm_writev", reinterpret_cast<Elf64_Addr>(&process_vm_writev)},
{"program_invocation_name", reinterpret_cast<Elf64_Addr>(&program_invocation_name)},
{"program_invocation_short_name", reinterpret_cast<Elf64_Addr>(&program_invocation_short_name)},
{"pselect", reinterpret_cast<Elf64_Addr>(&pselect)},
{"pthread_getattr_np", reinterpret_cast<Elf64_Addr>(&pthread_getattr_np)},
{"pthread_attr_getguardsize", reinterpret_cast<Elf64_Addr>(&pthread_attr_getguardsize)},
{"__fxstat64", reinterpret_cast<Elf64_Addr>(&fstat64)},
{"pthread_attr_getstack", reinterpret_cast<Elf64_Addr>(&pthread_attr_getstack)},
{"bcmp", reinterpret_cast<Elf64_Addr>(&bcmp)},
{"__lxstat64", reinterpret_cast<Elf64_Addr>(&lstat64)},
{"__xstat64", reinterpret_cast<Elf64_Addr>(&stat64)},
{"__fxstatat64", reinterpret_cast<Elf64_Addr>(&fstatat64)},
// {"__libc_fatal", reinterpret_cast<Elf64_Addr>(&__libc_fatal)},
// {"__libc_unwind_link_get", reinterpret_cast<Elf64_Addr>(&__libc_unwind_link_get)},
{"pthread_attr_destroy", reinterpret_cast<Elf64_Addr>(&pthread_attr_destroy)},
{"pthread_attr_getstacksize", reinterpret_cast<Elf64_Addr>(&pthread_attr_getstacksize)},
{"pthread_attr_init", reinterpret_cast<Elf64_Addr>(&pthread_attr_init)},
{"pthread_attr_setdetachstate", reinterpret_cast<Elf64_Addr>(&pthread_attr_setdetachstate)},
{"pthread_attr_setguardsize", reinterpret_cast<Elf64_Addr>(&pthread_attr_setguardsize)},
{"pthread_attr_setinheritsched", reinterpret_cast<Elf64_Addr>(&pthread_attr_setinheritsched)},
{"pthread_attr_setscope", reinterpret_cast<Elf64_Addr>(&pthread_attr_setscope)},
{"pthread_attr_setstacksize", reinterpret_cast<Elf64_Addr>(&pthread_attr_setstacksize)},
{"pthread_barrier_destroy", reinterpret_cast<Elf64_Addr>(&pthread_barrier_destroy)},
{"pthread_barrier_init", reinterpret_cast<Elf64_Addr>(&pthread_barrier_init)},
{"pthread_barrier_wait", reinterpret_cast<Elf64_Addr>(&pthread_barrier_wait)},
{"pthread_cancel", reinterpret_cast<Elf64_Addr>(&pthread_cancel)},
{"pthread_cond_broadcast", reinterpret_cast<Elf64_Addr>(&pthread_cond_broadcast)},
{"pthread_cond_broadcast", reinterpret_cast<Elf64_Addr>(&pthread_cond_broadcast)},
{"pthread_cond_destroy", reinterpret_cast<Elf64_Addr>(&pthread_cond_destroy)},
{"pthread_cond_destroy", reinterpret_cast<Elf64_Addr>(&pthread_cond_destroy)},
{"pthread_cond_init", reinterpret_cast<Elf64_Addr>(&pthread_cond_init)},
{"pthread_cond_init", reinterpret_cast<Elf64_Addr>(&pthread_cond_init)},
{"pthread_cond_signal", reinterpret_cast<Elf64_Addr>(&pthread_cond_signal)},
{"pthread_cond_signal", reinterpret_cast<Elf64_Addr>(&pthread_cond_signal)},
{"pthread_cond_timedwait", reinterpret_cast<Elf64_Addr>(&pthread_cond_timedwait)},
{"pthread_cond_wait", reinterpret_cast<Elf64_Addr>(&pthread_cond_wait)},
{"pthread_cond_wait", reinterpret_cast<Elf64_Addr>(&pthread_cond_wait)},
{"pthread_condattr_destroy", reinterpret_cast<Elf64_Addr>(&pthread_condattr_destroy)},
{"pthread_condattr_init", reinterpret_cast<Elf64_Addr>(&pthread_condattr_init)},
{"pthread_condattr_setclock", reinterpret_cast<Elf64_Addr>(&pthread_condattr_setclock)},
{"pthread_condattr_setpshared", reinterpret_cast<Elf64_Addr>(&pthread_condattr_setpshared)},
{"pthread_create", reinterpret_cast<Elf64_Addr>(&pthread_create)},
{"pthread_detach", reinterpret_cast<Elf64_Addr>(&pthread_detach)},