summaryrefslogtreecommitdiff
path: root/usr/src/lib/libast/common/features/map.c
blob: d7fcdd2a43ccd275224665712dc9d8f0f5de099b (plain)
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
/***********************************************************************
*                                                                      *
*               This software is part of the ast package               *
*          Copyright (c) 1985-2010 AT&T Intellectual Property          *
*                      and is licensed under the                       *
*                  Common Public License, Version 1.0                  *
*                    by AT&T Intellectual Property                     *
*                                                                      *
*                A copy of the License is available at                 *
*            http://www.opensource.org/licenses/cpl1.0.txt             *
*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
*                                                                      *
*              Information and Software Systems Research               *
*                            AT&T Research                             *
*                           Florham Park NJ                            *
*                                                                      *
*                 Glenn Fowler <gsf@research.att.com>                  *
*                  David Korn <dgk@research.att.com>                   *
*                   Phong Vo <kpv@research.att.com>                    *
*                                                                      *
***********************************************************************/
#pragma prototyped

/*
 * some systems may pull in <ast_common.h> and its <ast_map.h>
 * which we are in the process of generating ... this prevents it
 */

#define _def_map_ast	1

#include "FEATURE/lib"
#include "FEATURE/mmap"
#include "FEATURE/options"
#include "FEATURE/vmalloc"
#include "FEATURE/eaccess"

#if _opt_map_libc && !defined(_map_libc)
#define _map_libc	1
#endif

int
main()
{
	printf("#pragma prototyped\n");
	printf("\n");
	printf("/*\n");
	printf(" * prototypes provided for standard interfaces hijacked\n");
	printf(" * by ast and mapped to _ast_* but already prototyped\n");
	printf(" * unmapped in native headers included by <ast_std.h>\n");
	printf(" */\n");
	printf("\n");
	printf("#if _BLD_ast && defined(__EXPORT__)\n");
	printf("#define extern		__EXPORT__\n");
	printf("#endif\n");
	printf("\n");
#if __MVS__
#undef	_map_libc
#define _map_libc	1
	printf("\n");
	printf("/* mvs.390 libc.dll routines can't be intercepted by user dlls */\n");
	printf("#undef	_mem_dd_fd_DIR\n");
	printf("#undef	_typ_long_double\n");
#endif
#if _map_libc
#undef	_map_malloc
#define _map_malloc	1
	printf("\n");
	printf("#define	_map_libc	1\n");
	printf("#undef	basename\n");
	printf("#define basename	_ast_basename\n");
	printf("#undef	dirname\n");
	printf("#define dirname		_ast_dirname\n");
#if !_lib_eaccess
	printf("#undef	eaccess\n");
	printf("#define eaccess		_ast_eaccess\n");
#endif
#if !_lib_execvpe
	printf("#undef	execvpe\n");
	printf("#define execvpe		_ast_execvpe\n");
	printf("extern int		execvpe(const char*, char* const[], char* const[]);\n");
#endif
	printf("#undef	fnmatch\n");
	printf("#define fnmatch		_ast_fnmatch\n");
	printf("#undef	fts_children\n");
	printf("#define fts_children    _ast_fts_children\n");
	printf("#undef	fts_close\n");
	printf("#define fts_close       _ast_fts_close\n");
	printf("#undef	fts_flags\n");
	printf("#define fts_flags       _ast_fts_flags\n");
	printf("#undef	fts_notify\n");
	printf("#define fts_notify      _ast_fts_notify\n");
	printf("#undef	fts_open\n");
	printf("#define fts_open	_ast_fts_open\n");
	printf("#undef	fts_read\n");
	printf("#define fts_read	_ast_fts_read\n");
	printf("#undef	fts_set\n");
	printf("#define fts_set		_ast_fts_set\n");
	printf("#undef	ftw\n");
	printf("#define ftw		_ast_ftw\n");
	printf("#undef	ftwalk\n");
	printf("#define ftwalk		_ast_ftwalk\n");
	printf("#undef	ftwflags\n");
	printf("#define ftwflags	_ast_ftwflags\n");
#if !_WINIX
	printf("#undef	getcwd\n");
	printf("#define getcwd		_ast_getcwd\n");
	printf("extern char*		getcwd(char*, size_t);\n");
#endif
	printf("#undef	getdate\n");
	printf("#define getdate		_ast_getdate\n");
#if _lib_getopt || _lib_getsubopt || _lib_getopt_long || _lib_getopt_long_only
	printf("#undef	getopt\n");
	printf("#define getopt		_ast_getopt\n");
	printf("#undef	getsubopt\n");
	printf("#define getsubopt       _ast_getsubopt\n");
	printf("#undef	getopt_long\n");
	printf("#define getopt_long	_ast_getopt_long\n");
	printf("#undef	getopt_long_only\n");
	printf("#define getopt_long_only _ast_getopt_long_only\n");
	printf("#undef	optopt\n");
	printf("#define optopt		_ast_optopt\n");
	printf("#undef	optarg\n");
	printf("#define optarg		_ast_optarg\n");
	printf("#undef	optind\n");
	printf("#define optind		_ast_optind\n");
	printf("#undef	opterr\n");
	printf("#define opterr		_ast_opterr\n");
#endif
	printf("#undef	getwd\n");
	printf("#define getwd		_ast_getwd\n");
	printf("extern char*		getwd(char*);\n");
	printf("#undef	glob\n");
	printf("#define glob		_ast_glob\n");
	printf("#undef	globfree\n");
	printf("#define globfree	_ast_globfree\n");
	printf("#undef	memdup\n");
	printf("#define memdup		_ast_memdup\n");
	printf("#undef	memfatal\n");
	printf("#define memfatal	_ast_memfatal\n");
	printf("#undef	memhash\n");
	printf("#define memhash		_ast_memhash\n");
	printf("#undef	memsum\n");
	printf("#define memsum		_ast_memsum\n");
	printf("#undef	mkstemp\n");
	printf("#define mkstemp		_ast_mkstemp\n");
	printf("extern int		mkstemp(char*);\n");
	printf("#undef	mktemp\n");
	printf("#define mktemp		_ast_mktemp\n");
	printf("extern char*		mktemp(char*);\n");
	printf("#undef	mktime\n");
	printf("#define mktime		_ast_mktime\n");
	printf("#undef	nftw\n");
	printf("#define nftw		_ast_nftw\n");
	printf("#undef	optctx\n");
	printf("#define optctx		_ast_optctx\n");
	printf("#undef	optesc\n");
	printf("#define optesc		_ast_optesc\n");
	printf("#undef	optget\n");
	printf("#define optget		_ast_optget\n");
	printf("#undef	opthelp\n");
	printf("#define opthelp		_ast_opthelp\n");
	printf("#undef	optjoin\n");
	printf("#define optjoin		_ast_optjoin\n");
	printf("#undef	optstr\n");
	printf("#define optstr		_ast_optstr\n");
	printf("#undef	optusage\n");
	printf("#define optusage	_ast_optusage\n");
	printf("#undef	pathaccess\n");
	printf("#define pathaccess	_ast_pathaccess\n");
	printf("#undef	pathbin\n");
	printf("#define pathbin		_ast_pathbin\n");
	printf("#undef	pathcanon\n");
	printf("#define pathcanon	_ast_pathcanon\n");
	printf("#undef	pathcat\n");
	printf("#define pathcat		_ast_pathcat\n");
	printf("#undef	pathcd\n");
	printf("#define pathcd		_ast_pathcd\n");
	printf("#undef	pathcheck\n");
	printf("#define pathcheck	_ast_pathcheck\n");
	printf("#undef	pathexists\n");
	printf("#define pathexists	_ast_pathexists\n");
	printf("#undef	pathfind\n");
	printf("#define pathfind	_ast_pathfind\n");
	printf("#undef	pathgetlink\n");
	printf("#define pathgetlink	_ast_pathgetlink\n");
	printf("#undef	pathinclude\n");
	printf("#define pathinclude	_ast_pathinclude\n");
	printf("#undef	pathkey\n");
	printf("#define pathkey		_ast_pathkey\n");
	printf("#undef	pathnative\n");
	printf("#define pathnative	_ast_pathnative\n");
	printf("#undef	pathpath\n");
	printf("#define pathpath	_ast_pathpath\n");
	printf("#undef	pathposix\n");
	printf("#define pathposix	_ast_pathposix\n");
	printf("#undef	pathprobe\n");
	printf("#define pathprobe	_ast_pathprobe\n");
	printf("#undef	pathprog\n");
	printf("#define pathprog	_ast_pathprog\n");
	printf("#undef	pathrepl\n");
	printf("#define pathrepl	_ast_pathrepl\n");
	printf("#undef	pathsetlink\n");
	printf("#define pathsetlink	_ast_pathsetlink\n");
	printf("#undef	pathshell\n");
	printf("#define pathshell	_ast_pathshell\n");
	printf("#undef	pathstat\n");
	printf("#define pathstat	_ast_pathstat\n");
	printf("#undef	pathtemp\n");
	printf("#define pathtemp	_ast_pathtemp\n");
	printf("#undef	pathtmp\n");
	printf("#define pathtmp		_ast_pathtmp\n");
	printf("#undef	procclose\n");
	printf("#define procclose	_ast_procclose\n");
	printf("#undef	procfree\n");
	printf("#define procfree	_ast_procfree\n");
	printf("#undef	procopen\n");
	printf("#define procopen	_ast_procopen\n");
	printf("#undef	procrun\n");
	printf("#define procrun		_ast_procrun\n");
	printf("#undef	putenv\n");
	printf("#define putenv		_ast_putenv\n");
	printf("#undef	re_comp\n");
	printf("#define re_comp		_ast_re_comp\n");
	printf("#undef	re_exec\n");
	printf("#define re_exec		_ast_re_exec\n");
	printf("#undef	realpath\n");
	printf("#define realpath	_ast_realpath\n");
	printf("extern char*		realpath(const char*, char*);\n");
	printf("#undef	regaddclass\n");
	printf("#define regaddclass	_ast_regaddclass\n");
	printf("#undef	regalloc\n");
	printf("#define regalloc	_ast_regalloc\n");
	printf("#undef	regcache\n");
	printf("#define regcache	_ast_regcache\n");
	printf("#undef	regclass\n");
	printf("#define regclass	_ast_regclass\n");
	printf("#undef	regcmp\n");
	printf("#define regcmp		_ast_regcmp\n");
	printf("#undef	regcollate\n");
	printf("#define regcollate      _ast_regcollate\n");
	printf("#undef	regcomb\n");
	printf("#define regcomb		_ast_regcomb\n");
	printf("#undef	regcomp\n");
	printf("#define regcomp		_ast_regcomp\n");
	printf("#undef	regdecomp\n");
	printf("#define regdecomp	_ast_regdecomp\n");
	printf("#undef	regdup\n");
	printf("#define regdup		_ast_regdup\n");
	printf("#undef	regerror\n");
	printf("#define regerror	_ast_regerror\n");
	printf("#undef	regex\n");
	printf("#define regex		_ast_regex\n");
	printf("#undef	regexec\n");
	printf("#define regexec		_ast_regexec\n");
	printf("#undef	regfatal\n");
	printf("#define regfatal	_ast_regfatal\n");
	printf("#undef	regfatalpat\n");
	printf("#define regfatalpat     _ast_regfatalpat\n");
	printf("#undef	regfree\n");
	printf("#define regfree		_ast_regfree\n");
	printf("#undef	regncomp\n");
	printf("#define regncomp	_ast_regncomp\n");
	printf("#undef	regnexec\n");
	printf("#define regnexec	_ast_regnexec\n");
	printf("#undef	regrecord\n");
	printf("#define regrecord       _ast_regrecord\n");
	printf("#undef	regrexec\n");
	printf("#define regrexec	_ast_regrexec\n");
	printf("#undef	regstat\n");
	printf("#define regstat		_ast_regstat\n");
	printf("#undef	regsub\n");
	printf("#define regsub		_ast_regsub\n");
	printf("#undef	regsubcomp\n");
	printf("#define regsubcomp	_ast_regsubcomp\n");
	printf("#undef	regsubexec\n");
	printf("#define regsubexec	_ast_regsubexec\n");
	printf("#undef	regsubflags\n");
	printf("#define regsubflags	_ast_regsubflags\n");
	printf("#undef	regsubfree\n");
	printf("#define regsubfree	_ast_regsubfree\n");
	printf("#undef	remove\n");
	printf("#define remove		_ast_remove\n");
	printf("extern int		remove(const char*);\n");
	printf("#undef	resolvepath\n");
	printf("#define resolvepath	_ast_resolvepath\n");
	printf("extern int		resolvepath(const char*, char*, size_t);\n");
	printf("#undef	setenv\n");
	printf("#define setenv		_ast_setenv\n");
	printf("extern int		setenv(const char*, const char*, int);\n");
	printf("#undef	setenviron\n");
	printf("#define setenviron      _ast_setenviron\n");
	printf("#undef	sigcritical\n");
	printf("#define sigcritical      _ast_sigcritical\n");
	printf("#undef	signal\n");
	printf("#define signal      	_ast_signal\n");
	printf("#undef	sigunblock\n");
	printf("#define sigunblock      _ast_sigunblock\n");
	printf("#undef	stracmp\n");
	printf("#define stracmp		_ast_stracmp\n");
	printf("#undef	strcopy\n");
	printf("#define strcopy		_ast_strcopy\n");
	printf("#undef	strelapsed\n");
	printf("#define strelapsed	_ast_strelapsed\n");
	printf("#undef	stresc\n");
	printf("#define stresc		_ast_stresc\n");
	printf("#undef	streval\n");
	printf("#define streval		_ast_streval\n");
	printf("#undef	strexpr\n");
	printf("#define strexpr		_ast_strexpr\n");
	printf("#undef	strftime\n");
	printf("#define strftime	_ast_strftime\n");
	printf("#undef	strgid\n");
	printf("#define strgid		_ast_strgid\n");
	printf("#undef	strgrpmatch\n");
	printf("#define strgrpmatch	_ast_strgrpmatch\n");
	printf("#undef	strhash\n");
	printf("#define strhash		_ast_strhash\n");
	printf("#undef	strkey\n");
	printf("#define strkey		_ast_strkey\n");
	printf("#undef	strlcat\n");
	printf("#define strlcat		_ast_strlcat\n");
	printf("extern size_t		strlcat(char*, const char*, size_t);\n");
	printf("#undef	strlcpy\n");
	printf("#define strlcpy		_ast_strlcpy\n");
	printf("extern size_t		strlcpy(char*, const char*, size_t);\n");
	printf("#undef	strlook\n");
	printf("#define strlook		_ast_strlook\n");
	printf("#undef	strmatch\n");
	printf("#define strmatch	_ast_strmatch\n");
#endif
#if _map_libc || _lib_strmode
	printf("#undef	strmode\n");
	printf("#define strmode		_ast_strmode\n");
#endif
#if _map_libc
	printf("#undef	strnacmp\n");
	printf("#define strnacmp	_ast_strnacmp\n");
	printf("#undef	strncopy\n");
	printf("#define strncopy	_ast_strncopy\n");
	printf("#undef	strntod\n");
	printf("#define strntod		_ast_strntod\n");
	printf("#undef	strntol\n");
	printf("#define strntol		_ast_strntol\n");
	printf("#undef	strntold\n");
	printf("#define strntold	_ast_strntold\n");
	printf("#undef	strntoll\n");
	printf("#define strntoll	_ast_strntoll\n");
	printf("#undef	strntoul\n");
	printf("#define strntoul	_ast_strntoul\n");
	printf("#undef	strntoull\n");
	printf("#define strntoull	_ast_strntoull\n");
	printf("#undef	stropt\n");
	printf("#define stropt		_ast_stropt\n");
	printf("#undef	strperm\n");
	printf("#define strperm		_ast_strperm\n");
	printf("#undef	strpsearch\n");
	printf("#define strpsearch	_ast_strpsearch\n");
#if !_lib_strptime
	printf("#undef	strptime\n");
	printf("#define strptime	_ast_strptime\n");
#endif
	printf("#undef	strsearch\n");
	printf("#define strsearch	_ast_strsearch\n");
	printf("#undef	strsort\n");
	printf("#define strsort		_ast_strsort\n");
	printf("#undef	strsubmatch\n");
	printf("#define strsubmatch	_ast_strsubmatch\n");
	printf("#undef	strsum\n");
	printf("#define strsum		_ast_strsum\n");
	printf("#undef	strtape\n");
	printf("#define strtape		_ast_strtape\n");
	printf("#undef	strtoip4\n");
	printf("#define strtoip4	_ast_strtoip4\n");
	printf("#undef	strton\n");
	printf("#define strton		_ast_strton\n");
	printf("#undef	strtonll\n");
	printf("#define strtonll	_ast_strtonll\n");
	printf("#undef	struid\n");
	printf("#define struid		_ast_struid\n");
	printf("#undef	struniq\n");
	printf("#define struniq		_ast_struniq\n");
	printf("#undef	system\n");
	printf("#define system		_ast_system\n");
	printf("extern int		system(const char*);\n");
	printf("#undef	tempnam\n");
	printf("#define tempnam		_ast_tempnam\n");
	printf("extern char*		tempnam(const char*, const char*);\n");
	printf("#undef	tmpnam\n");
	printf("#define tmpnam		_ast_tmpnam\n");
	printf("extern char*		tmpnam(char*);\n");
	printf("#undef	touch\n");
	printf("#define touch		_ast_touch\n");
	printf("#undef	wordexp\n");
	printf("#define wordexp		_ast_wordexp\n");
	printf("#undef	wordfree\n");
	printf("#define wordfree	_ast_wordfree\n");
	printf("#undef	unsetenv\n");
	printf("#define unsetenv	_ast_unsetenv\n");
#endif
#if _std_malloc
	printf("\n");
	printf("/* no local malloc override */\n");
	printf("#define	_std_malloc	1\n");
#else
#if _map_malloc
	printf("\n");
	printf("/* cannot override local malloc */\n");
	printf("#define	_map_malloc	1\n");
	printf("#undef	calloc\n");
	printf("#define calloc		_ast_calloc\n");
	printf("extern void*		calloc(size_t, size_t);\n");
	printf("#undef	cfree\n");
	printf("#define cfree		_ast_cfree\n");
	printf("extern void		cfree(void*);\n");
	printf("#undef	free\n");
	printf("#define free		_ast_free\n");
	printf("extern void		free(void*);\n");
#if _lib_mallinfo
	printf("#undef	mallinfo\n");
	printf("#define mallinfo	_ast_mallinfo\n");
#endif
	printf("#undef	malloc\n");
	printf("#define malloc		_ast_malloc\n");
	printf("extern void*		malloc(size_t);\n");
#if _lib_mallopt
	printf("#undef	mallopt\n");
	printf("#define mallopt		_ast_mallopt\n");
#endif
#if _lib_memalign
	printf("#undef	memalign\n");
	printf("#define memalign	_ast_memalign\n");
	printf("extern void*		memalign(size_t, size_t);\n");
#endif
#if _lib_mstats
	printf("#undef	mstats\n");
	printf("#define mstats		_ast_mstats\n");
#endif
#if _lib_pvalloc
	printf("#undef	pvalloc\n");
	printf("#define pvalloc		_ast_pvalloc\n");
#endif
	printf("#undef	realloc\n");
	printf("#define realloc		_ast_realloc\n");
	printf("extern void*		realloc(void*, size_t);\n");
	printf("#undef	strdup\n");
	printf("#define strdup		_ast_strdup\n");
	printf("extern char*		strdup(const char*);\n");
#if _lib_valloc
	printf("#undef	valloc\n");
	printf("#define valloc		_ast_valloc\n");
	printf("extern void*		valloc(size_t);\n");
#endif
#endif
#endif

	/*
	 * overriding <stdlib.h> strto*() is problematic to say the least
	 */

#if _map_libc || _std_strtol
#if !__CYGWIN__
	printf("#undef	strtol\n");
	printf("#define strtol		_ast_strtol\n");
	printf("#undef	strtoul\n");
	printf("#define strtoul		_ast_strtoul\n");
#endif
	printf("#undef	strtoll\n");
	printf("#define strtoll		_ast_strtoll\n");
	printf("#undef	strtoull\n");
	printf("#define strtoull	_ast_strtoull\n");
#endif
#if _map_libc || _std_strtod
	printf("#undef	strtod\n");
	printf("#define strtod		_ast_strtod\n");
#endif
#if _map_libc || _std_strtold
	printf("#undef	strtold\n");
	printf("#define strtold		_ast_strtold\n");
#endif
#if !__CYGWIN__
#if _npt_strtol || _map_libc || _std_strtol
#if _npt_strtol && !_map_libc && !_std_strtol
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern long		strtol(const char*, char**, int);\n");
#if _npt_strtol && !_map_libc && !_std_strtol
	printf("#endif\n");
#endif
#endif
#if _npt_strtoul || _map_libc || _std_strtol
#if _npt_strtoul && !_map_libc && !_std_strtol
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern unsigned long	strtoul(const char*, char**, int);\n");
#if _npt_strtoul && !_map_libc && !_std_strtol
	printf("#endif\n");
#endif
#endif
#endif
#if _npt_strtod || _map_libc || _std_strtod
#if _npt_strtod && !_map_libc && !_std_strtod
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern double		strtod(const char*, char**);\n");
#if _npt_strtod && !_map_libc && !_std_strtod
	printf("#endif\n");
#endif
#endif
	printf("#if !_UWIN\n");
	printf("#undef	extern\n");
	printf("#endif\n");
#if _npt_strtold || _map_libc || _std_strtold
#if _npt_strtold && !_map_libc && !_std_strtold
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern _ast_fltmax_t	strtold(const char*, char**);\n");
#if _npt_strtold && !_map_libc && !_std_strtold
	printf("#endif\n");
#endif
#endif
	printf("#undef	extern\n");
#if _npt_strtoll || _map_libc || _std_strtol
#if _npt_strtoll && !_map_libc && !_std_strtol
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern _ast_intmax_t		strtoll(const char*, char**, int);\n");
#if _npt_strtoll && !_map_libc && !_std_strtol
	printf("#endif\n");
#endif
#endif
#if _npt_strtoull || _map_libc || _std_strtol
#if _npt_strtoull && !_map_libc && !_std_strtol
	printf("#ifndef _ISOC99_SOURCE\n");
#endif
	printf("extern unsigned _ast_intmax_t	strtoull(const char*, char**, int);\n");
#if _npt_strtoull && !_map_libc && !_std_strtoul
	printf("#endif\n");
#endif
#endif
	printf("\n");
	printf("#undef	extern\n");
	return 0;
}