source: trunk/doc/ReleaseNotes.os2@ 834

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

beta3

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