-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.minilib
2102 lines (1829 loc) · 68.4 KB
/
Makefile.minilib
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
# Makefile for minilib
#
# call with 'make -f Makefile.minilib [CONF=configfile.conf] BUILD=binaryname'
#
# When minilib.h is not present,
# it will be downloaded from github. (100kB gzipped)
#
# Dependencies: gcc or clang, sed
#
# Minilib and the accompanying tools and scripts are licensed under a
# BSD-style opensource license with attribution.
# I did my best and I'm using minilib myself,
# but cannot give any guarantees for any functionality
# of the opensourced library or the accompanying tools.
#
# (Disclaimer)
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL Michael Myer BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# The full license is available at the webpage of minilib.
# https://github.com/michael105/minilib
# Michael (misc) Myer, 2012-2021
#
VERSION:="20211012"
$(info Build:$(BUILD) Conf:$(CONF))
#default values
ifndef $(CONF)
CONF:=$(BUILD).c
endif
ifndef $(BUILD)
BUILD:=$(shell echo "$(CONF)" | sed 's/.*\///;s/\..*//')
endif
ifndef $(CC)
CC:=gcc
endif
ifndef $(BUILDDIR)
BUILDDIR:=build
endif
ifndef $(SOURCES)
SOURCES:=$(BUILD).c
endif
ifndef $(LDSCRIPT)
LDSCRIPT:=default
endif
$(info Build:$(BUILD) Conf:$(CONF) CC:$(CC) BUILDDIR:$(BUILDDIR) SOURCES:$(SOURCES) LDSCRIPT:$(LDSCRIPT))
urlbase := "https://raw.githubusercontent.com/michael105/minilib/download"
fetch = $(shell ((curl $(urlbase)/$(VERSION)/$(1).gz > $(1).gz) || (wget $(urlbase)/$(VERSION)/$(1).gz)) && gunzip $(1).gz)
SELF = $(lastword $(MAKEFILE_LIST))
#$(info Using config: $(CONF))
.ONESHELL:
default: $(BUILDDIR) minilib.h
@echo Using config $(CONF)
echo generate $(BUILDDIR)/$(CONF).h
BINARY=$(BUILD)
MINILIB=minilib.h
echo use header: $$MINILIB
source $(defaultvalues)
source $(genconfig)
source $(CONF) > $(BUILDDIR)/$(CONF).h || exit 1
echo LDSCRIPT: $$LDSCRIPT
echo generate $(BUILDDIR)/$(CONF).ldscript
#echo $($$VAR) > $(BUILDDIR)/$(CONF).ldscript || exit 1
cat $(SELF) | sed -n "/ldscripts\/ld.script.$$LDSCRIPT/,/endef/p" | sed '1d;/endef/Q' > $(BUILDDIR)/$(CONF).ldscript || exit 1
echo compile $(SOURCES) to $(BUILD)
echo $(CC) -include "$(BUILDDIR)/$(CONF).h" -include $$MINILIB $$OPTFLAG $$STRIPFLAG \
$$CFLAGS $$LDFLAGS,-T$(BUILDDIR)/$(CONF).ldscript $(SOURCES) -o $$BINARY
$(if $(SHOWSOURCE),\
($(CC) -include "$(BUILDDIR)/$(CONF).h" -include $$MINILIB $$OPTFLAG $$STRIPFLAG \
$$CFLAGS,-T$(BUILDDIR)/$(CONF).ldscript $(SOURCES) -E -P),\
($(CC) -include "$(BUILDDIR)/$(CONF).h" -include $$MINILIB $$OPTFLAG $$STRIPFLAG \
$$CFLAGS,-T$(BUILDDIR)/$(CONF).ldscript $(SOURCES) -o $$BINARY ))
$(if $$opt_shrinkelf,echo shrinkelf $$BINARY)
$(if $$opt_shrinkelf,$(MAKE) -f $(SELF) $(BUILDDIR)/shrinkelf && $(BUILDDIR)/shrinkelf $$BINARY)
minilib.h:
$(info Download minilib.h)
$(call fetch,minilib.h)
$(info Ok)
$(BUILDDIR)/shrinkelf: minilib.h $(BUILDDIR)/shrinkelf.c $(BUILDDIR)/shrinkelf.mconf
$(MAKE) -f $(SELF) default BUILD=$(BUILDDIR)/shrinkelf CONF=$(BUILDDIR)/shrinkelf.mconf BUILDDIR=.
$(BUILDDIR)/shrinkelf.c: minilib.h
$(CC) -Dminilibcompiled_h -DSHRINKELF -E -P minilib.h > $(BUILDDIR)/shrinkelf.c
$(BUILDDIR)/shrinkelf.mconf: minilib.h
$(CC) -Dminilibcompiled_h -DSHRINKELF_MCONF -E -P minilib.h > $(BUILDDIR)/shrinkelf.mconf
check:
@echo Check sha256sums
@cat << ENDL > sign.tmp
$(sha256sums)
ENDL
#> sign.tmp
sed '/^#sha256sums/q' $(SELF) | sha256sum -c sign.tmp
$(BUILDDIR):
$(shell if [ ! -d "$(BUILDDIR)" ]; then mkdir $(BUILDDIR); fi)
help:
$(info $(help))
license:
$(info $(license))
define help =
The following (optional) environmental variables are used:
CC The name and path of the compiler
CONF The configfile for minilib
SOURCES sourcefiles
BUILDDIR Where to build the binaries
CFLAGS optional flags for the compiler
CLANG Set this to 1 to use clang as compiler.
(Or set CC to clang)
OPTFLAG optimization flag (default -Os)
STRIPFLAG stripflag (default -s)
PICFLAG parameter -fpic/-fno-pic .. (default -fno-pic)
LDFLAG Name of the ldscript
VERBOSE Set this to 1 to enable verbose messages
NOCOLOR Set this to 1 to disable colors
SHOWSOURCES Set to 1 to save all combined sources into the outputfile
(c) 2019-2021 Michael misc Myer. All rights reserved.
Free to use with attribution
'make -f $(SELF) license' shows the license
endef
define license =
-------------------------------------------------
Copyright (c) 2012-2021, Michael (misc) Myer
([email protected], www.github.com/michael105)
Donations welcome: Please contact me.
All rights reserved.
-------------------------------------------------
I did this minilib out of enthuiasm.
One side, I`d like to have this project being opensource.
On the other hand, I spent really much time with the development.
In an ideal world, someone would sponsor me for this time.
It is, however, not an ideal world we are living in.
Therefore I do have to insist on attributions and what
I`d like to call `fair use`.
In short, you are allowed to do with this project what you wish,
as long you show the copyright notice at a prominent place,
and include the file NOTICE in distributions.
That`s the intention of this license,
which I`d like to name "Fair use with attribution".
License
The terms `minilib`, `source code`, `redistribution` or `linked with`
apply to the minilib in full as well as to parts of minilib.
All files belonging to this project are subject to this license, besides
files, where within the header explicitely other licensing terms are noted.
Michael (misc) Myer is a Pseudonym.
When your local laws don`t permit usage of pseudonyms, this license
or one of its sentences would be not legal, or you do not comply
to this license, you may neither use minilib nor parts of this project.
The author is under this condition still the owner and copyright holder
of this software. Please contact me for different licensing terms
in this case, and explain your situation.
Redistribution, use and derived works in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above full notice,
the file NOTICE, this list of conditions and the following disclaimer in
the documentation and other materials provided with the distribution
* Redistributions in binary form must reproduce the above copyright notice,
the file NOTICE, this list of conditions and the following disclaimer in
the documentation and other materials provided with the distribution
* Software linked with, or derived from minilib must reproduce
the file NOTICE, this list of conditions and the following disclaimer
in the documentation, and other materials
* Applications and software linked with, or derived from minilib must
in addition reproduce one of the according full notices below for derived or
linked works within a documentation accessible at runtime:
- `--help` documentation
- online manual for web applications
- Alternatively within a for every user clearly visible and
readable message at the application startup
* Software and applications without a textual or graphical user interface
linked with, or derived from minilib must
reproduce the above copyright notice,
the file NOTICE, this list of conditions and the following disclaimer in
the documentation and all other materials like advertisements,
manuals, datasheets, etc.
* Neither the name of the minilib nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission
Disclaimer:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL Michael Myer BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
End of the license.
Please contact me, if you are in need of other license terms.
Notices:
(Notice for linked works)
................................................
Linked with minilib,
Copyright (c) 2012-2021, Michael (misc) Myer
([email protected], www.github.com/michael105)
Donations welcome: Please contact me.
All rights reserved.
................................................
(Notice for derived works)
................................................
Based on minilib,
Copyright (c) 2012-2021, Michael (misc) Myer
([email protected], www.github.com/michael105)
Donations welcome: Please contact me.
All rights reserved.
................................................
Some files in the folders headers and contrib have other licensing terms.
Please look at the sources.
endef
define genconfig =
#genconfig_start
#
# Script, updated from "make header" / genheaders.pl
# The functions are callen from minilib.conf
# (or another config file)
# The output of this script generates minilib.conf.h
#
# empty, to enable parsing 'makefiles'
ifdef(){
echo -n
}
globalregister(){
if [ ! -z $$1 ]; then
echo "#define mini_globalregister $$1"
else
echo '#define mini_globalregister "r15"'
fi
}
mini_errno(){
echo "#define mini_errno $$1"
}
compile(){
for f in `echo $$* | tr ',' ' '`;
do "mini_$$f"
done
}
COMPILE(){
for f in `echo $$* | tr ',' ' '`;
do "mini_$$f"
done
}
VERBOSE(){
export verbose="1"
}
mini_start(){
echo "#define mini_start $$1"
}
mini_exit(){
echo "#define mini_exit $$1"
}
mini_setjmp(){
echo "#define mini_setjmp"
}
mini_longjmp(){
mini_setjmp
}
LDSCRIPT(){
export LDSCRIPT="$$1"
}
PICFLAG(){
export PICFLAG="$$1"
}
shrinkelf(){
export opt_shrinkelf=1
}
SHRINKELF(){
export opt_shrinkelf=1
}
ARCH(){
echo "#define MINILIB_ARCH $$1"
export MINI_ARCH=$$1
}
OS(){
echo "#define MINILIB_OS $$1"
export MINI_OS=$$1
}
mini_buf(){
echo "#define mini_buf $$1"
}
mini_INCLUDESRC(){
echo "#define INCLUDESRC"
}
OPTIMIZE(){
echo "#define mini_OPTIMIZE"
}
BINARY(){
export outputfile=$$1
export BINARY=$$1
}
SOURCES(){
export sources="$$*"
export SOURCES="$$*"
}
DUMMYHEADER(){
export DUMMYHEADER="1"
}
INCLUDESRC(){
echo "#define INCLUDESRC"
}
mini_GETOPTS(){
echo "#define mini_GETOPTS"
}
# The (optimization)-flag, gcc is callen with.
# Either leave it blank, or set it to e.g. '-Os'
# -O2 and higher optimizations seem to give trouble.
# -Os, -O0, -O1 passed all tests here and might be save.
OPTFLAG(){
if [ -z "$$OPTFLAG" ]; then
export OPTFLAG=$$1
fi
}
# The stripflag (defaults to -s)
STRIPFLAG(){
if [ -z "$$STRIPFLAG" ]; then
export STRIPFLAG=$$1
fi
}
# Generate debug symbols - don't optimize, don't strip
DEBUG(){
export OPTFLAG='-Og -g'
export STRIPFLAG=""
export opt_shrinkelf=0
}
# Generate debug symbols, including minilib's source.
FULLDEBUG(){
export opt_shrinkelf=0
export fulldebug=1
}
# Generate debug symbols, including minilib itself
# A new outputfile ( sourcefilename.dbg.c ) containing the
# used parts of the minilib source is generated
# and compiled to make this work
mini_HEADERGUARDS(){
echo "#define HEADERGUARDS"
}
HEADERGUARDS(){
echo "#define HEADERGUARDS"
}
mini_syscalls(){
echo "#define mini_syscalls"
}
globals_on_stack(){
echo "#define mini_globals_on_stack"
}
mini_globals(){
echo "#define mini_globals"
}
define(){
param=$$1
shift
echo "#define" $$param \"$$*\"
}
DEFINE(){
param=$$1
shift
echo "#define" $$param \"$$*\"
#echo "#define" $$1 $$2
}
embed(){
export embed="$$*"
}
mini_getopt(){
echo "#define mini_getopt"
}
mini_getopt_long(){
echo "#define mini_getopt_long"
}
mini_define(){
if [ ! -z $$2 ]; then
echo "#define mini_$$1 $$2"
else
echo "#define mini_$$1 $$1"
fi
}
# Everything below will be silently overwritten,
# when make header ist invoked
# --- define_functions-start: generate --- #
mini__unlinkat(){ mini_define _unlinkat generate; }
mini_access(){ mini_define access generate; }
mini_term_width(){ mini_define term_width generate; }
mini__match_ext2(){ mini_define _match_ext2 generate; }
mini__sync(){ mini_define _sync generate; }
mini___sysctl(){ mini_define __sysctl generate; }
mini_inotify_rm_watch(){ mini_define inotify_rm_watch generate; }
mini_freopen(){ mini_define freopen generate; }
mini_getpwent(){ mini_define getpwent generate; }
mini_killpg(){ mini_define killpg generate; }
mini_uitodec(){ mini_define uitodec generate; }
mini__write(){ mini_define _write generate; }
mini__nanosleep(){ mini_define _nanosleep generate; }
mini__getgid(){ mini_define _getgid generate; }
mini_sigfillset(){ mini_define sigfillset generate; }
mini_inet_ntoa(){ mini_define inet_ntoa generate; }
mini__getitimer(){ mini_define _getitimer generate; }
mini__rt_sigprocmask(){ mini_define _rt_sigprocmask generate; }
mini__mknod(){ mini_define _mknod generate; }
mini__strcasecmp(){ mini_define _strcasecmp generate; }
mini_inotify_add_watch(){ mini_define inotify_add_watch generate; }
mini__semtimedop(){ mini_define _semtimedop generate; }
mini_max_groupmembers(){ mini_define max_groupmembers generate; }
mini_getgrouplist(){ mini_define getgrouplist generate; }
mini_fcntl(){ mini_define fcntl generate; }
mini__close(){ mini_define _close generate; }
mini_creat(){ mini_define creat generate; }
mini__listxattr(){ mini_define _listxattr generate; }
mini__clock_nanosleep(){ mini_define _clock_nanosleep generate; }
mini_short_errstr(){ mini_define short_errstr generate; }
mini_malloc_brk(){ mini_define malloc_brk generate; }
mini_dirbuf(){ mini_define dirbuf generate; }
mini_token_s(){ mini_define token_s generate; }
mini_sigprocmask(){ mini_define sigprocmask generate; }
mini__umask(){ mini_define _umask generate; }
mini_inet_aton(){ mini_define inet_aton generate; }
mini_fprints(){ mini_define fprints generate; }
mini__mq_open(){ mini_define _mq_open generate; }
mini__getpgid(){ mini_define _getpgid generate; }
mini_mkfifo(){ mini_define mkfifo generate; }
mini_setgid(){ mini_define setgid generate; }
mini_free_brk(){ mini_define free_brk generate; }
mini__inotify_init1(){ mini_define _inotify_init1 generate; }
mini_utime(){ mini_define utime generate; }
mini_eprints(){ mini_define eprints generate; }
mini__msgctl(){ mini_define _msgctl generate; }
mini__process_vm_readv(){ mini_define _process_vm_readv generate; }
mini__setdomainname(){ mini_define _setdomainname generate; }
mini__access(){ mini_define _access generate; }
mini_rt_sigsuspend(){ mini_define rt_sigsuspend generate; }
mini__wait4(){ mini_define _wait4 generate; }
mini__renameat(){ mini_define _renameat generate; }
mini__getresgid(){ mini_define _getresgid generate; }
mini__request_key(){ mini_define _request_key generate; }
mini__open(){ mini_define _open generate; }
mini_where(){ mini_define where generate; }
mini_errx(){ mini_define errx generate; }
mini_fgets(){ mini_define fgets generate; }
mini_poll(){ mini_define poll generate; }
mini_network(){ mini_define network generate; }
mini_realloc(){ mini_define realloc generate; }
mini__inotify_rm_watch(){ mini_define _inotify_rm_watch generate; }
mini__shmget(){ mini_define _shmget generate; }
mini__signalfd(){ mini_define _signalfd generate; }
mini__syncfs(){ mini_define _syncfs generate; }
mini_grent(){ mini_define grent generate; }
mini__mmap(){ mini_define _mmap generate; }
mini__readlink(){ mini_define _readlink generate; }
mini__personality(){ mini_define _personality generate; }
mini__signalfd4(){ mini_define _signalfd4 generate; }
mini__openat(){ mini_define _openat generate; }
mini__recvmsg(){ mini_define _recvmsg generate; }
mini__epoll_ctl(){ mini_define _epoll_ctl generate; }
mini_ntohl(){ mini_define ntohl generate; }
mini__ustat(){ mini_define _ustat generate; }
mini_die_if(){ mini_define die_if generate; }
mini_dup(){ mini_define dup generate; }
mini_printl(){ mini_define printl generate; }
mini_ioctl(){ mini_define ioctl generate; }
mini__semctl(){ mini_define _semctl generate; }
mini_fgetpos(){ mini_define fgetpos generate; }
mini_verbose_errstr(){ mini_define verbose_errstr generate; }
mini__getresuid(){ mini_define _getresuid generate; }
mini_sigismember(){ mini_define sigismember generate; }
mini__timerfd_settime(){ mini_define _timerfd_settime generate; }
mini__pivot_root(){ mini_define _pivot_root generate; }
mini__lremovexattr(){ mini_define _lremovexattr generate; }
mini__epoll_create1(){ mini_define _epoll_create1 generate; }
mini_djb2_hash(){ mini_define djb2_hash generate; }
mini_inotify_init(){ mini_define inotify_init generate; }
mini_strcasecmp(){ mini_define strcasecmp generate; }
mini__open_by_handle_at(){ mini_define _open_by_handle_at generate; }
mini_chmod(){ mini_define chmod generate; }
mini__msgrcv(){ mini_define _msgrcv generate; }
mini_rt_sigaction(){ mini_define rt_sigaction generate; }
mini_writesl(){ mini_define writesl generate; }
mini__setreuid(){ mini_define _setreuid generate; }
mini_mremap(){ mini_define mremap generate; }
mini__pwrite64(){ mini_define _pwrite64 generate; }
mini_tcgetpgrp(){ mini_define tcgetpgrp generate; }
mini__recvfrom(){ mini_define _recvfrom generate; }
mini__flistxattr(){ mini_define _flistxattr generate; }
mini__tkill(){ mini_define _tkill generate; }
mini__futimesat(){ mini_define _futimesat generate; }
mini__clock_settime(){ mini_define _clock_settime generate; }
mini__select(){ mini_define _select generate; }
mini__setresgid(){ mini_define _setresgid generate; }
mini_exit_errno(){ mini_define exit_errno generate; }
mini_fopen(){ mini_define fopen generate; }
mini__fsetxattr(){ mini_define _fsetxattr generate; }
mini_clearerror(){ mini_define clearerror generate; }
mini__fchownat(){ mini_define _fchownat generate; }
mini__rt_sigpending(){ mini_define _rt_sigpending generate; }
mini__match(){ mini_define _match generate; }
mini_ultodec(){ mini_define ultodec generate; }
mini_fprintfs(){ mini_define fprintfs generate; }
mini_gets(){ mini_define gets generate; }
mini__ioprio_get(){ mini_define _ioprio_get generate; }
mini_fputs(){ mini_define fputs generate; }
mini__mprints(){ mini_define _mprints generate; }
mini_brk(){ mini_define brk generate; }
mini_fgetsn(){ mini_define fgetsn generate; }
mini__setresuid(){ mini_define _setresuid generate; }
mini_fsetpos(){ mini_define fsetpos generate; }
mini__fork(){ mini_define _fork generate; }
mini__fstatfs(){ mini_define _fstatfs generate; }
mini__shmat(){ mini_define _shmat generate; }
mini__sched_getparam(){ mini_define _sched_getparam generate; }
mini_sigaction(){ mini_define sigaction generate; }
mini_ewrite(){ mini_define ewrite generate; }
mini_execl(){ mini_define execl generate; }
mini_assert(){ mini_define assert generate; }
mini_vhangup(){ mini_define vhangup generate; }
mini_fsync(){ mini_define fsync generate; }
mini__writev(){ mini_define _writev generate; }
mini_gethostname(){ mini_define gethostname generate; }
mini_ungetc(){ mini_define ungetc generate; }
mini__symlinkat(){ mini_define _symlinkat generate; }
mini_posix_openpt(){ mini_define posix_openpt generate; }
mini_getpwnam(){ mini_define getpwnam generate; }
mini_fwrite(){ mini_define fwrite generate; }
mini__socket(){ mini_define _socket generate; }
mini__semop(){ mini_define _semop generate; }
mini_swap(){ mini_define swap generate; }
mini_setpwent(){ mini_define setpwent generate; }
mini_setbuf(){ mini_define setbuf generate; }
mini_opendir(){ mini_define opendir generate; }
mini_abort(){ mini_define abort generate; }
mini__set_tid_address(){ mini_define _set_tid_address generate; }
mini_gettimeofday(){ mini_define gettimeofday generate; }
mini_rename(){ mini_define rename generate; }
mini__setitimer(){ mini_define _setitimer generate; }
mini_raise(){ mini_define raise generate; }
mini__setgid(){ mini_define _setgid generate; }
mini_sys_signame(){ mini_define sys_signame generate; }
mini_err(){ mini_define err generate; }
mini_listen(){ mini_define listen generate; }
mini_signal(){ mini_define signal generate; }
mini__capget(){ mini_define _capget generate; }
mini_strtok(){ mini_define strtok generate; }
mini_geteuid(){ mini_define geteuid generate; }
mini__epoll_pwait(){ mini_define _epoll_pwait generate; }
mini__exit_group(){ mini_define _exit_group generate; }
mini__adjtimex(){ mini_define _adjtimex generate; }
mini__die(){ mini_define _die generate; }
mini_eprintfs(){ mini_define eprintfs generate; }
mini_rewinddir(){ mini_define rewinddir generate; }
mini_free(){ mini_define free generate; }
mini_fclose(){ mini_define fclose generate; }
mini_eputs(){ mini_define eputs generate; }
mini_umount2(){ mini_define umount2 generate; }
mini__clone(){ mini_define _clone generate; }
mini_rand(){ mini_define rand generate; }
mini__memfd_create(){ mini_define _memfd_create generate; }
mini_putchar(){ mini_define putchar generate; }
mini_userdb(){ mini_define userdb generate; }
mini_strtol(){ mini_define strtol generate; }
mini_lseek(){ mini_define lseek generate; }
mini_tcsetattr(){ mini_define tcsetattr generate; }
mini_getpwuid(){ mini_define getpwuid generate; }
mini_getgid(){ mini_define getgid generate; }
mini__setpgid(){ mini_define _setpgid generate; }
mini_atoi(){ mini_define atoi generate; }
mini_dup3(){ mini_define dup3 generate; }
mini_endpwent(){ mini_define endpwent generate; }
mini_error(){ mini_define error generate; }
mini__setfsgid(){ mini_define _setfsgid generate; }
mini__msync(){ mini_define _msync generate; }
mini__getpgrp(){ mini_define _getpgrp generate; }
mini__strcmp(){ mini_define _strcmp generate; }
mini__stat(){ mini_define _stat generate; }
mini__alarm(){ mini_define _alarm generate; }
mini__inotify_init(){ mini_define _inotify_init generate; }
mini__setsockopt(){ mini_define _setsockopt generate; }
mini__readlinkat(){ mini_define _readlinkat generate; }
mini__pipe(){ mini_define _pipe generate; }
mini_closedir(){ mini_define closedir generate; }
mini_match(){ mini_define match generate; }
mini_getrlimit(){ mini_define getrlimit generate; }
mini__getdents64(){ mini_define _getdents64 generate; }
mini__setrlimit(){ mini_define _setrlimit generate; }
mini_errno_str(){ mini_define errno_str generate; }
mini__mq_notify(){ mini_define _mq_notify generate; }
mini__mlockall(){ mini_define _mlockall generate; }
mini_atol(){ mini_define atol generate; }
mini__getsid(){ mini_define _getsid generate; }
mini__sendto(){ mini_define _sendto generate; }
mini__perf_event_open(){ mini_define _perf_event_open generate; }
mini_ferror(){ mini_define ferror generate; }
mini_ansicolors(){ mini_define ansicolors generate; }
mini_memfd_create(){ mini_define memfd_create generate; }
mini_writes(){ mini_define writes generate; }
mini__pause(){ mini_define _pause generate; }
mini__mkdir(){ mini_define _mkdir generate; }
mini__umount2(){ mini_define _umount2 generate; }
mini_memset(){ mini_define memset generate; }
mini__rt_sigsuspend(){ mini_define _rt_sigsuspend generate; }
mini__fallocate(){ mini_define _fallocate generate; }
mini__rt_tgsigqueueinfo(){ mini_define _rt_tgsigqueueinfo generate; }
mini__kexec_load(){ mini_define _kexec_load generate; }
mini__msgsnd(){ mini_define _msgsnd generate; }
mini_print(){ mini_define print generate; }
mini_time(){ mini_define time generate; }
mini_verbose_errstr2(){ mini_define verbose_errstr2 generate; }
mini__times(){ mini_define _times generate; }
mini_snprintfs(){ mini_define snprintfs generate; }
mini__epoll_create(){ mini_define _epoll_create generate; }
mini_opendirp(){ mini_define opendirp generate; }
mini__syslog(){ mini_define _syslog generate; }
mini__removexattr(){ mini_define _removexattr generate; }
mini_dirbuf_malloc(){ mini_define dirbuf_malloc generate; }
mini__dup(){ mini_define _dup generate; }
mini_pipe(){ mini_define pipe generate; }
mini_token_i(){ mini_define token_i generate; }
mini_match_ext(){ mini_define match_ext generate; }
mini__utimensat(){ mini_define _utimensat generate; }
mini_setsid(){ mini_define setsid generate; }
mini__eventfd2(){ mini_define _eventfd2 generate; }
mini_bsd_timespec(){ mini_define bsd_timespec generate; }
mini__lookup_dcookie(){ mini_define _lookup_dcookie generate; }
mini_setpgid(){ mini_define setpgid generate; }
mini__ioperm(){ mini_define _ioperm generate; }
mini_unlockpt(){ mini_define unlockpt generate; }
mini__sched_setaffinity(){ mini_define _sched_setaffinity generate; }
mini_strtoll(){ mini_define strtoll generate; }
mini_telldir(){ mini_define telldir generate; }
mini__statfs(){ mini_define _statfs generate; }
mini_timerfd_settime(){ mini_define timerfd_settime generate; }
mini_usleep(){ mini_define usleep generate; }
mini_vexec(){ mini_define vexec generate; }
mini__connect(){ mini_define _connect generate; }
mini_strstr(){ mini_define strstr generate; }
mini_malloc(){ mini_define malloc generate; }
mini_umask(){ mini_define umask generate; }
mini_snprintf(){ mini_define snprintf generate; }
mini_dirbufsize (){ mini_define dirbufsize generate; }
mini_recv(){ mini_define recv generate; }
mini_alphasort(){ mini_define alphasort generate; }
mini_itooct(){ mini_define itooct generate; }
mini_printfs(){ mini_define printfs generate; }
mini__futex(){ mini_define _futex generate; }
mini_fexecveat(){ mini_define fexecveat generate; }
mini_getc(){ mini_define getc generate; }
mini__munmap(){ mini_define _munmap generate; }
mini_atexit(){ mini_define atexit generate; }
mini__fremovexattr(){ mini_define _fremovexattr generate; }
mini_vfprintf(){ mini_define vfprintf generate; }
mini__sendmsg(){ mini_define _sendmsg generate; }
mini_sendto(){ mini_define sendto generate; }
mini__mbind(){ mini_define _mbind generate; }
mini_mkdir(){ mini_define mkdir generate; }
mini__faccessat(){ mini_define _faccessat generate; }
mini_accept(){ mini_define accept generate; }
mini_sendfile(){ mini_define sendfile generate; }
mini__vmsplice(){ mini_define _vmsplice generate; }
mini_strcat(){ mini_define strcat generate; }
mini_execveat(){ mini_define execveat generate; }
mini__unshare(){ mini_define _unshare generate; }
mini_getsid(){ mini_define getsid generate; }
mini__mincore(){ mini_define _mincore generate; }
mini__llistxattr(){ mini_define _llistxattr generate; }
mini__sync_file_range(){ mini_define _sync_file_range generate; }
mini_ret_errno(){ mini_define ret_errno generate; }
mini__lsetxattr(){ mini_define _lsetxattr generate; }
mini__sethostname(){ mini_define _sethostname generate; }
mini_environ(){ mini_define environ generate; }
mini__utimes(){ mini_define _utimes generate; }
mini_nanosleep(){ mini_define nanosleep generate; }
mini_die(){ mini_define die generate; }
mini_socket(){ mini_define socket generate; }
mini__inotify_add_watch(){ mini_define _inotify_add_watch generate; }
mini_ntohs(){ mini_define ntohs generate; }
mini__accept4(){ mini_define _accept4 generate; }
mini__add_key(){ mini_define _add_key generate; }
mini_sdbm_hash(){ mini_define sdbm_hash generate; }
mini__migrate_pages(){ mini_define _migrate_pages generate; }
mini__epoll_wait(){ mini_define _epoll_wait generate; }
mini_srand(){ mini_define srand generate; }
mini__splice(){ mini_define _splice generate; }
mini__kill(){ mini_define _kill generate; }
mini_memfrob(){ mini_define memfrob generate; }
mini__sched_getattr(){ mini_define _sched_getattr generate; }
mini_group_write(){ mini_define group_write generate; }
mini__kexec_file_load(){ mini_define _kexec_file_load generate; }
mini_eprintf(){ mini_define eprintf generate; }
mini_fgetud(){ mini_define fgetud generate; }
mini__timer_settime(){ mini_define _timer_settime generate; }
mini__accept(){ mini_define _accept generate; }
mini_uname(){ mini_define uname generate; }
mini__fsync(){ mini_define _fsync generate; }
mini__rt_sigreturn(){ mini_define _rt_sigreturn generate; }
mini_prctl(){ mini_define prctl generate; }
mini_rt_sigprocmask(){ mini_define rt_sigprocmask generate; }
mini_strchrnul(){ mini_define strchrnul generate; }
mini_fstat(){ mini_define fstat generate; }
mini__getsockopt(){ mini_define _getsockopt generate; }
mini_execv(){ mini_define execv generate; }
mini__io_submit(){ mini_define _io_submit generate; }
mini__fchdir(){ mini_define _fchdir generate; }
mini_setrlimit(){ mini_define setrlimit generate; }
mini__getrlimit(){ mini_define _getrlimit generate; }
mini_strncat(){ mini_define strncat generate; }
mini__clock_adjtime(){ mini_define _clock_adjtime generate; }
mini_group_print(){ mini_define group_print generate; }
mini_getrusage(){ mini_define getrusage generate; }
mini__capset(){ mini_define _capset generate; }
mini_strnlen(){ mini_define strnlen generate; }
mini__shmdt(){ mini_define _shmdt generate; }
mini_uitohex(){ mini_define uitohex generate; }
mini_seekdir(){ mini_define seekdir generate; }
mini_fprintf(){ mini_define fprintf generate; }
mini_strrchr(){ mini_define strrchr generate; }
mini_read(){ mini_define read generate; }
mini_kill(){ mini_define kill generate; }
mini__setsid(){ mini_define _setsid generate; }
mini_eprintsl(){ mini_define eprintsl generate; }
mini_putenv(){ mini_define putenv generate; }
mini__fchmodat(){ mini_define _fchmodat generate; }
mini_userdb_open(){ mini_define userdb_open generate; }
mini_cfmakeraw(){ mini_define cfmakeraw generate; }
mini__sched_getscheduler(){ mini_define _sched_getscheduler generate; }
mini_clearerr(){ mini_define clearerr generate; }
mini_close(){ mini_define close generate; }
mini__vhangup(){ mini_define _vhangup generate; }
mini__fanotify_init(){ mini_define _fanotify_init generate; }
mini__symlink(){ mini_define _symlink generate; }
mini_memcmp(){ mini_define memcmp generate; }
mini_fdopen(){ mini_define fdopen generate; }
mini_locale_dummies(){ mini_define locale_dummies generate; }
mini_select(){ mini_define select generate; }
mini_fgetc(){ mini_define fgetc generate; }
mini__getppid(){ mini_define _getppid generate; }
mini__getrusage(){ mini_define _getrusage generate; }
mini_getgrent(){ mini_define getgrent generate; }
mini__sched_get_priority_min(){ mini_define _sched_get_priority_min generate; }
mini__getcpu(){ mini_define _getcpu generate; }
mini_strchr(){ mini_define strchr generate; }
mini_timerfd_create(){ mini_define timerfd_create generate; }
mini_link(){ mini_define link generate; }
mini_tcgetattr(){ mini_define tcgetattr generate; }
mini_fwrites(){ mini_define fwrites generate; }
mini_rmdir(){ mini_define rmdir generate; }
mini_grantpt(){ mini_define grantpt generate; }
mini__prctl(){ mini_define _prctl generate; }
mini__rename(){ mini_define _rename generate; }
mini_getpid(){ mini_define getpid generate; }
mini_strlen(){ mini_define strlen generate; }
mini__getpid(){ mini_define _getpid generate; }
mini__reboot(){ mini_define _reboot generate; }
mini_strncpy(){ mini_define strncpy generate; }
mini_div(){ mini_define div generate; }
mini__mlock(){ mini_define _mlock generate; }
mini__mprotect(){ mini_define _mprotect generate; }
mini_fork(){ mini_define fork generate; }
mini_system(){ mini_define system generate; }
mini_strlcpy(){ mini_define strlcpy generate; }
mini__fopen(){ mini_define _fopen generate; }
mini_unmap_protected(){ mini_define unmap_protected generate; }
mini_setbrk(){ mini_define setbrk generate; }
mini_basename(){ mini_define basename generate; }
mini__delete_module(){ mini_define _delete_module generate; }
mini_getgroups(){ mini_define getgroups generate; }
mini_getdents(){ mini_define getdents generate; }
mini_vfork(){ mini_define vfork generate; }
mini__ioprio_set(){ mini_define _ioprio_set generate; }
mini__gettimeofday(){ mini_define _gettimeofday generate; }
mini_exit(){ mini_define exit generate; }
mini_vexec_q(){ mini_define vexec_q generate; }
mini__rt_sigqueueinfo(){ mini_define _rt_sigqueueinfo generate; }
mini_seterrno(){ mini_define seterrno generate; }
mini__set_robust_list(){ mini_define _set_robust_list generate; }
mini_bsearch(){ mini_define bsearch generate; }
mini__tee(){ mini_define _tee generate; }
mini__clock_gettime(){ mini_define _clock_gettime generate; }
mini__dup2(){ mini_define _dup2 generate; }
mini__uname(){ mini_define _uname generate; }
mini_strncasecmp(){ mini_define strncasecmp generate; }
mini__recvmmsg(){ mini_define _recvmmsg generate; }
mini__unlink(){ mini_define _unlink generate; }
mini_waitpid(){ mini_define waitpid generate; }
mini__getxattr(){ mini_define _getxattr generate; }
mini_getusergroups(){ mini_define getusergroups generate; }
mini_termio(){ mini_define termio generate; }
mini__timerfd_gettime(){ mini_define _timerfd_gettime generate; }
mini__process_vm_writev(){ mini_define _process_vm_writev generate; }
mini__prlimit64(){ mini_define _prlimit64 generate; }
mini__linkat(){ mini_define _linkat generate; }
mini__getpriority(){ mini_define _getpriority generate; }
mini__move_pages(){ mini_define _move_pages generate; }
mini_mknod(){ mini_define mknod generate; }
mini__mq_timedsend(){ mini_define _mq_timedsend generate; }
mini_bsd_cksumblock(){ mini_define bsd_cksumblock generate; }
mini__clock_getres(){ mini_define _clock_getres generate; }
mini__quotactl(){ mini_define _quotactl generate; }
mini_ewrites(){ mini_define ewrites generate; }
mini__fgetxattr(){ mini_define _fgetxattr generate; }
mini__getegid(){ mini_define _getegid generate; }
mini_vsnprintf(){ mini_define vsnprintf generate; }
mini__chmod(){ mini_define _chmod generate; }
mini_setsockopt(){ mini_define setsockopt generate; }
mini__getpeername(){ mini_define _getpeername generate; }
mini_sigsuspend(){ mini_define sigsuspend generate; }
mini__chroot(){ mini_define _chroot generate; }
mini_strcpy(){ mini_define strcpy generate; }
mini__ftruncate(){ mini_define _ftruncate generate; }
mini_tcsetpgrp(){ mini_define tcsetpgrp generate; }
mini__link(){ mini_define _link generate; }
mini__sched_setparam(){ mini_define _sched_setparam generate; }
mini_uitoHEX(){ mini_define uitoHEX generate; }
mini_open(){ mini_define open generate; }
mini_pwent(){ mini_define pwent generate; }
mini_def(){ mini_define def generate; }
mini__mremap(){ mini_define _mremap generate; }
mini_symlink(){ mini_define symlink generate; }
mini_isatty(){ mini_define isatty generate; }
mini__socketpair(){ mini_define _socketpair generate; }
mini_initgroups(){ mini_define initgroups generate; }
mini__read(){ mini_define _read generate; }
mini__settimeofday(){ mini_define _settimeofday generate; }
mini_unsetenv(){ mini_define unsetenv generate; }
mini_strtoimax(){ mini_define strtoimax generate; }
mini__io_cancel(){ mini_define _io_cancel generate; }
mini_splice(){ mini_define splice generate; }
mini_chown(){ mini_define chown generate; }
mini_mprotect(){ mini_define mprotect generate; }
mini__getrandom(){ mini_define _getrandom generate; }
mini__get_robust_list(){ mini_define _get_robust_list generate; }
mini_lstat(){ mini_define lstat generate; }
mini__itobin(){ mini_define _itobin generate; }
mini_strcmp(){ mini_define strcmp generate; }
mini_qsort(){ mini_define qsort generate; }
mini_errno(){ mini_define errno generate; }
mini_stat(){ mini_define stat generate; }
mini__setxattr(){ mini_define _setxattr generate; }
mini_fgetsp(){ mini_define fgetsp generate; }
mini_eprint(){ mini_define eprint generate; }
mini__setpriority(){ mini_define _setpriority generate; }
mini_memchr(){ mini_define memchr generate; }
mini__flock(){ mini_define _flock generate; }
mini__readv(){ mini_define _readv generate; }
mini_htonl(){ mini_define htonl generate; }
mini__timer_getoverrun(){ mini_define _timer_getoverrun generate; }
mini_fchmod(){ mini_define fchmod generate; }
mini__mknodat(){ mini_define _mknodat generate; }
mini_ftell(){ mini_define ftell generate; }
mini_prints(){ mini_define prints generate; }
mini_ptsname(){ mini_define ptsname generate; }
mini_match_ext2(){ mini_define match_ext2 generate; }
mini_puts(){ mini_define puts generate; }
mini__acct(){ mini_define _acct generate; }
mini__time(){ mini_define _time generate; }
mini_dup2(){ mini_define dup2 generate; }
mini__swapon(){ mini_define _swapon generate; }
mini__eventfd(){ mini_define _eventfd generate; }
mini_wait4(){ mini_define wait4 generate; }
mini_getsockopt(){ mini_define getsockopt generate; }
mini_sprintf(){ mini_define sprintf generate; }
mini__sysinfo(){ mini_define _sysinfo generate; }
mini__pselect6(){ mini_define _pselect6 generate; }
mini_optimization_fence(){ mini_define optimization_fence generate; }
mini_flock(){ mini_define flock generate; }
mini_dies_if(){ mini_define dies_if generate; }
mini_scandir_bufsize(){ mini_define scandir_bufsize generate; }
mini_write(){ mini_define write generate; }
mini_sys_brk(){ mini_define sys_brk generate; }
mini_fread(){ mini_define fread generate; }
mini_bind(){ mini_define bind generate; }
mini_djb_cksum(){ mini_define djb_cksum generate; }
mini_vsprintf(){ mini_define vsprintf generate; }
mini__ppoll(){ mini_define _ppoll generate; }
mini__finit_module(){ mini_define _finit_module generate; }
mini_strerror(){ mini_define strerror generate; }
mini_bsd_definitions(){ mini_define bsd_definitions generate; }
mini_sync(){ mini_define sync generate; }