1set prototyped 2iff AST_SYS 3ref -D_def_map_ast 4 5print #if __mips == 2 && !defined(_NO_LARGEFILE64_SOURCE) 6print #define _NO_LARGEFILE64_SOURCE 1 7print #endif 8print #if !defined(_NO_LARGEFILE64_SOURCE) && _typ_off64_t && _lib_lseek64 && _lib_stat64 9print #if !defined(_LARGEFILE64_SOURCE) 10print #define _LARGEFILE64_SOURCE 1 11print #endif 12print #if !defined(_LARGEFILE_SOURCE) 13print #define _LARGEFILE_SOURCE 1 14print #endif 15print #if !defined(_LARGE_FILE_API) 16print #define _LARGE_FILE_API 1 17print #endif 18print #else 19print #undef _LARGEFILE64_SOURCE 20print #undef _LARGEFILE_SOURCE 21print #undef _LARGE_FILE_API 22print #undef _typ_ino64_t 23print #undef _typ_off64_t 24print #undef _typ_struct_dirent64 25print #undef _lib_creat64 26print #undef _lib_fstat64 27print #undef _lib_fstatvfs64 28print #undef _lib_ftruncate64 29print #undef _lib_lseek64 30print #undef _lib_lstat64 31print #undef _lib_mmap64 32print #undef _lib_open64 33print #undef _lib_opendir64 34print #undef _lib_readdir64 35print #undef _lib_rewinddir64 36print #undef _lib_seekdir64 37print #undef _lib_telldir64 38print #undef _lib_closedir64 39print #undef _lib_stat64 40print #undef _lib_statvfs64 41print #undef _lib_truncate64 42print #endif 43print #if !_lib_readdir64 44print #undef _typ_ino64_t 45print #endif 46 47print #if defined(__STDC__) && !defined(__USE_FIXED_PROTOTYPES__) 48print #define __USE_FIXED_PROTOTYPES__ 1 /* kick gcc out of the past */ 49print #endif 50 51header stdlib.h 52header stddef.h 53header sys/types.h 54header stdint.h 55header inttypes.h 56header string.h 57header unistd.h 58header limits.h 59header fcntl.h 60header locale.h 61 62typ dev_t,nlink_t fail{ 63 echo "#ifndef $m" 64 echo "#define $m 1" 65 echo "typedef short $v;" 66 echo "#endif" 67}end 68typ gid_t,mode_t,uid_t fail{ 69 echo "#ifndef $m" 70 echo "#define $m 1" 71 echo "typedef unsigned short $v;" 72 echo "#endif" 73}end 74typ wchar_t stdio.h wchar.h fail{ 75 echo "#ifndef $m" 76 echo "#define $m 1" 77 echo "typedef unsigned short $v;" 78 echo "#endif" 79}end 80typ pid_t,ssize_t fail{ 81 echo "#ifndef $m" 82 echo "#define $m 1" 83 echo "typedef int $v;" 84 echo "#endif" 85}end 86typ wint_t stdio.h wchar.h fail{ 87 echo "#ifndef $m" 88 echo "#define $m 1" 89 echo "typedef int $v;" 90 echo "#endif" 91}end 92typ socklen_t sys/socket.h fail{ 93 echo "#ifndef $m" 94 echo "#define $m 1" 95 echo "typedef int $v;" 96 echo "#endif" 97}end 98typ size_t fail{ 99 echo "#ifndef $m" 100 echo "#define $m 1" 101 echo "typedef unsigned int $v;" 102 echo "#endif" 103}end 104typ clock_t,ino_t,off_t,ptrdiff_t fail{ 105 echo "#ifndef $m" 106 echo "#define $m 1" 107 echo "typedef long $v;" 108 echo "#endif" 109}end 110typ time_t fail{ 111 echo "#ifndef $m" 112 echo "#define $m 1" 113 echo "typedef unsigned long $v;" 114 echo "#endif" 115}end 116typ div_t fail{ 117 echo "#ifndef $m" 118 echo "#define $m 1" 119 echo "typedef struct { int quot; int rem; } $v;" 120 echo "#endif" 121}end 122typ ldiv_t fail{ 123 echo "#ifndef $m" 124 echo "#define $m 1" 125 echo "typedef struct { long quot; long rem; } $v;" 126 echo "#endif" 127}end 128tst typ_signed_size_t output{ 129 #include <sys/types.h> 130 int 131 main() 132 { 133 unsigned long u = ~0; 134 size_t s = ~0; 135 if (s >= 0) 136 return 1; 137 printf("#if !defined(__cplusplus) && !defined(c_plusplus) && !defined(_typ_signed_size_t)\n/* what dipsticks made size_t signed? sun. */\ntypedef unsigned %s _ast_size_t;\n#undef\tsize_t\n#define size_t\t_ast_size_t\n#endif\n", u == (unsigned long)s ? "long" : "int"); 138 return 0; 139 } 140}end 141 142define offsetof (type,member) ((size_t)&(((type*)0)->member)) 143define EXIT_FAILURE 1 144define EXIT_SUCCESS 0 145define MB_CUR_MAX 1 146define RAND_MAX 32767 147 148define STDIN_FILENO 0 149define STDOUT_FILENO 1 150define STDERR_FILENO 2 151 152define NULL 0 153 154define SEEK_SET 0 155define SEEK_CUR 1 156define SEEK_END 2 157 158define F_OK 0 159define X_OK 1 160define W_OK 2 161define R_OK 4 162 163lib spawnvex fail{ 164 echo 165 echo "typedef struct Spawnvex_s" 166 echo "{" 167 echo " unsigned int cur;" 168 echo " int io;" 169 echo "#ifdef _SPAWNVEX_PRIVATE_" 170 echo " _SPAWNVEX_PRIVATE_" 171 echo "#endif" 172 echo "} Spawnvex_t;" 173 echo 174 echo "typedef struct Spawnvex_noexec_s" 175 echo "{" 176 echo " Spawnvex_t* vex; /* caller vex handle */" 177 echo " void* handle; /* caller callback handle */" 178 echo " const char* path; /* spawnvex() path */" 179 echo " char* const* argv; /* spawnvex() argv */" 180 echo " char* const* envv; /* spawnvex() envv */" 181 echo " unsigned int flags; /* SPAWN_(EXEC|FORK|VFORK) */" 182 echo " int msgfd; /* if no return and >= 0 close */" 183 echo "} Spawnvex_noexec_t;" 184 echo 185 echo "typedef int (*Spawnvex_f)(void*, uintmax_t, uintmax_t);" 186 echo 187 echo "#define SPAWN_BACKGROUND 0x00001" 188 echo "#define SPAWN_CLEANUP 0x00002" 189 echo "#define SPAWN_DAEMON 0x00004" 190 echo "#define SPAWN_DEBUG 0x00008" 191 echo "#define SPAWN_EXEC 0x00010" 192 echo "#define SPAWN_FLUSH 0x00020" 193 echo "#define SPAWN_FOREGROUND 0x00040" 194 echo "#define SPAWN_FORK 0x00080" 195 echo "#define SPAWN_FRAME 0x00100" 196 echo "#define SPAWN_NOCALL 0x00200" 197 echo "#define SPAWN_ORPHAN 0x00400" 198 echo "#define SPAWN_OVERLAY 0x00800" 199 echo "#define SPAWN_READ 0x01000" 200 echo "#define SPAWN_RESET 0x02000" 201 echo "#define SPAWN_VFORK 0x04000" 202 echo "#define SPAWN_UNDO 0x08000" 203 echo "#define SPAWN_WRITE 0x10000" 204 echo "#define SPAWN_ZOMBIE 0x20000" 205 echo 206 echo "#define SPAWN_noop (-1)" 207 echo 208 echo "#define SPAWN_cwd (-2)" 209 echo "#define SPAWN_frame (-3)" 210 echo "#define SPAWN_noexec (-4)" 211 echo "#define SPAWN_pgrp (-5)" 212 echo "#define SPAWN_resetids (-6)" 213 echo "#define SPAWN_sid (-7)" 214 echo "#define SPAWN_sigdef (-8)" 215 echo "#define SPAWN_sigmask (-9)" 216 echo "#define SPAWN_truncate (-10)" 217 echo "#define SPAWN_umask (-11)" 218 echo 219}end 220 221print #if _BLD_ast && defined(__EXPORT__) 222print #define extern __EXPORT__ 223print #endif 224 225extern _exit void (int) 226extern abort void (void) 227extern abs int (int) 228extern access int (const char*, int) 229extern alarm unsigned int (unsigned int) 230extern atexit int (void(*)(void)) 231extern atof double (const char*) 232extern atoi int (const char*) 233extern atol long (const char*) 234extern bsearch void* (const void*, const void*, size_t, size_t, int(*)(const void*, const void*)) 235extern calloc void* (size_t, size_t) 236extern cfree void (void*) 237extern chdir int (const char*) 238extern chown int (const char*, uid_t, gid_t) 239extern close int (int) 240extern confstr size_t (int, char*, size_t) 241extern div div_t (int, int) 242extern dup int (int) 243extern dup2 int (int, int) 244extern eaccess int (const char*, int) 245extern execl int (const char*, const char*, ...) 246extern execle int (const char*, const char*, ...) 247extern execlp int (const char*, const char*, ...) 248extern execv int (const char*, char* const[]) 249extern execve int (const char*, char* const[], char* const[]) 250extern execve int (const char*, char* const[], char* const[]) 251extern execvp int (const char*, char* const[]) 252extern execvpe int (const char*, char* const[], char* const[]) 253extern exit void (int) 254extern fork pid_t (void) 255extern fpathconf long (int, int) 256extern free void (void*) 257extern fsync int (int) 258extern ftruncate int (int, off_t) 259extern fgetcwd char* (int, char*, size_t) 260extern getcwd char* (char*, size_t) 261extern getegid gid_t (void) 262extern getenv char* (const char*) 263extern geteuid uid_t (void) 264extern getgid gid_t (void) 265extern getgroups int (int, gid_t[]) 266extern getlogin char* (void) 267extern getpgrp pid_t (void) 268extern getpid pid_t (void) 269extern getppid pid_t (void) 270extern gettxt char* (const char*, const char*) 271extern getuid uid_t (void) 272extern isatty int (int) 273extern labs long (long) 274extern ldiv ldiv_t (long, long) 275extern link int (const char*, const char*) 276extern lseek off_t (int, off_t, int) 277extern malloc void* (size_t) 278extern mblen int (const char*, size_t) 279extern mbstowcs size_t (wchar_t*, const char*, size_t) 280extern mbtowc int (wchar_t*, const char*, size_t) 281extern memalign void* (size_t, size_t) 282extern memccpy void* (void*, const void*, int, size_t) 283extern memchr void* (const void*, int, size_t) 284extern memcmp int (const void*, const void*, size_t) 285extern memcpy void* (void*, const void*, size_t) 286extern memmove void* (void*, const void*, size_t) 287extern memset void* (void*, int, size_t) 288extern pathconf long (const char*, int) 289extern pause int (void) 290extern pipe int (int[]) 291extern pvalloc void* (size_t) 292extern qsort void (void*, size_t, size_t, int(*)(const void*, const void*)) 293extern rand int (void) 294extern read ssize_t (int, void*, size_t) 295extern realloc void* (void*, size_t) 296extern realpath char* (const char*, char*) 297extern resolvepath char* (const char*, char*, size_t) 298extern rmdir int (const char*) 299extern setgid int (gid_t) 300extern setpgid int (pid_t, pid_t) 301extern setsid pid_t (void) 302extern setuid int (uid_t) 303extern sleep unsigned int (unsigned int) 304extern spawnveg pid_t (const char*, char* const[], char* const[], pid_t) 305extern spawnvex pid_t (const char*, char* const[], char* const[], Spawnvex_t*) 306extern spawnvex_open Spawnvex_t* (unsigned int) 307extern spawnvex_add int (Spawnvex_t*, intmax_t, intmax_t, Spawnvex_f, void*) 308extern spawnvex_apply int (Spawnvex_t*, int, int) 309extern spawnvex_get intmax_t (Spawnvex_t*, int, int) 310extern spawnvex_close int (Spawnvex_t*) 311extern srand void (unsigned int) 312extern stpcpy char* (char*, const char*) 313extern stpncpy char* (char*, const char*, size_t) 314extern strcasecmp int (const char*, const char*) 315extern strcat char* (char*, const char*) 316extern strchr char* (const char*, int) 317extern strcmp int (const char*, const char*) 318extern strcoll int (const char*, const char*) 319extern strcpy char* (char*, const char*) 320extern strcspn size_t (const char*, const char*) 321extern strdup char* (const char*) 322extern strlcat size_t (char*, const char*, size_t) 323extern strlcpy size_t (char*, const char*, size_t) 324extern strlen size_t (const char*) 325extern strncasecmp int (const char*, const char*, size_t) 326extern strncat char* (char*, const char*, size_t) 327extern strncmp int (const char*, const char*, size_t) 328extern strncpy char* (char*, const char*, size_t) 329extern strpbrk char* (const char*, const char*) 330extern strrchr char* (const char*, int) 331extern strspn size_t (const char*, const char*) 332extern strstr char* (const char*, const char*) 333extern strtok char* (char*, const char*) 334extern strxfrm size_t (char*, const char*, size_t) 335extern swab void (const void*, void*, ssize_t) 336extern sysconf long (int) 337extern system int (const char*) 338extern tcgetpgrp pid_t (int) 339extern tcsetpgrp int (int, pid_t) 340extern truncate int (const char*, off_t) 341extern ttyname char* (int) 342extern unlink int (const char*) 343extern valloc void* (size_t) 344extern wcstombs size_t (char*, const wchar_t*, size_t) 345extern wctomb int (char*, wchar_t) 346extern write ssize_t (int, const void*, size_t) 347 348print #undef extern 349 350# <stdarg.h> is handled by proto so this must be after the last test 351 352print #include <stdarg.h> 353