source: trunk/doc/ReleaseNotes.os2@ 1732

Last change on this file since 1732 was 1732, checked in by bird, 21 years ago

* empty log message *

  • Property cvs2svn:cvs-rev set to 1.24
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 27.3 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)'2003-2004 InnoTek Systemberatung GmbH
8http://www.innotek.de
9(C)'2004 Knut St. Osmundsen
10
11
12GCC v3.3.5 / LIBC v0.6 - Beta 2:
13--------------------------------
14
15 New features:
16
17 o wchar.h and wctype.h and much of the non-stream functions
18 declared therein.
19
20 o Added __mcount stub to all LIBC DLLs but the .prf one which
21 is forwarding __mcount from kProfile.dll.
22
23 o DosLoadModuleEx and DosFreeModuleEx was created to support
24 loaded modules over a fork(). dlopen/dlclose backend was
25 changed to use these.
26
27 o Fixed rand() range problem. Using the BSD code for this
28 too, which means a new algorithm.
29
30 o Update all BSD source-files (not headers) to FreeBSD 5.3
31 level.
32
33 o New functions:
34 DosLoadModuleEx(), DosFreeModuleEx(), sranddev(),
35 getsubopt(), rand_r(), llabs(), lldiv(), dlfunc(),
36 issetugid(), pread(), pwrite(), _UTF8_mbrtowc(),
37 _UTF8_mbsinit(), _UTF8_mbsnrtowcs(), _UTF8_wcrtomb(),
38 _UTF8_wcsnrtombs(), digittoint(), isideogram(),
39 isrune(), iswalnum(), iswalpha(), iswascii(),
40 iswblank(), iswcntrl(), iswctype(), iswdigit(),
41 iswgraph(), iswhexnumber(), iswideogram(), iswlower(),
42 iswnumber(), iswprint(), iswpunct(), iswrune(),
43 iswspace(), iswupper(), iswxdigit(), btowc(), mbrlen(),
44 mbrtowc(), mbsinit(), mbsnrtowcs(), mbsrtowcs(),
45 nl_langinfo(), towctrans(), wcrtomb(), wcsftime(),
46 wcsnrtombs(), wcsrtombs(), wcstod(), wcstof(),
47 wcstoimax(), wcstol(), wcstold(), wcstoll(), wcstoul(),
48 wcstoull(), wcstoumax(), wctob(), wctrans(), wctype(),
49 towlower(), towupper().
50
51
52 Bug fixes:
53
54 o Fixed missing WNOHANG handling in waitpid(), wait4()
55 and waitid().
56
57 o Various incorrect assertions in the strict/log build.
58
59 o Semi-correct handling of slashes at the end of paths.
60
61 o Correcte several severe bugs in path resolving.
62
63 o Fixed broken _getdrive().
64
65 o Made _chdrive() return -1 on error. It used to always
66 return success earlier.
67
68 o Fixed weird fork() problem which showed up as a heap
69 deadlock.
70
71 o Fixed incorrect handling of -shared in GCC. It should
72 be treated as -Zdll.
73
74 o ...
75
76 Known Limitiations/Problems:
77
78 o Static linking not possible - might be fixed later.
79
80 o Job control will only be applied to thread 1 in a process.
81 This won't change.
82
83 o Missing some process group interfaces required for
84 job control. They'll show up soon I hope.
85
86 o Not tested too well.
87
88
89
90GCC v3.3.5 / LIBC v0.6 - Beta 1:
91--------------------------------
92
93 New features:
94
95 o setitimer/alarm implementation. Needs some review later
96 the accuracy isn't extacly great.
97
98 o Added a couple of missing os2emx.h features.
99
100 o Some more 16-bit thunkers.
101
102 Bug fixes:
103
104 o Select worker called wrong tcpip function.
105
106 o Incorrect assertion during thread destruction.
107
108 o Fixed broken chdir and getdrive.
109
110 o Improved deadlock detection (fmutex have changed,
111 thus stdio FILE is also changed).
112
113 o ...
114
115
116 Known Limitiations/Problems:
117
118 o Static linking not possible - will be fixed.
119
120 o Job control will only be applied to thread 1 in a process.
121 This won't change.
122
123 o Missing some process group interfaces required for
124 job control. They'll show up soon.
125
126 o Doesn't evaluate trailing slash in paths as directory
127 specifier, it's currently ignored.
128
129
130
131GCC v3.3.5 / LIBC v0.6 - Alpha 3:
132---------------------------------
133
134 This release have been timebombed and will stop working at the
135 end of December 2004. The reason for this is that data structures
136 shared between LIBC 0.6 and all future LIBC versions are not yet
137 quite finalized. (For your comfort the timebomb will go away when
138 the betas start, and this is the last planned LIBC v0.6 alpha.)
139
140
141 New Features:
142
143 o Updated GCC to version 3.3.5.
144
145 o Replaced the signal implementation. The new implementation
146 is much closer to the POSIX specs and implements a lot of
147 new interfaces.
148
149 o Experimental delayed loading import libraries. emximp have
150 a new -l option for generating such libraries. At present
151 emximp can only generate a.out libraries of this kind - so
152 use emxomf to convert to OMF.
153
154 o The dlfcn.h functions are in LIBC now.
155
156 o New functions:
157 getgrouplist(), initgroups(), memalign(), valloc(),
158 mprotect(), _signal_os2(), _signal_sysv(),
159 __sigpause_bsd(), bsd_signal(), killpg(), psignal(),
160 sigaltstack(), sigblock(), sighold(), sigignore(),
161 siginterrupt(), sigpause(), sigrelse(), sigsetmask(),
162 sigtimedwait(), sigvec(), sigwait(), sigwaitinfo(),
163 sigqueue(), sigset(), getgrgid(), getpwnam(),
164 getpwuid(), setegid(), seteuid(), setregid(),
165 setresgid(), setresuid(), setreuid(),
166 setrgid(), setruid(), waitid(), wait3(),
167 wait4() and getopt_long_only().
168
169
170 Bug fixes;
171
172 o Sockets were broken on some systems. Hopefully, this
173 should be corrected now.
174
175 o stat() failed on a file open for writing.
176
177 o fork() didn't work for processes which allocated lot's
178 of memory. Fixed incorrect syncing of memory objects.
179
180 o ...
181
182
183 Known Limitiations/Problems:
184
185 o Static linking not possible - will be fixed.
186
187 o alarm() is still missing. Code is 80% done but didn't
188 make it for the release.
189
190 o Job control will only be applied to thread 1 in a process.
191 This won't change.
192
193 o Missing some process group interfaces required for
194 job control. They'll show up soon.
195
196
197
198GCC v3.3.4 / LIBC v0.6 - Alpha 2:
199---------------------------------
200
201 This release have been timebombed and will stop work at the
202 end of October 2004. The reason for this is that data structures
203 shared between LIBC 0.6 and all future LIBC versions are not yet
204 finalized.
205
206
207 New Features:
208
209 o Updated GCC to version 3.3.4.
210
211 o 2nd fork() implementation.
212 All binaries are by default forkable, use the link option
213 -Zno-fork to disable this.
214 The fork implementation rendered _rmutex useless and it
215 has been removed.
216
217 o Symlinks using EAs. This is work in progress. One of the
218 limitiations is that readir will not report DT_LNK yet.
219
220 o Unix compartment using chroot(). This offers a
221 redirection of '/' to the chroot'ed root. The entrance
222 to the compartment is the '/'. The exits are drive letters.
223 The unix compartment is inherited by LIBC child processes.
224
225 o getcwd() will now return the driveletter too (as VAC does)
226 when not inside the unix compartement.
227 _getcwdux() has been provided for porters which requires
228 behaviour like the old getcwd() implementation.
229
230 o Paths to unix files #defined in headers are now prefixed
231 with "/@unixroot" which will be redirected to where the
232 environment variable UNIXROOT points. After calling
233 chroot() the target of "/@unixroot" will be changed too.
234
235 o LIBC specific path rewriting (redirection). Built in is
236 "/dev/null", "/dev/tty" and "/@unixroot".
237 The environment variable LIBC_PATHREWRITERS is examined
238 during init and DLLs specified in it are loaded and called.
239 See src/emx/src/sys/pathrewrite.c for more details.
240
241 o Non-unix like mode - link option -Zno-unix.
242 This affects slashes and various other Unix-like features
243 like for instance fork and symlinks.
244
245 o Printf et al. have been extended to support some new format
246 specifiers. (It's still lacking a bit to be SuS comforming.)
247
248 o Sockets handles are now inherited by LIBC child processes.
249
250 o LIBC specific filehandle flags are now inherited by LIBC
251 child processes.
252
253 o The GCCxyz.DLL is no longer needed when LIBC is used.
254 However it is still shipped for special cases where LIBC
255 isn't needed.
256
257 o A good bunch of 'new' functions both from the SuS and from
258 various Unix flavors, even one or two PC functions have been
259 added. Accompanying these are new headers and header updates.
260 Here are most of the new function names:
261 __strverscmp(), _atfork_callback(), _getcwdux(),
262 _getdcwd(), _nsdbtaddsrc(), _nsdbtput(), _nsdispatch(),
263 _realrealpath(), canonicalize_file_name(), catclose(),
264 catgets(), catopen(), chown(), chroot(), eaccess(),
265 endgrent(), endnetgrent(), endusershell(), fchown(),
266 fstatfs(), fstatvfs(), getdtablesize(), getfsstat(),
267 getgrent(), getgrent_r(), getgrgid_r(), getgrnam_r(),
268 getloadavg(), getmntinfo(), getnetgrent(),
269 getpwent_r(), getpwnam_r(), getpwuid_r(), getrlimit(),
270 getusershell(), innetgr(), lchown(), link(), mknod(),
271 readlink(), setgrent(), setgroupent(), setgroups(),
272 setnetgrent(), setpassent(), setrlimit(),
273 setusershell(), sl_add(), sl_find(), sl_free(),
274 sl_init(), statfs(), statvfs(), strmode(), strtok_r(),
275 symlink() and sync().
276
277
278 Bug fixes:
279
280 o setlocale() have been rewritten. The code page is now
281 taken from the locale rather than OS/2. Old behaviour
282 is used if environment variable LIBC_SETLOCALE_OLDSTYLE
283 is defined.
284
285 o Buggy strspn() replaced by BSD implementation.
286
287 o Thread backend have been reworked fixing certain
288 problems when LIBC was loaded and initialized in threads
289 other than the primary one. A LIBC specific TLS api
290 was created during this effort.
291
292 o Fixed a missing export from GCCxyz.dll which was causing
293 incorrect behaviour of C++ exceptions in all previous
294 releases.
295
296 o Fixed a buffer overrun in iconv_open() which caused a
297 corruption of the FS selector register, thus crashing
298 the processing.
299
300 o ...
301
302
303 Known limitations and bugs:
304
305 o mktime() works incorrectly for exterme values causing
306 configure test to fail.
307
308 o NSS probably doesn't work.
309
310 o Trailing slashes of a path specification are not
311 handled correctly after the rewrite of the path
312 handling.
313
314 o New path handling is not DBCS ready.
315
316 o Socket handle duplication have not been implemented yet.
317
318 o The __<syscall> function are in the process of being
319 removed.
320
321 o Not tested with mozilla.
322
323
324
325v3.2.2 Beta 4 CSD 1:
326--------------------
327
328 Bug fixes:
329
330 o Fixed crash in file stream allocation code.
331
332 o Fixed incorrect time on machines which had DATETIME::timezone
333 set. This fix changes the time granularity from hundredths of
334 a second to milliseconds.
335
336 o Added the SPBCDATA struct, the defines FCF_CLOSEBUTTON and
337 BS_NOTEBOOKBUTTON and infosegment structs to os2emx.h
338
339 o Fixed bug in sys/locale.h where it hid the lconv struct.
340
341 o Fixed missing error number translations in getsockopt() and
342 setsockopt().
343
344 o Fixed potential conflict caused by sys/types.h not defining
345 _KEY_T with the key_t typedef.
346
347 o Fixed missing 64bit I/O support in ftell(), fstat() and stat().
348
349 o Fixed UCS-2 codepage mappings.
350
351 o Fixed problem with emxbind not recognizing option -e and
352 a problem with case sensitivity in the export checking.
353
354
355v3.2.2 Beta 4:
356--------------
357
358 (The changelog is removed, thus the release notes are more detailed.)
359
360 New features and fixes:
361
362 o Filehandle rewrite. Files, pipes and sockets now share the same
363 handle space.
364
365 o Updated binutils from v2.11.2 to v2.14 adding as-elf.exe and
366 ld-elf.exe as goodies for the adventurous.
367
368 o GCC defines __INNOTEK_LIBC__=0x005.
369 The value reflects the LIBC version, form: 0xGMM
370 Where G=major version and MM=middle version numbers.
371
372 o Changed library search algorithms for the linkers (emxomfld
373 and ld). Three variations, static, shared and shared+dll.
374 (The options indicated corresponds to what binutils 2.12.x
375 documents.)
376 static: (-Bstatic, -non_shared, -dn, -static)
377 1. libfoo_s.a
378 2. foo_s.a
379 3. libfoo.a
380 4. foo.a
381 shared: (default, -Bshared, -call_shared, -dy)
382 1. libfoo_dll.a
383 2. foo_dll.a
384 3. libfoo.a
385 4. foo.a
386 5. libfoo_s.a
387 6. foo_s.a
388 shared+dll: (-Zdll-search with -Bshared, -call_shared, -dy)
389 1. libfoo_dll.a
390 2. foo_dll.a
391 3. libfoo.a
392 4. foo.a
393 5. foo.dll
394 6. libfoo_s.a
395 7. foo_s.a
396
397 o Added some deadlock checking/termination checks to semphores.
398
399 o Added macros to os2emx.h for preserving FPU control word and
400 applied these to certain read and write operations in LIBC.
401
402 o Added feature to emxomfld to automatically convert a.out
403 libraries and objects to OMF (using temporary files). Enabled
404 by default but can be disabled by the option -Zno-autoconv.
405
406 o Added support to emximp for dlls.
407
408 o Added support for automatic conversion of dlls to temporary
409 import libraries emxomfld and ld.
410
411 o Added getopt_long() and changed getopt() to FreeBSD
412 implementations.
413
414 o Added a few more code page aliases.
415
416 o Added optional breakpoint in abort. The presense of the env.var.
417 LIBC_BREAKPOINT_ABORT triggers the breakpoint instruction.
418
419 o Added syslog interfaces (contrib from Yuri Dario).
420
421 o Added to libc and updated BSD db code to FreeBSD 5.1 level.
422
423 o Added to libc and updated regex code to FreeBSD 5.1 level.
424
425 o Ported the posix spawn api from GLIBC v2.3.2.
426
427 o Updated with os2emx.h flags for DosQueryMemState().
428
429 o Changed size_t to unsigned int (from unsigned long int) and
430 ptrdiff_t to signed int (from signed long int) to comply with
431 most of the other i386 environments.
432
433 o Changed abort and default signal termination messages to say
434 which process it's printed from.
435
436 o Changed the glob() and globfree() implemenation with a port of
437 the FreeBSD 5.1 implemenation.
438
439 o Changed so_ioctl() to os2_ioctl() to better match the toolkit.
440
441 o Changed time_t to be signed as in BSD & linux.
442 (Negative values means date/time before epoc.)
443
444 o Changed to FreeBSD implementation of difftime().
445
446 o Increased default stream buffer size to 2 pages.
447
448 o Workaround for DosSetFileLocksL() on non JFS volumes.
449
450 o Workaround for bad FIL_STANDARDL buffer handling in os2krnl.
451
452 o Fixed waitpid() to respect the WNOHANG flag.
453
454 o Fixed strerror() to set errno if an invalid error number is
455 specified.
456
457 o Fixed problem with emxexp emitting ordinal without being told.
458
459 o Fixed broken setenv().
460
461 o Fixed errno value for read() and write() when the handle isn't
462 opened for that operation.
463
464 o Fixed a bad record length problem in emxomf.
465
466 o Fixed type_tag too long issue in emxomf.
467
468 o Fixed repetition of main source file in HLL debuginfo (emxomf).
469
470 o Fixed weakld problem with selfrefering aliases.
471
472 o Fixed weakld problem with PUBLIC and COMM clash.
473
474 o Fixed problem with streams not being flushed on termination.
475
476 o Fixed define clash in float.h when in C99 mode.
477
478 o Fixed abend in GCC if TMPDIR or TMP was ending with a slash.
479
480 o Fixed crash in ld when having fixups to weak symbols.
481
482 o Fixed bad conversion of dll0*.o to OMF, the OMF version got an
483 unwanted stack object.
484
485 o New functions:
486 isblank(), ishexnumber(), isnumber(), mempcpy(), realpath(),
487 strnlen(), asctime_r(), ctime_r(), gmtime_r(), localtime_r(),
488 strerror_r(), usleep().
489
490 o New functions & globals (from FreeBSD 5.1):
491 imaxabs(), imaxdiv(), strtoimax(), strtoumax(), hcreate(),
492 hdestroy(), hsearch(), insque(), lfind(), lsearch(),
493 remque(), tdelete(), tfind(), tsearch(), twalk(), reallocf(),
494 strsignal(), sys_signame, sys_siglist, sys_nsig, regcomp(),
495 regerror(), regexec(), regfree(), + bsd db functions.
496
497 o New functions (from GLIBC 2.3.2):
498 error(), error_at_line(), strndup(), argz_add(),
499 argz_add_sep(), argz_append(), argz_count(), argz_create(),
500 argz_create_sep(), argz_delete(), argz_extract(),
501 argz_insert(), argz_next(), argz_replace(), argz_stringify(),
502 posix_spawnp() posix_spawn(), posix_spawnattr_destroy(),
503 posix_spawnattr_getflags(), posix_spawnattr_getpgroup(),
504 posix_spawnattr_getschedparam(),
505 posix_spawnattr_getschedpolicy(),
506 posix_spawnattr_getsigdefault(),
507 posix_spawnattr_getsigmask(), posix_spawnattr_init(),
508 posix_spawnattr_setflags(), posix_spawnattr_setpgroup(),
509 posix_spawnattr_setschedparam(),
510 posix_spawnattr_setschedpolicy(),
511 posix_spawnattr_setsigdefault(),
512 posix_spawnattr_setsigmask(),
513 posix_spawn_file_actions_addclose(),
514 posix_spawn_file_actions_adddup2(),
515 posix_spawn_file_actions_addopen(),
516 posix_spawn_file_actions_destroy(),
517 posix_spawn_file_actions_init()
518
519 o New headers:
520 nerrno.h (toolkit compatability).
521
522 o New headers (from FreeBSD 5.1):
523 search.h, sys/queue.h, net/if_types.h.
524
525 o New headers (from GLIBC 2.3.2):
526 features.h (somewhat crippled),
527 sys/gnu/cdefs.h (included from BSD styled sys/cdefs.h).
528
529 o Updated headers:
530 stddef.h (FreeBSD, sys/stddef.h (FreeBSD),
531 ulsitem.h (missing defines), os2emx.h, ...
532
533 o What I forgot...
534
535
536v3.2.2 Beta 3 Fix 1 (private build):
537------------------------------------
538
539 Fixes to LIBC:
540
541 o Crash if calloc was called before main().
542
543 o TZ parsing of timezones such as PST8EDT.
544
545 o sigsetjmp() and siglongjmp() visibility.
546
547
548v3.2.2 Beta 3:
549--------------
550
551 A few new features and fixes.
552
553 o Fixed a bunch of debug info problems.
554
555 o Added large file support.
556
557 o Enabled high memory support for LIBC. Two new options to GCC:
558 -Zhigh-mem and -Zhigh-low. If the program is to be enabled for
559 high memory use, specify -Zhigh-mem when linking.
560
561 Note that socket is not high memory enabled yet.
562
563 o Made LIBC preserve the FS selector.
564
565 o Added random() and *rand48() from BSD.
566
567 o Fixed crash with link386 and unresolved symbols.
568
569
570v3.2.2 Beta 2:
571--------------
572
573 A few bugfixes and a some new features (as usual).
574
575 o Added file locking support to LIBC.
576
577 o Fixed _System and _Optlink bugs and made _Optlink support
578 floating point argument passing in registers.
579
580 o Header updates related to limits and file locking primarily.
581
582 o Timezone fixes.
583
584 o Fixed some CRT init trouble in regards to getenv and putenv.
585
586 o And some other minor stuff..
587
588
589v3.2.2 Beta 1:
590--------------
591
592 A few bugfixes and a some new features.
593
594 o Locale support in libc.
595
596 o Implemented a different approach to OMF and weak symbols. This
597 new hack performs pre-linking before invoking the OMF linker
598 generating new .def files if needed and an extra object file with
599 aliases to resolve the weak symbols correctly.
600 The old approach will be used used when GCC_WEAKSYMS is present in
601 the environment.
602
603 Please note that due to a bug in BFD, weak symbols don't work
604 100% correctly. This will be addressed as soon as we have
605 performed the switch to a more recent version of binutils.
606
607 o A couple of new functions in libc, and a few corrections to
608 existing in respect to namespaces.
609
610 o Addressed issues with calling conventions. We now detect
611 incompatible calling conventions, emitting warnings and errors
612 where appropriate.
613
614 o _Optlink is much better, but there are still some issues
615 left. Passing prototyped floating point parameters to
616 _Optlink doesn't work. Mixing of parameters which go into
617 registers (eax, edx, ecx) and parameters which
618 don't - void foo(int eax, struct sss s, int edx) - doesn't
619 work. All these issues are being addressed and are expected
620 to be fixed in the next build.
621
622 o Changed GCC to link with shared libc by default. This means
623 that in order to link with the static libc one has to specify
624 -static. It also means that -Zmtd or -Zcrtdll are no longer
625 required for linking with shared libc and can be removed from
626 all makescripts.
627
628 o Changed EMXOMFLD defaults to ilink from Visual Age for C++
629 v3.6.5 or later (preferably later). The emxomfld usage output
630 will instruct you on how to use older linkers. For VAC308 and
631 VAC365 linkers /dbgpack is specified if debuginfo is to be
632 generated. Emxomf checks for EMXOMFLD_TYPE=link386 when choosing
633 debug info level.
634
635 o Shipping three extra libc dlls:
636 libc02.dbg: Unstripped version of libc02.dll. This is
637 identical except from the presense of debug
638 info.
639 libc02.prf: Linked together from profiled enabled
640 libraries using kProfiler.
641 libc02.elh: Standard libc but linked with an external
642 electrical fence heap from kLibDbg.
643 These libc02.* dlls can be used instead of libc02.dll. kLibDbg
644 and kProfiler is available in separate zip files at same
645 location as the rest of the InnoTek GCC suite. However these
646 external tools are provided as is. (I might actually not find
647 time to put them out yet.)
648
649 o Distribution is splitted into several zips:
650 -core.zip: All you really need.
651 -dbg.zip: Map files, unstripped tools and libs, and
652 libc02.elh.
653 -prf.zip: Profiling libraries and libc02.prf.
654 libc.zip: The runtime libraries. (included in core.)
655 The big zip is everything.
656
657v3.2.2 Alpha 3:
658---------------
659
660 Primarily bugfixes.
661
662 o Changed code generator for floating point truncations (double
663 to int casts and such) so PM can freely mess up the fpu status.
664
665 o We were using the wrong float.h in two sense. We're now using
666 the correct one which includes all the PC defines and
667 prototypes.
668
669 o Fixed a few issues with error defines and tcpip.
670 Note that some of the error defines have changed value in the
671 process so we could become compatible with the tcpip stack
672 and FreeBSD.
673
674 o Corrected bugs in a number of headers.
675
676 o Added more OS/2 prototypes and imports. There is still work
677 left on the header part,
678
679 o Optimized emxomf debug info conversion.
680
681 o Wrapped bsdselect for BSD 4.4 header mode to implement
682 bsdselect().
683
684 o .... what did we forget...
685
686
687v3.2.2 Alpha 2:
688---------------
689
690 A few bugfixes and a couple of new features.
691
692 o The TCP/IP headers and libraries scheme have been changed.
693 The default is the current OS/2 tcpip toolkit (BSD 4.4 based).
694 To target the older OS/2 tcpip stack (BSD 4.3 based) you must
695 define TCPV40HDRS before including any TCP/IP headers and make
696 sure usr/lib/tcpipv4 is searched before usr/lib (this is to
697 get the right libsocket). It is recommended to use the -D
698 compiler option for the define and either the LIBRARY_PATH or
699 the -L compiler/linker option for the library.
700
701 o There are a couple of new and updated based on FreeBSD 5.1.
702 sys\stdint.h and inttypes.h (and a few internal once) are new.
703 sys\types.h and unistd.h are the ones most heavily updated.
704 We're working on getting the headers and libc in a better
705 shape standardwise to easy compatability and portability.
706
707 o A infinite loop in emxomf has been fixed.
708
709 o Linker error on sopen() has been corrected.
710
711 o .... what did we forget...
712
713
714v3.2.2 Alpha 1:
715---------------
716
717 This is the first release from InnoTek, and it contains the InnoTek LIBC.
718 In addition to the new LIBC there is a number of other major changes:
719
720 o Name mangling in OMF mode have changed.
721 Until this release emxomf used to pretty much strip one leading '_'
722 from symbols when converting them to omf. This is now longer done
723 chiefly in order to correctly support mangling calling conventions
724 like __stdcall and __cdecl. This change have the following side
725 effects:
726 - _System and __cdecl no longer produces the same names and hence
727 all OS/2 API which are _System must be declared as _System in
728 order to link.
729 - Assembly code might need an extra underscore to work, or
730 perhaps change the prototypes to _System.
731 - Global variables are prepended and underscore, so mixing VAC and
732 GCC, or accessing globals from asm, take care.
733 (MSC v6.0 does this too, so it's not any uncommon practise.)
734
735 The OS/2 headers which are included are all updated to use _System.
736
737 o TCPIP headers are updated a quite a bit to match the toolkit ones
738 and to reflect the fact that the new libc does not a having common
739 handle space for files and sockets. These changes aren't 100%
740 completed yet, and usage probably will uncover some issues left in
741 there. Also for the programmer there is the following changes in
742 the apis provided:
743 - TCPV40HDRS are supported and should work like with the toolkit
744 headers. It will alias all functions to tcpip40_ editions
745 (using #defines) so we get the right imports thru -llibsocket.
746 - There is no support for sockets in select(). To do select on
747 sockets you will have to use bsdselect() or os2_select().
748 bsdselect() is only available for TCPV40HDRS. For
749 !defined(TCPV40HDRS) fd_set is in the emx/bsd format and not the
750 OS/2 tcpip v5.0 format.
751 - Socket IOCTLs are not supported by the ioctl() libc function
752 because of the separate handle space for sockets. For sockets
753 so_ioctl() and os2_ioctl() are used. os2_ioctl() is not available
754 when TCPV40HDRS is defined. According to the tcpref in v5.0
755 so_ioctl() only supports BSD ioctls.
756 - writev() and readv() also clashes with libc. For socket handles
757 use so_writev() and so_readv().
758
759 o The prefered OMF linker is now ilink. link386 will fail with an odd
760 error message if you tell gcc/g++ to make debug info. Set the
761 EMXOMFLD_LINKER environment variable to value ilink in order to use
762 ilink as OMF linker.
763 It likely that we will change the default OMF linker to ilink in an
764 later version of the GCC suite.
765
766 o .... what did we forget...
Note: See TracBrowser for help on using the repository browser.