]>
Commit | Line | Data |
---|---|---|
1 | /* version.h -- Cygwin version numbers and accompanying documentation. | |
2 | ||
3 | Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | |
4 | 2005, 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. | |
5 | ||
6 | This file is part of Cygwin. | |
7 | ||
8 | This software is a copyrighted work licensed under the terms of the | |
9 | Cygwin license. Please consult the file "CYGWIN_LICENSE" for | |
10 | details. */ | |
11 | ||
12 | /* Cygwin versioning is relatively complicated because of its status | |
13 | as a shared library. Let's start with how versioning used to be done. | |
14 | ||
15 | Historical versioning in Cygwin 16.0 to 19.5: | |
16 | ||
17 | In the olden days of Cygwin, we had a dll major and minor version | |
18 | and a registry version. The major number started at 16 because the | |
19 | "b15" GNU-Win32 release of the compiler tools was out when this | |
20 | scheme was started. We incremented the DLL name frequently (for | |
21 | every official release) and towards the end of this period every | |
22 | release used a different shared memory area to prevent DLLs from | |
23 | interfering with each other (embedding a build timestamp into the | |
24 | name of the shared memory area). This turned out to be a Bad Idea | |
25 | (tm) because people needed to mingle separate releases and have | |
26 | them work together more than we thought they would. This was | |
27 | especially problematic when tty info needed to be retained when an | |
28 | old Cygwin executable executed a newer one. | |
29 | ||
30 | In the old scheme, we incremented the major number whenever a | |
31 | change to the dll invalidated existing executables. This can | |
32 | happen for a number of reasons, including when functions are | |
33 | removed from the export list of the dll. The minor number was | |
34 | incremented when a change was made that we wanted to record, but | |
35 | that didn't invalidate existing executables. Both numbers were | |
36 | recorded in the executable and in the dll. | |
37 | ||
38 | In October 1998 (starting with Cygwin 19.6), we started a new method | |
39 | of Cygwin versioning: */ | |
40 | ||
41 | /* The DLL major and minor numbers correspond to the "version of | |
42 | the Cygwin shared library". This version is used to track important | |
43 | changes to the DLL and is mainly informative in nature. */ | |
44 | ||
45 | #define CYGWIN_VERSION_DLL_MAJOR 1007 | |
46 | #define CYGWIN_VERSION_DLL_MINOR 10 | |
47 | ||
48 | /* Major numbers before CYGWIN_VERSION_DLL_EPOCH are | |
49 | incompatible. */ | |
50 | ||
51 | #define CYGWIN_VERSION_DLL_EPOCH 19 | |
52 | ||
53 | /* CYGWIN_VERSION_DLL_COMBINED gives us a single number | |
54 | representing the combined DLL major and minor numbers. */ | |
55 | ||
56 | /* WATCH OUT FOR OCTAL! Don't use, say, "00020" for 0.20 */ | |
57 | ||
58 | #define CYGWIN_VERSION_DLL_MAKE_COMBINED(maj, min) (((maj) * 1000) + min) | |
59 | #define CYGWIN_VERSION_DLL_COMBINED \ | |
60 | CYGWIN_VERSION_DLL_MAKE_COMBINED (CYGWIN_VERSION_DLL_MAJOR, CYGWIN_VERSION_DLL_MINOR) | |
61 | ||
62 | /* Every version of cygwin <= this uses an old, incorrect method | |
63 | to determine signal masks. */ | |
64 | ||
65 | #define CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED(u) \ | |
66 | CYGWIN_VERSION_DLL_MAKE_COMBINED ((u)->api_major, (u)->api_minor) | |
67 | ||
68 | #define CYGWIN_VERSION_USER_API_VERSION_COMBINED \ | |
69 | CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED (user_data) | |
70 | ||
71 | /* API versions <= this had a termios structure whose members were | |
72 | too small to accomodate modern settings. */ | |
73 | #define CYGWIN_VERSION_DLL_OLD_TERMIOS 5 | |
74 | #define CYGWIN_VERSION_DLL_IS_OLD_TERMIOS \ | |
75 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= CYGWIN_VERSION_DLL_OLD_TERMIOS) | |
76 | ||
77 | #define CYGWIN_VERSION_DLL_MALLOC_ENV 28 | |
78 | /* Old APIs had getc/putc macros that conflict with new CR/LF | |
79 | handling in the stdio buffers */ | |
80 | #define CYGWIN_VERSION_OLD_STDIO_CRLF_HANDLING \ | |
81 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 20) | |
82 | ||
83 | #define CYGWIN_VERSION_CHECK_FOR_S_IEXEC \ | |
84 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED >= 36) | |
85 | ||
86 | #define CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK \ | |
87 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 28) | |
88 | ||
89 | #define CYGWIN_VERSION_CHECK_FOR_USING_BIG_TYPES \ | |
90 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED >= 79) | |
91 | ||
92 | #define CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR \ | |
93 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 138) | |
94 | ||
95 | #define CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES \ | |
96 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 138) | |
97 | ||
98 | #define CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ \ | |
99 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 161) | |
100 | ||
101 | #define CYGWIN_VERSION_CHECK_FOR_OLD_CTYPE \ | |
102 | (CYGWIN_VERSION_USER_API_VERSION_COMBINED <= 209) | |
103 | ||
104 | #define CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL(u) \ | |
105 | (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED (u) >= 227) | |
106 | ||
107 | #define CYGWIN_VERSION_CYGWIN_CONV 181 | |
108 | ||
109 | /* API_MAJOR 0.0: Initial version. API_MINOR changes: | |
110 | 1: Export cygwin32_ calls as cygwin_ as well. | |
111 | 2: Export j1, jn, y1, yn. | |
112 | 3: Export dll_noncygwin_dllcrt0. | |
113 | 4: New socket ioctls, revamped ifconf support. | |
114 | 5: Thread support/exports. | |
115 | 6: Change in termios handling. | |
116 | 7: Export scandir and alphasort. | |
117 | 8: Export _ctype_, _sys_errlist, _sys_nerr. | |
118 | 9: Mount-related changes, new cygwin_umount export. | |
119 | Raw device support (tape, floppies). | |
120 | 10: Fast math routine support added. | |
121 | 11: Export seekdir, telldir. | |
122 | 12: Export pthread_join, pthread_detach. | |
123 | 13: Export math funcs gamma and friends, also _j0, _j1, etc. | |
124 | 14: Export snprintf and vnsprintf. | |
125 | 15: Export glob | |
126 | 16: Export cygwin_stackdump | |
127 | 17: Export fast math stuff | |
128 | 18: Stop exporting _strace_wm | |
129 | 19: Export fchown, lchown, lacl | |
130 | 20: regsub, inet_network | |
131 | 21: incompatible change to stdio cr/lf and buffering | |
132 | 22: Export cygwin_logon_user, cygwin_set_impersonation_token. | |
133 | geteuid, getegid return effective uid/gid. | |
134 | getuid, getgid return real uid/gid. | |
135 | seteuid, setegid set only effective uid/gid. | |
136 | setuid, setgid set effective and real uid/gid. | |
137 | 23: Export new dll_crt0 interface and cygwin_user_data for use | |
138 | with crt0 startup code. | |
139 | 24: Export poll and _poll. | |
140 | 25: Export getmode and _getmode. | |
141 | 26: CW_GET_CYGDRIVE_PREFIXES addition to external.cc | |
142 | 27: CW_GETPINFO_FULL addition to external.cc | |
143 | 28: Accidentally bumped by cgf | |
144 | 29: Export hstrerror | |
145 | 30: CW_GET_CYGDRIVE_INFO addition to external.cc | |
146 | 31: Export inet_aton | |
147 | 32: Export getrlimit/setrlimit | |
148 | 33: Export setlogmask | |
149 | 34: Separated out mount table | |
150 | 35: Export drand48, erand48, jrand48, lcong48, lrand48, | |
151 | mrand48, nrand48, seed48, and srand48. | |
152 | 36: Added _cygwin_S_IEXEC, et al | |
153 | 37: [f]pathconv support _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY | |
154 | 38: vscanf, vscanf_r, and random pthread functions | |
155 | 39: asctime_r, ctime_r, gmtime_r, localtime_r | |
156 | 40: fchdir | |
157 | 41: __signgam | |
158 | 42: sys_errlist, sys_nerr | |
159 | 43: sigsetjmp, siglongjmp fixed | |
160 | 44: Export dirfd | |
161 | 45: perprocess change, gamma_r, gammaf_r, lgamma_r, lgammaf_r | |
162 | 46: Remove cygwin_getshared | |
163 | 47: Report EOTWarningZoneSize in struct mtget. | |
164 | 48: Export "posix" regex functions | |
165 | 49: Export setutent, endutent, utmpname, getutent, getutid, getutline. | |
166 | 50: Export fnmatch. | |
167 | 51: Export recvmsg, sendmsg. | |
168 | 52: Export strptime | |
169 | 53: Export strlcat, strlcpy. | |
170 | 54: Export __fpclassifyd, __fpclassifyf, __signbitd, __signbitf. | |
171 | 55: Export fcloseall, fcloseall_r. | |
172 | 56: Make ntsec on by default. | |
173 | 57: Export setgroups. | |
174 | 58: Export memalign, valloc, malloc_trim, malloc_usable_size, mallopt, | |
175 | malloc_stats | |
176 | 59: getsid | |
177 | 60: MSG_NOSIGNAL | |
178 | 61: Export getc_unlocked, getchar_unlocked, putc_unlocked, | |
179 | putchar_unlocked | |
180 | 62: Erroneously bumped | |
181 | 63: Export pututline | |
182 | 64: Export fseeko, ftello | |
183 | 65: Export siginterrupt | |
184 | 66: Export nl_langinfo | |
185 | 67: Export pthread_getsequence_np | |
186 | 68: Export netdb stuff | |
187 | 69: Export strtof | |
188 | 70: Export asprintf, _asprintf_r, vasprintf, _vasprintf_r | |
189 | 71: Export strerror_r | |
190 | 72: Export nanosleep | |
191 | 73: Export setreuid32, setreuid, setregid32, setregid | |
192 | 74: Export _strtold a64l hcreate hcreate_r hdestroy hdestroy_r hsearch | |
193 | hsearch_r isblank iswalnum iswalpha iswblank iswcntrl iswctype | |
194 | iswdigit iswgraph iswlower iswprint iswpunct iswspace iswupper | |
195 | iswxdigit l64a mbrlen mbrtowc mbsinit mbsrtowcs mempcpy | |
196 | on_exit setbuffer setlinebuf strndup strnlen tdelete tdestroy | |
197 | tfind towctrans towlower towupper tsearch twalk wcrtomb wcscat | |
198 | wcschr wcscpy wcscspn wcslcat wcslcpy wcsncat wcsncmp wcsncpy | |
199 | wcspbrk wcsrchr wcsrtombs wcsspn wcsstr wctob wctob wctrans | |
200 | wctype wmemchr wmemcmp wmemcpy wmemmove wmemset | |
201 | 75: Export exp2 exp2f fdim fdimf fma fmaf fmax fmaxf fmin fminf lrint | |
202 | lrintf lround lroundf nearbyint nearbyintf remquo remquof | |
203 | round roundf scalbln scalblnf sincos sincosf tgamma tgammaf | |
204 | truncf | |
205 | 76: mallinfo | |
206 | 77: thread-safe exit/at_exit | |
207 | 78: Use stat and fstat rather than _stat, and _fstat. | |
208 | Export btowc and trunc. | |
209 | 79: Export acl32 aclcheck32 aclfrommode32 aclfrompbits32 aclfromtext32 | |
210 | aclsort32 acltomode32 acltopbits32 acltotext32 facl32 | |
211 | fgetpos64 fopen64 freopen64 fseeko64 fsetpos64 ftello64 | |
212 | _open64 _lseek64 _fstat64 _stat64 mknod32 | |
213 | 80: Export pthread_rwlock stuff | |
214 | 81: CW_CHECK_NTSEC addition to external.cc | |
215 | 82: Export wcscoll wcswidth wcwidth | |
216 | 83: Export gethostid | |
217 | 84: Pty open allocates invisible console. 64 bit interface | |
218 | 85: Export new 32/64 functions from API 0.79 only with leading | |
219 | underscore. No problems with backward compatibility since no | |
220 | official release has been made so far. This change removes | |
221 | exported symbols like fopen64, which might confuse configure. | |
222 | 86: Export ftok | |
223 | 87: Export vsyslog | |
224 | 88: Export _getreent | |
225 | 89: Export __mempcpy | |
226 | 90: Export _fopen64 | |
227 | 91: Export argz_add argz_add_sep argz_append argz_count argz_create | |
228 | argz_create_sep argz_delete argz_extract argz_insert | |
229 | argz_next argz_replace argz_stringify envz_add envz_entry | |
230 | envz_get envz_merge envz_remove envz_strip | |
231 | 92: Export getusershell, setusershell, endusershell | |
232 | 93: Export daemon, forkpty, openpty, iruserok, ruserok, login_tty, | |
233 | openpty, forkpty, revoke, logwtmp, updwtmp | |
234 | 94: Export getopt, getopt_long, optarg, opterr, optind, optopt, | |
235 | optreset, __check_rhosts_file, __rcmd_errstr. | |
236 | 95: Export shmat, shmctl, shmdt, shmget. | |
237 | 96: CW_GET_ERRNO_FROM_WINERROR addition to external.cc | |
238 | 97: Export sem_open, sem_close, sem_timedwait, sem_getvalue. | |
239 | 98: Export _tmpfile64. | |
240 | 99: CW_GET_POSIX_SECURITY_ATTRIBUTE addition to external.cc. | |
241 | 100: CW_GET_SHMLBA addition to external.cc. | |
242 | 101: Export err, errx, verr, verrx, warn, warnx, vwarn, vwarnx. | |
243 | 102: CW_GET_UID_FROM_SID and CW_GET_GID_FROM_SID addition to external.cc. | |
244 | 103: Export getprogname, setprogname. | |
245 | 104: Export msgctl, msgget, msgrcv, msgsnd, semctl, semget, semop. | |
246 | 105: Export sigwait. | |
247 | 106: Export flock. | |
248 | 107: Export fcntl64. | |
249 | 108: Remove unused (hopefully) reent_data export. | |
250 | 109: Oh well. Someone uses reent_data. | |
251 | 110: Export clock_gettime, sigwaitinfo, timer_create, timer_delete, | |
252 | timer_settime | |
253 | 111: Export sigqueue, sighold. | |
254 | 112: Redefine some mtget fields. | |
255 | 113: Again redefine some mtget fields. Use mt_fileno and mt_blkno as | |
256 | on Linux. | |
257 | 114: Export rand_r, ttyname_r. | |
258 | 115: Export flockfile, ftrylockfile, funlockfile, getgrgid_r, getgrnam_r, | |
259 | getlogin_r. | |
260 | 116: Export atoll. | |
261 | 117: Export utmpx functions, Return utmp * from pututent. | |
262 | 118: Export getpriority, setpriority. | |
263 | 119: Export fdatasync. | |
264 | 120: Export basename, dirname. | |
265 | 122: Export statvfs, fstatvfs. | |
266 | 123: Export utmpxname. | |
267 | 124: Add MAP_AUTOGROW flag to mmap. | |
268 | 125: LD_PRELOAD/CW_HOOK available. | |
269 | 126: Export lsearch, lfind, timer_gettime. | |
270 | 127: Export sigrelese. | |
271 | 128: Export pselect. | |
272 | 129: Export mkdtemp. | |
273 | 130: Export strtoimax, strtoumax, llabs, imaxabs, lldiv, imaxdiv. | |
274 | 131: Export inet_ntop, inet_pton. | |
275 | 132: Add GLOB_LIMIT flag to glob. | |
276 | 133: Export __getline, __getdelim. | |
277 | 134: Export getline, getdelim. | |
278 | 135: Export pread, pwrite | |
279 | 136: Add TIOCMBIS/TIOCMBIC ioctl codes. | |
280 | 137: fts_children, fts_close, fts_get_clientptr, fts_get_stream, | |
281 | fts_open, fts_read, fts_set, fts_set_clientptr, ftw, nftw. | |
282 | 138: Export readdir_r. | |
283 | 139: Start using POSIX definition of struct msghdr and WinSock2 | |
284 | IPPROTO_IP values. | |
285 | 140: Export mlock, munlock. | |
286 | 141: Export futimes, lutimes. | |
287 | 142: Export memmem | |
288 | 143: Export clock_getres, clock_setres | |
289 | 144: Export timelocal, timegm. | |
290 | 145: Add MAP_NORESERVE flag to mmap. | |
291 | 146: Change SI_USER definition. FIXME: Need to develop compatibility | |
292 | macro for this? | |
293 | 147: Eliminate problematic d_ino from dirent structure. unsetenv now | |
294 | returns int, as per linux. | |
295 | 148: Add open(2) flags O_SYNC, O_RSYNC, O_DSYNC and O_DIRECT. | |
296 | 149: Add open(2) flag O_NOFOLLOW. | |
297 | 150: Export getsubopt. | |
298 | 151: Export __opendir_with_d_ino | |
299 | 152: Revert to having d_ino in dirent unconditionally. | |
300 | 153: Export updwtmpx, Implement CW_SETUP_WINENV. | |
301 | 154: Export sigset, sigignore. | |
302 | 155: Export __isinff, __isinfd, __isnanf, __isnand. | |
303 | 156: Export __srbuf_r, __swget_r. | |
304 | 157: Export gai_strerror, getaddrinfo, getnameinfo, freeaddrinfo, | |
305 | in6addr_any, in6addr_loopback. | |
306 | 158: Export bindresvport, bindresvport_sa, iruserok_sa, rcmd_af, | |
307 | rresvport_af. | |
308 | 159: Export posix_openpt. | |
309 | 160: Export posix_fadvise, posix_fallocate. | |
310 | 161: Export resolver functions. | |
311 | 162: New struct ifreq. Export if_nametoindex, if_indextoname, | |
312 | if_nameindex, if_freenameindex. | |
313 | 163: Export posix_madvise, posix_memalign. | |
314 | 164: Export shm_open, shm_unlink. | |
315 | 165: Export mq_close, mq_getattr, mq_notify, mq_open, mq_receive, | |
316 | mq_send, mq_setattr, mq_timedreceive, mq_timedsend, mq_unlink. | |
317 | 166: Export sem_unlink. | |
318 | 167: Add st_birthtim to struct stat. | |
319 | 168: Export asnprintf, dprintf, _Exit, vasnprintf, vdprintf. | |
320 | 169: Export confstr. | |
321 | 170: Export insque, remque. | |
322 | 171: Export exp10, exp10f, pow10, pow10f, strcasestr, funopen, | |
323 | fopencookie. | |
324 | 172: Export getifaddrs, freeifaddrs. | |
325 | 173: Export __assert_func. | |
326 | 174: Export stpcpy, stpncpy. | |
327 | 175: Export fdopendir. | |
328 | 176: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm. | |
329 | 177: Export sys_sigabbrev | |
330 | 178: Export wcpcpy, wcpncpy. | |
331 | 179: Export _f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf, | |
332 | _f_lrintl, _f_rint, _f_rintf, _f_rintl, llrint, llrintf, llrintl, | |
333 | rintl, lrintl, and redirect exports of lrint, lrintf, rint, rintf. | |
334 | 180: Export getxattr, lgetxattr, fgetxattr, listxattr, llistxattr, | |
335 | flistxattr, setxattr, lsetxattr, fsetxattr, removexattr, | |
336 | lremovexattr, fremovexattr. | |
337 | 181: Export cygwin_conv_path, cygwin_create_path, cygwin_conv_path_list. | |
338 | 182: Export lockf. | |
339 | FIXME: Removed 12 year old and entirely wrong wprintf function at | |
340 | this point. We need a working implementation soon. | |
341 | 183: Export open_memstream, fmemopen. | |
342 | 184: Export openat, faccessat, fchmodat, fchownat, fstatat, futimesat, | |
343 | linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat, symlinkat, | |
344 | unlinkat. | |
345 | 185: Export futimens, utimensat. | |
346 | 186: Remove ancient V8 regexp functions. Also eliminate old crt0 interface | |
347 | which provided its own user_data structure. | |
348 | 187: Export cfmakeraw. | |
349 | 188: Export CW_SET_PRIV_KEY. | |
350 | 189: Implement dirent.d_type. | |
351 | 190: Export fgetwc, fgetws, fputwc, fputws, fwide, getwc, getwchar, | |
352 | putwc, putwchar, ungetwc. | |
353 | 191: Export glob_pattern_p | |
354 | 192: CW_SETERRNO added | |
355 | 193: Export wcstok. | |
356 | 194: fcntl.h flags O_DIRECTORY, O_EXEC and O_SEARCH added. | |
357 | 195: Export wcstod, wcstof. | |
358 | 196: Export wcsnlen. | |
359 | 197: Export wcstoimax, wcstoumax. | |
360 | 198: Export reallocf. | |
361 | 199: Export open_wmemstream. | |
362 | 200: Export mbsnrtowcs, wcsnrtombs. | |
363 | 201: Export wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf. | |
364 | 202: Export gethostbyname2. | |
365 | 203: Export wcsftime. | |
366 | 204: recv/send flag MSG_DONTWAIT added. | |
367 | 205: Export wscanf, fwscanf, swscanf, vwscanf, vfwscanf, vswscanf. | |
368 | 206: Export wcscasecmp, wcsncasecmp. | |
369 | 207: Export wcsdup. | |
370 | 208: Export log2, log2f. | |
371 | 209: Export wordexp, wordfree. | |
372 | 210: New ctype layout using variable ctype pointer. Export __ctype_ptr__. | |
373 | 211: Export fpurge, mkstemps. | |
374 | 212: Add and export libstdc++ malloc wrappers. | |
375 | 213: Export canonicalize_file_name, eaccess, euidaccess. | |
376 | 214: Export execvpe, fexecve. | |
377 | 215: CW_EXIT_PROCESS added. | |
378 | 216: CW_SET_EXTERNAL_TOKEN added. | |
379 | 217: CW_GET_INSTKEY added. | |
380 | 218: Export get_nprocs, get_nprocs_conf, get_phys_pages, get_avphys_pages. | |
381 | 219: Export dup3, pipe2, O_CLOEXEC, F_DUPFD_CLOEXEC. | |
382 | 220: Export accept4, SOCK_CLOEXEC, SOCK_NONBLOCK. | |
383 | 221: Export strfmon. | |
384 | 222: CW_INT_SETLOCALE added. | |
385 | 223: SIGPWR added. | |
386 | 224: Export xdr* functions. | |
387 | 225: Export __xdr* functions. | |
388 | 226: Export __locale_mb_cur_max. | |
389 | 227: Add pseudo_reloc_start, pseudo_reloc_end, image_base to per_process. | |
390 | 228: CW_STRERROR added. | |
391 | 229: Add mkostemp, mkostemps. | |
392 | 230: Add CLOCK_MONOTONIC. | |
393 | 231: Add fenv.h functions. | |
394 | 232: Export cacos, cacosf, cacosh, cacoshf, carg, cargf, casin, casinf, | |
395 | casinh, casinhf, catan, catanf, catanh, catanhf, ccos, ccosf, ccosh, | |
396 | ccoshf, cexp, cexpf, cimag, cimagf, clog, clogf, conj, conjf, cpow, | |
397 | cpowf, cproj, cprojf, creal, crealf, csin, csinf, csinh, csinhf, | |
398 | csqrt, csqrtf, ctan, ctanf, ctanh, ctanhf. | |
399 | 233: Add TIOCGPGRP, TIOCSPGRP. Export llround, llroundf. | |
400 | 234: Export program_invocation_name, program_invocation_short_name. | |
401 | 235: Export madvise. | |
402 | 236: Export pthread_yield, __xpg_strerror_r. | |
403 | 237: Export strchrnul. | |
404 | 238: Export pthread_spin_destroy, pthread_spin_init, pthread_spin_lock, | |
405 | pthread_spin_trylock, pthread_spin_unlock. | |
406 | 239: Export pthread_setschedprio. | |
407 | 240: Export ppoll. | |
408 | 241: Export pthread_attr_getstack, pthread_attr_getstackaddr, | |
409 | pthread_getattr_np. | |
410 | */ | |
411 | ||
412 | /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ | |
413 | ||
414 | #define CYGWIN_VERSION_API_MAJOR 0 | |
415 | #define CYGWIN_VERSION_API_MINOR 241 | |
416 | ||
417 | /* There is also a compatibity version number associated with the | |
418 | shared memory regions. It is incremented when incompatible | |
419 | changes are made to the shared memory region *or* to any named | |
420 | shared mutexes, semaphores, etc. The arbitrary starting | |
421 | version was 0 (cygwin release 98r2). | |
422 | Bump to 4 since this hasn't been rigorously updated in a | |
423 | while. */ | |
424 | ||
425 | #define CYGWIN_VERSION_SHARED_DATA 5 | |
426 | ||
427 | /* An identifier used in the names used to create shared objects. | |
428 | The full names include the CYGWIN_VERSION_SHARED_DATA version | |
429 | as well as this identifier. */ | |
430 | ||
431 | #define CYGWIN_VERSION_DLL_IDENTIFIER "cygwin1" | |
432 | ||
433 | /* The Cygwin mount table interface in the Win32 registry also | |
434 | has a version number associated with it in case that is | |
435 | changed in a non-backwards compatible fashion. Increment this | |
436 | version number whenever incompatible changes in mount table | |
437 | registry usage are made. | |
438 | ||
439 | 1: Original number version. | |
440 | 2: New mount registry layout, system-wide mount accessibility. | |
441 | 3: The mount table is not in the registry anymore, but in /etc/fstab. | |
442 | */ | |
443 | ||
444 | #define CYGWIN_VERSION_MOUNT_REGISTRY 3 | |
445 | ||
446 | /* Identifiers used in the Win32 registry. */ | |
447 | ||
448 | #define CYGWIN_INFO_CYGWIN_REGISTRY_NAME "Cygwin" | |
449 | #define CYGWIN_INFO_PROGRAM_OPTIONS_NAME "Program Options" | |
450 | #define CYGWIN_INFO_INSTALLATIONS_NAME "Installations" | |
451 | ||
452 | /* The default cygdrive prefix. */ | |
453 | ||
454 | #define CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX "/cygdrive" | |
455 | ||
456 | /* In addition to the above version number strings, the build | |
457 | process adds some strings that may be useful in | |
458 | debugging/identifying a particular Cygwin DLL: | |
459 | ||
460 | The mkvers.sh script at the top level produces a .cc file | |
461 | which initializes a cygwin_version structure based on the | |
462 | above version information and creates a string table for | |
463 | grepping via "fgrep '%%%' cygwinwhatever.dll" if you are | |
464 | using GNU grep. Otherwise you may want to do a | |
465 | "strings cygwinwhatever.dll | fgrep '%%%'" instead. | |
466 | ||
467 | This will produce output such as: | |
468 | ||
469 | %%% Cygwin dll_identifier: cygwin | |
470 | %%% Cygwin api_major: 0 | |
471 | %%% Cygwin api_minor: 0 | |
472 | %%% Cygwin dll_major: 19 | |
473 | %%% Cygwin dll_minor: 6 | |
474 | %%% Cygwin shared_data: 1 | |
475 | %%% Cygwin registry: b15 | |
476 | %%% Cygwin build date: Wed Oct 14 16:26:51 EDT 1998 | |
477 | %%% Cygwin shared id: cygwinS1 | |
478 | ||
479 | This information can also be obtained through a call to | |
480 | cygwin_internal (CW_GETVERSIONINFO). | |
481 | */ | |
482 | ||
483 | #define CYGWIN_VERSION_MAGIC(a, b) ((unsigned) ((((unsigned short) a) << 16) | (unsigned short) b)) | |
484 | #define CYGWIN_VERSION_MAGIC_VERSION(a) ((unsigned) ((unsigned)a & 0xffff)) |