source: branches/libc-0.6/doc/ReleaseNotes.os2@ 2548

Last change on this file since 2548 was 2534, checked in by bird, 20 years ago

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