source: trunk/doc/ReleaseNotes.os2@ 3335

Last change on this file since 3335 was 3291, checked in by bird, 19 years ago

0.6.2 release notes.

  • Property cvs2svn:cvs-rev set to 1.32
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 49.8 KB
Line 
1
2
3 R e l e a s e N o t e s G C C f o r O S / 2
4 +---------------------------------------------------+
5
6
7(C)'2004-2007 Knut St. Osmundsen ([email protected])
8(C)'2003-2005 InnoTek Systemberatung GmbH (http://www.innotek.de)
9
10
11GCC v3.3.5 CSD 2 / LIBC v0.6.2:
12-------------------------------
13
14 First, thanks to Yuri, Froloff and Paul for patches, bugs
15 and other kind of feedback.
16
17
18 Fix list:
19 #54 libc: fchdir(open('.', O_RDONLY)) may corrupt path
20 resolving
21 #76 libc: fork() failed when using dlopen()
22 #102 libc: thread db locked after fork
23 #103 libc: atexit() callbacks in dlls are called after
24 dlclose()/DosFreeModule() on the DLL
25 #112 libc: stdio.h va_list & _POSIX_C_SOURCE=1
26 #113 libc: scanf("%lld", &lld)
27 #114 libc: Unloading a DLL can break wait*() and other
28 libc operations.
29 #118 libc: Incorrect DosSetFHState mask
30 #119 libc: logging stops in fork() child after libc data
31 segment copying
32 #122 libc: open("file", O_RDONLY | O_CREAT, 0666) fails
33 #125 libc: Missing nan(), nanl() and nanf()
34 #133 libc: _SC_PAGESIZE missing in sysconf()
35 #135 libc: setlocale(LC_COLLATE, "C") doesn't work correctly
36 #136 libc: incorrect parsing of single quotes in commandline
37 arguments
38 #141 libc: include the right types.h from sys/param.h,
39 arpa/nameser.h and resolv.h
40 #142 libc: tempnam(NULL,NULL) crashes and tempnam messes
41 up errno
42 #143 libc: __libc_Back_fsDirCurrentSet is hiding failures
43 (chdir)
44 #144 libc: tolower() doesn't work for the first 128 chars
45 if not inlined.
46 #146 libc: fread() on a write-only stream incorrectly puts
47 it in an irreversable read mode
48 #147 libc: merge in current regex code and fix REG_ERANGE
49 bug (sed/grep/++)
50 #149 libc: stat("/dev/null", &s) fails, fix.
51 #150 libc: symlinks 'files' contain garbage instead of
52 the name
53 #151 libc: Recursive "LIBC SYS Filehandle Mutex" panic
54 #152 libc: lost signals / thread pokes
55 #153 libc: Add a @executable_path rewrite rule by default.
56 #155 libc: setlocale calls UniFreeUconvObjec(NULL) instead
57 of UniFreeLocalObject causing crash in UConv.dll
58 #158 libc: printf("%#X, 255) outputs 0xFF instead of 0XFF
59 #160 libc: 3 more default rewrite rules; /@system_root,
60 /@system_drive and /@tmpdir
61 #111 libos2: Correct som data imports
62 #128 libos2: unidef.h is missing a few defines
63 #100 gcc: can't throw across dll/exe boundraries
64 #109 libstdc++: infinite recursion during thread exit
65 #124 libc/gcc: link libstdc++ into the libc dll
66 #145 emxomf: deal with non-standard enum stabs
67 #148 emxomf: The anonymous members of struct stat chokes
68 the debuggers
69 #137 emxomf: Don't truncate symbols twice.
70 #115 weakld: Don't bitch about export aliases
71 #89 emxomfld: Support wlink (the watcom linker)
72 #123 emxomfld: exit with rc 8 on genuin weakld failures,
73 not -1.
74 #159 emxomfld: wrc support
75 #47 emxomfld: Create .sym files directly from emxomfld
76 #134 emxomfld/wlink: The internalname and entryname of an
77 IMPORTS statement is switched
78 #39 dllar.cmd enhancements
79 #140 Definition file line can be greater than 512 bytes
80
81
82
83GCC v3.3.5 CSD 1 / LIBC v0.6.1:
84-------------------------------
85
86 First, thanks to Yuri, nickk, Paul, Andy and Michal for patches,
87 bugs and other kind of feedback.
88
89
90 Fix list:
91
92 #19 gcc: gcc limits.h overrides limits.h from libc
93 #20 libc: random panic SIGSEGV when doing parallel builds
94 #48 libc: freopen(NULL, "rb", stdio) panics (doesn't work
95 as expected)
96 #60 libc: filehandle inheritance doesn't work right!
97 #22 libc: path resolver fails on open file
98 #23 libc: symlink is broken
99 #50 libc: umask isn't inherited
100 #51 libc: unlink fails on readonly file
101 #53 libc: freopen("missing",,) causes panic
102 #54 libc: fchdir(open('.', O_RDONLY)) may corrupt path
103 resolving
104 #58 libc: closed standard handles cause uninitialized
105 stdout/stdin/stderr streams
106 #21 libc: limit Unix EAs to specific file systems
107 #24 libc: fts crashes because it's still using chdir()
108 #32 libc: readdir_r returns -1 instead of errno
109 #33 libc: panic when using timers
110 #38 libc: when debugged default to breakpoint on panic
111 #40 libc: open("/", RDONLY) fails.
112 #41 libc: incorrect __libc_back_fsUnixAttribsGet() usage
113 caused st_dev and st_ino to be 0 in some stat()s
114 and chmod & fchmod to set MODE EA without type
115 #46 ilink map file name is wrong when multiple dots are in
116 target name
117 #49 libc: st_ctime is incorrect and st_birthtime isn't
118 converted to UTC
119 #52 libc: path resolver fails resolving a directory
120 symlink for lstat
121 #61 libc: symlink(,existing) returns the wrong errno
122 #62 libc: getdelim / getline returns failure when the last
123 line doesn't end with the delimiter / newline
124 #65 libc: sys/stat.h doesn't work in non BSD source mode
125 #67 libc: Remove ncurses headers
126 #68 libc: getopt prototype clashes (getopt.h/unistd.h)
127 #69 libc: basename & dirname return incorrect results
128 for paths with drive
129 #71 libc: Incorrect fmutex padding in FILE
130 #27 ld bug when map files are requested
131 #34 weakld: generate duplicate weak aliases bird
132 #30 setlocale / ctype is broken
133 #70 emxomf: Demangle function names for omf debug info
134 #55 emxomfld doesn't delete temporary files
135 #56 emxomfld doesn't properly allocate space for map file name
136 #28 emxbind doesn't read library name from .def file
137 #36 emxbind: export truncation bug and allow export & imports
138 up to 255 chars
139
140 Full details can be found at:
141
142 http://svn.netlabs.org/libc/query?status=closed&milestone=libc-0.6.1
143
144
145
146GCC v3.3.5 / LIBC v0.6:
147-----------------------
148
149 There was a build problem with the first attempt at releasing.
150 This is the 2nd attempt, hope I got it right this time...
151
152 WARNINGS
153
154 There are several incompatible interface changes. So, you'll have
155 to rebuild static libraries and it's a good idea to do the same
156 thing for dynamic libs and programs too.
157
158 The build is not tested as much as I would've liked. I'm very
159 pressed on time as usual, but I really wanted to get the 0.6 stuff
160 out now. I can only hope everything still builds and works.
161
162
163 The Project is Moving
164
165 The source code has been migrated to subversion and now resides
166 on the svn.netlabs.org server. The server also provides an issue
167 tracker and project management service called trac. Check it
168 out at http://svn.netlabs.org/libc/.
169
170 The source code for this release (and any bugfix releases on
171 the 0.6 code base) can be checked out using this url:
172 http://svn.netlabs.org/repos/libc/branches/libc-0.6
173
174 Developers who wish to contribute to the 0.7 code will have to
175 diff against the trunk. There are several pending restructuring
176 tasks on 0.7, so don't expect everything to build fine or work
177 properly while those are still open. Anyway, the url:
178 http://svn.netlabs.org/repos/libc/trunk
179
180 Users are encouraged to join the [email protected] mailing list
181 and use that list for questions rather than the InnoTek form. If
182 you think you've found a bug, you should first ask on the mailing
183 list, and if I decide it's a *real*, *new*, bug I'll open a
184 ticket for it and address it.
185
186 Developers which have patches for real bugs or enhancements can
187 create trac tickets and drop me or the gcc-user list a mail (we
188 haven't figure out how to get email notifications from trac yet).
189
190
191 New features:
192
193 o Added __libc_Back_gfProcessHandlePCBatchScripts and
194 __libc_Back_gfProcessHandleHashBangScripts (globale
195 variables) to turn on/off script handling in exec/spawn.
196 Very useful for shells.
197
198 o Changed the default stack of emxomfld and emxbind to 1MB,
199 it used to be 8KB and 8MB.
200
201 o open() can now open directories like on unix, and fchdir()
202 can chdir to the opened directories.
203
204 o Implemented much of the unix-attributes-in EA stuff.
205
206 o Implemented getdirents(), will be used to replace
207 opendir/readdir/seekdir/telldir/closedir in 0.7.
208
209 o Implemented the fcntl interface for setting and clearing
210 the O_NONBLOCK flag on sockets.
211
212
213 Bug fixes:
214
215 o Fixed bug preventing libc from working on legacy systems.
216 Kudos to Andrew Below for spotting it.
217
218 o Fixed ld bustage in rc1.
219
220 o Fixed fork bug in shm.
221
222 o Fixed spawn/exec bug where .exe was appended too early
223 preventing configure and other scripts without suffix
224 from being executed.
225
226 o Fixed several signal bugs (deadlocks, sigsuspend, pause).
227
228 o Fixed symbol truncation problem in emxomf.
229
230 o Fixed a generic error handling bug in ioctl, write, read,
231 dup and dup2 which was causing incorrect errno values.
232
233
234 Known Issues, see open ticket in trac:
235 http://svn.netlabs.org/libc/report/1
236
237
238GCC v3.3.5 / LIBC v0.6 - Release Candidate 1:
239---------------------------------------------
240
241 New features:
242
243 o Replaced the BSD regex with the GLIBC one.
244
245 o Replaced the BSD getopt with the GLIBC one adding optreset
246 for BSD compatability.
247
248 o Added libcrypt from GLIBC.
249
250 o Added argp from GLIBC.
251
252 o Added obstack from GLIBC.
253
254 o Finally added a crude [v]asprintf() implementation.
255
256 o Added missing math bits from GLIBC.
257
258 o New functions:
259 rawmemchr(), strchrnul(), fgets_unlocked(), gets_unlocked(),
260 fwide(), asprintf(), vasprintf(), get_current_dir_name(),
261 getdelim(), getline(), getlogin_r(), _getopt_internal(),
262 _getopt_internal_r(), _getopt_long_only_r(),
263 _getopt_long_r(), argp_error(), argp_failure(),
264 argp_fmtstream_ensure(), argp_fmtstream_free(),
265 argp_fmtstream_point(), argp_fmtstream_printf(),
266 argp_fmtstream_putc(), argp_fmtstream_puts(),
267 argp_fmtstream_set_lmargin(), argp_fmtstream_set_rmargin(),
268 argp_fmtstream_set_wmargin(), argp_fmtstream_update(),
269 argp_fmtstream_write(), argp_help(), argp_input(),
270 argp_make_fmtstream(), argp_parse(),
271 argp_program_bug_address(), argp_program_version(),
272 argp_program_version_hook(), argp_state_help(), argp_usage(),
273 cacos(), cacosf(), cacosh(), cacoshf(), cacoshl(), cacosl(),
274 cargf(), casin(), casinf(), casinh(), casinhf(), casinhl(),
275 casinl(), catan(), catanf(), catanh(), catanhf(), catanhl(),
276 catanl(), ccos(), ccosf(), ccosh(), ccoshf(), ccoshl(),
277 ccosl(), cexp(), cexpf(), cexpl(), clog(), clog10(),
278 clog10f(), clog10l(), clogf(), clogl(), cpow(), cpowf(),
279 cpowl(), cproj(), cprojf(), cprojl(), csin(), csinf(),
280 csinh(), csinhf(), csinhl(), csinl(), csqrt(), csqrtf(),
281 csqrtl(), ctan(), ctanf(), ctanh(), ctanhf(), ctanhl(),
282 ctanl(), exp10(), log2(), log2f(), log2l(), sincos(),
283 sincosf(), sincosl(), asinhl(), atanhl(), llrintl(),
284 lrintl(), erfcl(), erfl(), exp2l(), expm1l(), log1pl(),
285 logbl(), nearbyintl(), remainderl(), remquol(), cabsl(),
286 carg(), cargl(), gammal_r(), exp10f(), tgammaf(), tgammal(),
287 __fpu_control(), acoshl(), exp10l(), j0l(), j1l(), jnl(),
288 lgammal_r(), nexttowardl(), scalbl(), significandl(), y0l(),
289 y1l(), ynl(), gammal(), lgammal(), _obstack_allocated_p(),
290 obstack_alloc_failed_handler(), _obstack_begin(),
291 _obstack_begin_1(), obstack_exit_failure(), obstack_free(),
292 _obstack_memory_used(), _obstack_newchunk(), nftw(),
293 stpncpy(), crypt_r(), encrypt_r(), init_des(), init_des_r(),
294 md5_buffer(), md5_crypt(), md5_crypt_r(), md5_finish_ctx(),
295 md5_init_ctx(), md5_process_block(), md5_process_bytes(),
296 md5_read_ctx(), md5_stream(), setkey_r(), crypt(), encrypt(),
297 setkey(), _ufc_dofinalperm_r(), _ufc_doit_r(), _ufc_foobar(),
298 _ufc_mk_keytab_r(), _ufc_output_conversion_r(),
299 _ufc_setup_salt_r(), getmode(), optreset(), bsd_setmode(),
300 getpgid(), getsid(), setlinebuf(), re_comp(),
301 re_compile_fastmap(), re_compile_pattern(), re_exec(),
302 re_match(), re_match_2(), re_search(), re_search_2(),
303 re_set_registers() and re_set_syntax().
304
305
306 Bug fixes:
307
308 o Fixed various bugs related to __declspec.
309
310 o Fixed a bug in alloca which was causing all -O levels
311 to break.
312
313 o Added UniStrFromUcs and UniStrToUcs to uconv.h and libos2.
314
315 o Fixed quite a few libc issues, see the ChangeLog.LIBC
316 for full details.
317
318
319 Known problems:
320
321 o Static linking not possible - will be fixed.
322
323 o Job control will only be applied to thread 1 in a process.
324 This won't change.
325
326 o Missing some process group interfaces required for
327 job control. They'll show up soon.
328
329 o The HLL debug info isn't working 100% correctly.
330
331
332
333GCC v3.3.5 / LIBC v0.6 - Beta 5:
334--------------------------------
335
336 Thanks to Lorne, Froloff, nickk and Andy for sending me patches,
337 debugging problems and/or testing fixes.
338
339 New features:
340
341 o Added support for __declspec(dllexport), _Export
342 and __declspec(dllimport), the latter being a stub.
343 This also included adding N_EXP to the a.out format.
344
345 o Lot's of math stuff, mostly untested.
346
347 o Optimized zeroing of new file space in ftruncate and
348 chsize with knowlegde about the filesystem. HPFS, JFS
349 and FAT will do the zeroing for us.
350
351 o Support for unlocked stdio, with both BSD and GNU
352 extensions implemented.
353
354 o Execute .cmd, .bat, .btm and hash-bang scripts.
355
356 o Respect single quotes in argument handling (sed craze).
357
358 o Ported fts.h and the BSD implementation.
359
360 o Ported BSD sysctl. (Does not include the tcpip v4.1
361 sysctl() bits yet.)
362
363 o Ported the FreeBSD implementation of SysV semaphores
364 and shared memory.
365
366 o Env.var. LIBC_THREAD_MIN_STACK_SIZE can be used to
367 specify the minimum stack size for new threads. The
368 default minimum is 4096 bytes.
369
370 o Ported (lib)intl from glibc.
371
372 o New gcc arguments -Zargs-wild and -Zargs-resp.
373
374 o New functions (might not be 100% correct):
375 __bindtextdomain(), __dcgettext(), __dcigettext(),
376 __dcngettext(), __dgettext(), __dngettext(), __gettext(),
377 __gettext_extract_plural(), __gettext_free_exp(),
378 __gettextparse(), _nl_make_l10nflist(), __ngettext(),
379 __textdomain(), _nl_locale_name(), on_exit(), nanosleep(),
380 wmemcpy(), wmemchr(), wmemcmp(), wmemmove(), wmemset(),
381 gethrtime(), _nl_expand_alias(), _nl_explode_name(),
382 _nl_normalize_codeset(), __fbufsize(), __fpending(),
383 getpriority(), setpriority(), nice(), sysctl(),
384 sysctlbyname(), sysctlnametomib(), fchmod(), _chdir_os2(),
385 fts_children(), fts_close(), fts_get_clientptr(),
386 fts_get_stream(), fts_open(), fts_read(), fts_set(),
387 fts_set_clientptr(), mkfifo(), futimes(), _getenv_int(),
388 _getenv_long(), _getenv_longlong(), ftok(), semctl(),
389 semget(), semop(), shmat(), shmctl(), shmdt(), shmget(),
390 acosf(), acosh(), acoshf(), asinf(), asinh(), asinhf(),
391 atan2f(), atanf(), atanh(), atanhf(), cabs(), cabsf(),
392 cbrtf(), ceilf(), cimag(), cimagf(), cimagl(), conj(),
393 conjf(), conjl(), cosf(), coshf(), creal(), crealf(),
394 creall(), erf(), erfc(), erfcf(), erff(), exp2(), exp2f(),
395 expf(), expm1(), expm1f(), truncf(), fabsf(), fdim(),
396 fdimf(), fdiml(), fegetenv(), feholdexcept(),
397 feraiseexcept(), fesetexceptflag(), feupdateenv(), floorf(),
398 fma(), fmaf(), fmal(), fmax(), fmaxf(), fmaxl(), fmin(),
399 fminf(), fminl(), fmodf(), frexpf(), hypotf(), ilogb(),
400 ilogbf(), ilogbl(), ldexpf(), lgamma(), lgammaf(), llrint(),
401 llrintf(), llround(), llroundf(), llroundl(), log10f(),
402 log1p(), log1pf(), logb(), logbf(), logf(), lrint(),
403 lrintf(), lround(), lroundf(), lroundl(), modff(),
404 nearbyint(), nearbyintf(), nexttoward(), nexttowardf(),
405 powf(), remainder(), remainderf(), remquo(), remquof(),
406 rintf(), round(), roundf(), roundl(), scalbf(), scalbln(),
407 scalblnf(), scalblnl(), scalbn(), scalbnf(), scalbnl(),
408 signgam(), sinf(), sinhf(), sqrtf(), tanf(), tanhf(),
409 tgamma(), drem(), dremf(), finite(), finitef(), gamma(),
410 gammaf(), gammaf_r(), gamma_r(), j0(), j0f(), j1(), j1f(),
411 jn(), jnf(), lgammaf_r(), lgamma_r(), scalb(),
412 significand(), significandf(), powl(), y0(), y0f(), y1(),
413 y1f(), yn(), ynf(), arc4random(), arc4random_addrandom(),
414 arc4random_stir(), _mktemp(), mkdtemp(), mkstemps(),
415 clearerr_unlocked(), feof_unlocked(), ferror_unlocked(),
416 fgetc_unlocked(), fileno_unlocked(), flockfile(),
417 ftrylockfile(), funlockfile(), getchar_unlocked(),
418 getc_unlocked(), putchar_unlocked(), fputc_unlocked(),
419 putc_unlocked(), fputs_unlocked(), puts_unlocked() and
420 fread_unlocked().
421
422 Removed features:
423
424 o smallcnv is gone.
425
426 o old weak symbol handling in emxomf is gone.
427
428
429 Bug fixes:
430
431 o Numerous bugfixes in libc, see ChangeLog.LIBC for
432 details.
433
434 o Fixed problems with receiving signals during fork().
435
436 o Fixed bug in timer backend if the system had no
437 exiting timers. Kudos to Froloff for noticing this.
438
439
440 Known problems:
441
442 o Static linking not possible - will be fixed.
443
444 o Job control will only be applied to thread 1 in a process.
445 This won't change.
446
447 o Missing some process group interfaces required for
448 job control. They'll show up soon.
449
450 o The HLL debug info isn't working 100% correctly.
451
452
453 Todos before LIBC06.DLL:
454
455 0. Make my way through the glibc testsuite.
456
457 1. New select() from Brian (aka nuke).
458
459 2. Missing job pgid functions.
460
461
462
463GCC v3.3.5 / LIBC v0.6 - Beta 4:
464--------------------------------
465
466 Thanks to Lorne, Froloff and nickk for sending me patches,
467 debugging problems and testing fixes.
468
469 New features:
470
471 o Added st_dev and st_ino calculation for fstat and stat.
472
473 o Added most of the wide string functions.
474 N.B. the stream functions are still missing.
475
476 o New functions:
477 SafeDosStartSession(), wcscat(), wcschr(), wcscmp(),
478 wcscoll(), wcscpy(), wcscspn(), wcslcat(), wcslcpy(),
479 wcslen(), wcsncat(), wcsncmp(), wcsncpy(), wcspbrk(),
480 wcsrchr(), wcsspn(), wcsstr(), wcstok() and wcswidth()
481
482
483 Bug fixes:
484
485 o settimeofday() year problem.
486
487 o Some underflow/overflow problems tested for by many
488 Configure scripts was fixed by using a 64-bit time
489 type internally.
490
491 o fxsave/fxrstore problem in fork(). (This isn't tested
492 because lack of (reliable) obsolete hardware.)
493
494 o Fixed fork() and DosLoadModule problem in child.
495
496 o nl_langinfo(CODESET) now returns something useful,
497 adding a few ascii codeset aliases at the same time.
498
499 o Bug in socket inheritance over exec/spawn.
500
501 o Missing semphore and signal blocking when processing
502 external signals.
503
504 o Two rmdir errno problems, and made it fail on symlink.
505
506 o Fixed incorrect monetary locale for the "C" locale
507 after setlocale call.
508
509 o Fixed signal queue node leak.
510
511 o Fixed missing release of signal semaphore and signal
512 unblocking in a failure code path.
513
514 o Fixed a few filehandle conversion bugs in os2_select.
515
516 o Fixed libsocket to set errno to ENOSOCK when given a
517 filehandle instead of a socket. Previous was ENOSYS.
518
519 o Corrected NP_NBLK define in os2emx.h.
520
521 o Export __mcount stub. LIBCxx.prf export non-stub.
522
523 o Added missing libdl stub libraries (dlfcn is in libc
524 as of last release).
525
526 o Fixed missing WNOHANG handling in the wait functions.
527
528 o Adjusted the ECHILD and EINVAL errnos usage in
529 the wait functions to match the waitpid() spec.
530
531 o ???
532
533 Todos before LIBC06.DLL:
534
535 0. Fix all bugs. :-)
536
537 1. Reimplement opendir in BSD style (+fchdir).
538
539 2. Shared IPC structures for XSI msq, sem and shm.
540
541 3. Missing job pgid functions.
542
543 4. Port GLIBC intl/*. gettext is a pita! because it's
544 passing FILE pointers around between different LIBCs.
545 objdump is constantly broken between LIBC versions.
546
547 5. Figure out the EA exclusive read access trouble.
548
549 6. Calc ino_t on file creation and store it in EAs.
550
551 7. Some sysctl() required for coreutils + a bit
552 of tcpip additions.
553
554 8. adjtime() implementation.
555
556
557
558GCC v3.3.5 / LIBC v0.6 - Beta 2:
559--------------------------------
560
561 New features:
562
563 o wchar.h and wctype.h and much of the non-stream functions
564 declared therein are implemented. Though, the FreeBSD
565 string/w*.c functions are still in the porting queue.
566
567 o Added __mcount stub to all LIBC DLLs but the .prf one which
568 is forwarding __mcount from kProfile.dll.
569
570 o DosLoadModuleEx and DosFreeModuleEx was created to support
571 loaded modules over a fork(). dlopen/dlclose backend was
572 changed to use these.
573
574 o Fixed rand() range problem. Using the BSD code for this
575 too, which means a new algorithm.
576
577 o Update all BSD source-files (not headers) to FreeBSD 5.3
578 level.
579
580 o New functions:
581 DosLoadModuleEx(), DosFreeModuleEx(), sranddev(),
582 getsubopt(), rand_r(), llabs(), lldiv(), dlfunc(),
583 issetugid(), pread(), pwrite(), _UTF8_mbrtowc(),
584 _UTF8_mbsinit(), _UTF8_mbsnrtowcs(), _UTF8_wcrtomb(),
585 _UTF8_wcsnrtombs(), digittoint(), isideogram(),
586 isrune(), iswalnum(), iswalpha(), iswascii(),
587
588 iswblank(), iswcntrl(), iswctype(), iswdigit(),
589 iswgraph(), iswhexnumber(), iswideogram(), iswlower(),
590 iswnumber(), iswprint(), iswpunct(), iswrune(),
591 iswspace(), iswupper(), iswxdigit(), btowc(), mbrlen(),
592 mbrtowc(), mbsinit(), mbsnrtowcs(), mbsrtowcs(),
593 nl_langinfo(), towctrans(), wcrtomb(), wcsftime(),
594 wcsnrtombs(), wcsrtombs(), wcstod(), wcstof(),
595 wcstoimax(), wcstol(), wcstold(), wcstoll(), wcstoul(),
596 wcstoull(), wcstoumax(), wctob(), wctrans(), wctype(),
597 towlower(), towupper().
598
599
600 Bug fixes:
601
602 o Fixed missing WNOHANG handling in waitpid(), wait4()
603 and waitid().
604
605 o Corrected several severe bugs in the path resolver.
606
607 o Fixed handling of paths ending with slash.
608
609 o Fixed weird fork() problem which showed up as a heap
610 deadlock.
611
612 o Fixed broken _getdrive().
613
614 o Made _chdrive() return -1 on error. It used to always
615 return success earlier. (don't ask me why)
616
617 o Fixed incorrect handling of -shared in GCC. It should
618 be treated as -Zdll.
619
620 o Various incorrect assertions in the strict/log build.
621
622 o ...
623
624 Known Limitiations/Problems:
625
626 o Static linking not possible - might be fixed later.
627
628 o Job control will only be applied to thread 1 in a process.
629 This won't change.
630
631 o Missing some process group interfaces required for
632 job control. They'll show up soon I hope.
633
634 o Not tested too well. Especially the regex update.
635
636 Todos before LIBC06.DLL:
637
638 0. Fix all bugs. :-)
639
640 1. Implement new ino_t scheme and reimplement opendir
641 in BSD style while doing so (+fchdir).
642
643 2. Shared IPC structures for XSI msq, sem and shm.
644
645 3. Port string/w* functions.
646
647 4. Missing job pgid functions.
648
649 5. Port GLIBC intl/*. gettext is a pita! because it's
650 passing FILE pointers around between different LIBCs.
651 objdump is constantly broken between LIBC versions.
652
653
654
655GCC v3.3.5 / LIBC v0.6 - Beta 1:
656--------------------------------
657
658 New features:
659
660 o setitimer/alarm implementation. Needs some review later
661 the accuracy isn't extacly great.
662
663 o Added a couple of missing os2emx.h features.
664
665 o Some more 16-bit thunkers.
666
667 Bug fixes:
668
669 o Select worker called wrong tcpip function.
670
671 o Incorrect assertion during thread destruction.
672
673 o Fixed broken chdir and getdrive.
674
675 o Improved deadlock detection (fmutex have changed,
676 thus stdio FILE is also changed).
677
678 o ...
679
680
681 Known Limitiations/Problems:
682
683 o Static linking not possible - will be fixed.
684
685 o Job control will only be applied to thread 1 in a process.
686 This won't change.
687
688 o Missing some process group interfaces required for
689 job control. They'll show up soon.
690
691 o Doesn't evaluate trailing slash in paths as directory