source: trunk/doc/ReleaseNotes.os2@ 1217

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

* empty log message *

  • Property cvs2svn:cvs-rev set to 1.13
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 10.6 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
10
11v3.2.2 Beta 4:
12--------------
13
14 New features and fixes:
15
16 o Workaround for DosSetFileLocksL() on non JFS volumes.
17
18 o Fixed a bad record length problem in emxomf.
19
20 o Made waitpid() respect the WNOHANG flag.
21
22 o Added some deadlock checking/termination checks to semphores.
23
24 o Changed the glob() and globfree() implemenation with a port of
25 the FreeBSD 5.1 implemenation.
26
27 o Added macros to os2emx.h for preserving FPU control word and
28 applied these to certing read and write operations in LIBC.
29
30 o Workaround for bad FIL_STANDARDL buffer handling in os2krnl.
31
32 o Changed so_ioctl() to os2_ioctl() to match toolkit better.
33
34 o Filehandle rewrite. Files, pipes and sockets now share the same
35 handle space.
36
37 o Increased default stream buffer size to 2 pages.
38
39 o Added some missing #defines to ulsitem.h
40
41 o Created nerrno.h for toolkit compatability.
42
43 o Changed time_t to be signed as in BSD & linux.
44 (Negative values means date/time before epoc.)
45
46 o Changed to FreeBSD implementation of difftime()
47
48 o Added time related _r functions:
49
50
51v3.2.2 Beta 3 Fix 1 (private build):
52------------------------------------
53
54 Fixes to LIBC:
55
56 o Crash if calloc was called before main().
57
58 o TZ parsing of timezones such as PST8EDT.
59
60 o sigsetjmp() and siglongjmp() visibility.
61
62
63v3.2.2 Beta 3:
64--------------
65
66 A few new features and fixes.
67
68 o Fixed a bunch of debug info problems.
69
70 o Added large file support.
71
72 o Enabled high memory support for LIBC. Two new options to GCC: -Zhigh-mem
73 and -Zhigh-low. If the program is to be enabled for high memory use, specify
74 -Zhigh-mem when linking.
75
76 Note that socket is not high memory enabled yet.
77
78 o Made LIBC preserve the FS selector.
79
80 o Added random() and *rand48() from BSD.
81
82 o Fixed crash with link386 and unresolved symbols.
83
84
85v3.2.2 Beta 2:
86--------------
87
88 A few bugfixes and a some new features (as usual).
89
90 o Added file locking support to LIBC.
91
92 o Fixed _System and _Optlink bugs and made _Optlink support floating
93 point argument passing in registers.
94
95 o Header updates related to limits and file locking primarily.
96
97 o Timezone fixes.
98
99 o Fixed some CRT init trouble in regards to getenv and putenv.
100
101 o And some other minor stuff..
102
103
104v3.2.2 Beta 1:
105--------------
106
107 A few bugfixes and a some new features.
108
109 o Locale support in libc.
110
111 o Implemented a different approach to OMF and weak symbols. This new hack
112 performs pre-linking before invoking the OMF linker generating new .def
113 files if needed and an extra object file with aliases to resolve the weak
114 symbols correctly.
115 The old approach will be used used when GCC_WEAKSYMS is present in the
116 environment.
117
118 Please note that due to a bug in BFD, weak symbols don't work 100%
119 correctly. This will be addressed as soon as we have performed the switch
120 to a more recent version of binutils.
121
122 o A couple of new functions in libc, and a few corrections to existing
123 in respect to namespaces.
124
125 o Addressed issues with calling conventions. We now detect incompatible
126 calling conventions, emitting warnings and errors where appropriate.
127
128 o _Optlink is much better, but there are still some issues left. Passing
129 prototyped floating point parameters to _Optlink doesn't work. Mixing
130 of parameters which go into registers (eax, edx, ecx) and parameters
131 which don't - void foo(int eax, struct sss s, int edx) - doesn't work.
132 All these issues are being addressed and are expected to be fixed in
133 the next build.
134
135 o Changed GCC to link with shared libc by default. This means that in
136 order to link with the static libc one has to specify -static.
137 It also means that -Zmtd or -Zcrtdll are no longer required for linking
138 with shared libc and can be removed from all makescripts.
139
140 o Changed EMXOMFLD defaults to ilink from Visual Age for C++ v3.6.5 or
141 later (preferably later). The emxomfld usage output will instruct you
142 on how to use older linkers. For VAC308 and VAC365 linkers /dbgpack
143 is specified if debuginfo is to be generated.
144 Emxomf checks for EMXOMFLD_TYPE=link386 when choosing debug info level.
145
146 o Shipping three extra libc dlls:
147 libc02.dbg: Unstripped version of libc02.dll. This is identical
148 except from the presense of debug info.
149 libc02.prf: Linked together from profiled enabled libraries
150 using kProfiler.
151 libc02.elh: Standard libc but linked with an external eletrical
152 fence heap from kLibDbg.
153 These libc02.* dlls can be used instead of libc02.dll. kLibDbg and
154 kProfiler is available in separate zip files at same location as the
155 rest of the Innotek GCC suite. However these external tools are
156 provided as is. (I might actually not find time to put them out yet.)
157
158 o Distribution is splitted into several zips:
159 -core.zip: All you really need.
160 -dbg.zip: Map files, unstripped tools and libs, and libc02.elh.
161 -prf.zip: Profiling libraries and libc02.prf.
162 libc.zip: The runtime libraries. (included in core.)
163 The big zip is everything.
164
165v3.2.2 Alpha 3:
166---------------
167
168 Primarily bugfixes.
169
170 o Changed code generator for floating point truncations (double to int
171 casts and such) so PM can freely mess up the fpu status.
172
173 o We were using the wrong float.h in two sense. We're now using the
174 correct one which includes all the PC defines and prototypes.
175
176 o Fixed a few issues with error defines and tcpip.
177 Note that some of the error defines have changed value in the process
178 so we could become compatible with the tcpip stack and FreeBSD.
179
180 o Corrected bugs in a number of headers.
181
182 o Added more OS/2 prototypes and imports. There is still work left on
183 the header part,
184
185 o Optimized emxomf debug info conversion.
186
187 o Wrapped bsdselect for BSD 4.4 header mode to implement bsdselect().
188
189 o .... what did we forget...
190
191
192v3.2.2 Alpha 2:
193---------------
194
195 A few bugfixes and a couple of new features.
196
197 o The TCP/IP headers and libraries scheme have been changed.
198 The default is the current OS/2 tcpip toolkit (BSD 4.4 based).
199 To target the older OS/2 tcpip stack (BSD 4.3 based) you must
200 define TCPV40HDRS before including any TCP/IP headers and make
201 sure usr/lib/tcpipv4 is searched before usr/lib (this is to get
202 the right libsocket). It is recommended to use the -D compiler
203 option for the define and either the LIBRARY_PATH or the -L
204 compiler/linker option for the library.
205
206 o There are a couple of new and updated based on FreeBSD 5.1.
207 sys\stdint.h and inttypes.h (and a few internal once) are new.
208 sys\types.h and unistd.h are the ones most heavily updated.
209 We're working on getting the headers and libc in a better shape
210 standardwise to easy compatability and portability.
211
212 o A infinite loop in emxomf has been fixed.
213
214 o Linker error on sopen() has been corrected.
215
216 o .... what did we forget...
217
218
219v3.2.2 Alpha 1:
220---------------
221
222 This is the first release from Innotek, and it contains the Innotek LIBC.
223 In addition to the new LIBC there is a number of other major changes:
224
225 o Name mangling in OMF mode have changed.
226 Until this release emxomf used to pretty much strip one leading '_'
227 from symbols when converting them to omf. This is now longer done
228 chiefly in order to correctly support mangling calling conventions
229 like __stdcall and __cdecl. This change have the following side
230 effects:
231 - _System and __cdecl no longer produces the same names and hence
232 all OS/2 API which are _System must be declared as _System in
233 order to link.
234 - Assembly code might need an extra underscore to work, or
235 perhaps change the prototypes to _System.
236 - Global variables are prepended and underscore, so mixing VAC and
237 GCC, or accessing globals from asm, take care.
238 (MSC v6.0 does this too, so it's not any uncommon practise.)
239
240 The OS/2 headers which are included are all updated to use _System.
241
242 o TCPIP headers are updated a quite a bit to match the toolkit ones
243 and to reflect the fact that the new libc does not a having common
244 handle space for files and sockets. These changes aren't 100%
245 completed yet, and usage probably will uncover some issues left in
246 there. Also for the programmer there is the following changes in
247 the apis provided:
248 - TCPV40HDRS are supported and should work like with the toolkit
249 headers. It will alias all functions to tcpip40_ editions
250 (using #defines) so we get the right imports thru -llibsocket.
251 - There is no support for sockets in select(). To do select on
252 sockets you will have to use bsdselect() or os2_select().
253 bsdselect() is only available for TCPV40HDRS. For
254 !defined(TCPV40HDRS) fd_set is in the emx/bsd format and not the
255 OS/2 tcpip v5.0 format.
256 - Socket IOCTLs are not supported by the ioctl() libc function
257 because of the separate handle space for sockets. For sockets
258 so_ioctl() and os2_ioctl() are used. os2_ioctl() is not available
259 when TCPV40HDRS is defined. According to the tcpref in v5.0
260 so_ioctl() only supports BSD ioctls.
261 - writev() and readv() also clashes with libc. For socket handles
262 use so_writev() and so_readv().
263
264 o The prefered OMF linker is now ilink. link386 will fail with an odd
265 error message if you tell gcc/g++ to make debug info. Set the
266 EMXOMFLD_LINKER environment variable to value ilink in order to use
267 ilink as OMF linker.
268 It likely that we will change the default OMF linker to ilink in an
269 later version of the GCC suite.
270
271 o .... what did we forget...
Note: See TracBrowser for help on using the repository browser.