source: trunk/doc/ReleaseNotes.os2@ 582

Last change on this file since 582 was 582, checked in by bird, 22 years ago

* empty log message *

  • Property cvs2svn:cvs-rev set to 1.5
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 7.9 KB
Line 
1
2
3 R e l e a s e N o t e s
4 +------------------------+
5
6v3.2.2 Beta 1:
7--------------
8
9 A few bugfixes and a some new features.
10
11 o Locale support in libc.
12
13 o Implmented a different approach to OMF and weak symbols. This new hack
14 does a pre-linking before invoking the OMF linker generating new .def
15 if needed and an extra object file with aliases to resolv the weak
16 symbols correctly.
17 The old approach used when GCC_WEAKSYMS is present in the environment.
18
19 Please note that due to a bug in BFD weak symbols doesn't work 100%
20 correctly. This will be addressed when we now move on to a later
21 version of binutils.
22
23 o A couple of new functions in libc, and a few correction of existing
24 in respect to namespace.
25
26 o Addressed issues with _System, _Optlink and __stdcall. They should
27 all be working now.
28
29 o Changed GCC to link with shared libc by default. This means that in
30 order to link with static libc one have to specify -static.
31 It also means that -Zmtd or -Zcrtdll is no longer required for linking
32 with shared libc and can be removed from all makescripts.
33
34 o Changed EMXOMFLD defaults to ilink from Visual Age for C++ v3.6.5 or
35 later (preferably later). The emxomfld usage output will instruct you
36 how how to use older linkers. For VAC308 and VAC365 linkers /dbgpack
37 is specified if debuginfo is to be generated.
38 Emxomf checks for EMXOMFLD_TYPE=link386 when choosing debug info level.
39
40 o Shipping three extra libc dlls:
41 libc02.dbg: Unstripped version of libc02.dll. This is identical
42 except from the presense of debug info.
43 libc02.prf: Linked together from profiled enabled libraries
44 using kProfiler.
45 libc02.elh: Standard libc but linked with an external eletrical
46 fence heap from kLibDbg.
47 These libc02.* dlls can be used instead of libc02.dll. kLibDbg and
48 kProfiler is available in separate zip files at same location as the
49 rest of the Innotek GCC suite. However these external tools are
50 provided as is.
51
52 o Distribution is splitted into several zips:
53 -core.zip: All you really need.
54 -dbg.zip: Map files, unstripped tools and libs, and libc02.elh.
55 -prf.zip: Profiling libraries and libc02.prf.
56 libc.zip: The runtime libraries. (included in core.)
57 The big zips is everything.
58
59 o I'm sure I've foregotten something this time....
60
61
62v3.2.2 Alpha 3:
63---------------
64
65 Primarily bugfixes.
66
67 o Changed code generator for floating point truncations (double to int
68 casts and such) so PM can freely mess up the fpu status.
69
70 o We were using the wrong float.h in two sense. We're now using the
71 correct one which includes all the PC defines and prototypes.
72
73 o Fixed a few issues with error defines and tcpip.
74 Note that some of the error defines have changed value in the process
75 so we could become compatible with the tcpip stack and FreeBSD.
76
77 o Corrected bugs in a number of headers.
78
79 o Added more OS/2 prototypes and imports. There is still work left on
80 the header part,
81
82 o Optimized emxomf debug info conversion.
83
84 o Wrapped bsdselect for BSD 4.4 header mode to implement bsdselect().
85
86 o .... what did we forget...
87
88
89v3.2.2 Alpha 2:
90---------------
91
92 A few bugfixes and a couple of new features.
93
94 o The TCP/IP headers and libraries scheme have been changed.
95 The default is the current OS/2 tcpip toolkit (BSD 4.4 based).
96 To target the older OS/2 tcpip stack (BSD 4.3 based) you must
97 define TCPV40HDRS before including any TCP/IP headers and make
98 sure usr/lib/tcpipv4 is searched before usr/lib (this is to get
99 the right libsocket). It is recommended to use the -D compiler
100 option for the define and either the LIBRARY_PATH or the -L
101 compiler/linker option for the library.
102
103 o There are a couple of new and updated based on FreeBSD 5.1.
104 sys\stdint.h and inttypes.h (and a few internal once) are new.
105 sys\types.h and unistd.h are the ones most heavily updated.
106 We're working on getting the headers and libc in a better shape
107 standardwise to easy compatability and portability.
108
109 o A infinite loop in emxomf has been fixed.
110
111 o Linker error on sopen() has been corrected.
112
113 o .... what did we forget...
114
115
116v3.2.2 Alpha 1:
117---------------
118
119 This is the first release from Innotek, and it contains the Innotek LIBC.
120 In addition to the new LIBC there is a number of other major changes:
121
122 o Name mangling in OMF mode have changed.
123 Until this release emxomf used to pretty much strip one leading '_'
124 from symbols when converting them to omf. This is now longer done
125 chiefly in order to correctly support mangling calling conventions
126 like __stdcall and __cdecl. This change have the following side
127 effects:
128 - _System and __cdecl no longer produces the same names and hence
129 all OS/2 API which are _System must be declared as _System in
130 order to link.
131 - Assembly code might need an extra underscore to work, or
132 perhaps change the prototypes to _System.
133 - Global variables are prepended and underscore, so mixing VAC and
134 GCC, or accessing globals from asm, take care.
135 (MSC v6.0 does this too, so it's not any uncommon practise.)
136
137 The OS/2 headers which are included are all updated to use _System.
138
139 o TCPIP headers are updated a quite a bit to match the toolkit ones
140 and to reflect the fact that the new libc does not a having common
141 handle space for files and sockets. These changes aren't 100%
142 completed yet, and usage probably will uncover some issues left in
143 there. Also for the programmer there is the following changes in
144 the apis provided:
145 - TCPV40HDRS are supported and should work like with the toolkit
146 headers. It will alias all functions to tcpip40_ editions
147 (using #defines) so we get the right imports thru -llibsocket.
148 - There is no support for sockets in select(). To do select on
149 sockets you will have to use bsdselect() or os2_select().
150 bsdselect() is only available for TCPV40HDRS. For
151 !defined(TCPV40HDRS) fd_set is in the emx/bsd format and not the
152 OS/2 tcpip v5.0 format.
153 - Socket IOCTLs are not supported by the ioctl() libc function
154 because of the separate handle space for sockets. For sockets
155 so_ioctl() and os2_ioctl() are used. os2_ioctl() is not available
156 when TCPV40HDRS is defined. According to the tcpref in v5.0
157 so_ioctl() only supports BSD ioctls.
158 - writev() and readv() also clashes with libc. For socket handles
159 use so_writev() and so_readv().
160
161 o The prefered OMF linker is now ilink. link386 will fail with an odd
162 error message if you tell gcc/g++ to make debug info. Set the
163 EMXOMFLD_LINKER environment variable to value ilink in order to use
164 ilink as OMF linker.
165 It likely that we will change the default OMF linker to ilink in an
166 later version of the GCC suite.
167
168 o .... what did we forget...
Note: See TracBrowser for help on using the repository browser.