-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathCHANGES
262 lines (219 loc) · 11.6 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
Next version
- GPR#127: Recognise hyphens in option names in the COFF .drectve section. Fixes #126 (Reza Barazesh)
- GPR#136: Fix parallel access crashes and misbehavior (David Allsopp, Jan Midtgaard, Antonin Décimo)
- GPR#140: Fixes #29. Support relocation kind 0003 (IMAGE_REL_AMD64_ADDR32NB) and
IMAGE_REL_I386_DIR32NB. Extend relative types to IMAGE_REL_AMD64_REL32_5. (Jonah Beckford)
- GPR#150: Fix stack reserve incorrectly reading from the start of the PE
executable instead of the COFF file header. Fix reading the file address of
new exe header.
(Antonin Décimo, review by David Allsopp and Nicolás Ojeda Bär)
Version 0.43
- GPR#108: Add -lgcc_s to Cygwin's link libraries, upstreaming a patch from the
Cygwin flexdll package (David Allsopp)
- GPR#112: Put error global variables into thread-local storage (Samuel Hym, Nicolás Ojeda Bär)
- GPR#114: Support for /alternatename directive. Fixes GPR#113 (Jonah Beckford)
- GPR#116: Remove Cygwin32 (David Allsopp)
- GPR#117: Fix handling of object names of length > 16 in archive files. Fixes GPR#101 (Nicolás Ojeda Bär)
- GPR#118: Defer the detection of cygpath to the first time it's actually
required, reducing the overall number of calls. Further, detect whether
mingw-w64 gcc's library path requires cygpath, which further reduces the
calls when using Cygwin's build of mingw-w64 as the search path is then
converted only once. In passing, this trivially adds support for MSYS2's
mingw-w64 compilers, fixing GPR#97. (David Allsopp)
Version 0.42
- GPR#106: Support -l: syntax, to allow static linking of specific libraries (David Allsopp)
- GPR#103: Delete objects from C files compiled by flexlink (David Allsopp, report by Xavier Leroy)
- GPR#85: Split multiple arguments passed with a single -Wl (David Allsopp)
Version 0.41
- GPR#98: Eliminate Warning 6 compiling coff.ml (David Allsopp)
- GPR#99: Harden version number parsing from ocamlopt -version (David Allsopp)
Version 0.40
- GPR#65: Support for compiling objects with /bigobj (Extended COFF) (Dmitry Bely)
- GPR#80: Silence MSVC filenames for long commands as well as short ones (David Allsopp)
- GPR#94: Fix parsing of COFF archives to ignore <XFGHASH> headers, allowing the Windows 11 SDK to be used. (David Allsopp)
- GPR#96: Suppress volatile metadata on versions of MSVC which support it (David Allsopp)
- GPR#88: Correctly handle relative search paths coming from gcc -print-search-dirs (Boris Yakobowski)
Version 0.39
- GPR#89: Stop passing --image-base on Cygwin64 - Cygwin64 DLLs should load at
0x4:00000000-0x6:00000000 if not rebased or 0x2:00000000-0x4:00000000 if rebased. (David Allsopp)
- GPR#90: Fix passing NULL to flexdll_dlopen on non-Cygwin builds (David Allsopp)
Version 0.38
- GPR#58: Bug fix: fix -custom-crt regression (Dmitry Bely)
- GPR#61: Ignore x64 debug relocs (Dmitry Bely)
- GPR#49: Adding support for 64bit GNAT compiler (Johannes Kanig)
- GPR#64: Fix problem with setting page permission during relocation (report
by Dmitry Bely)
- GPR#48: Enable linking of C++ object files for mingw ports (David Allsopp)
- GPR#81, GPR#84: use msvs-detect (from metastack/msvs-tools) for detecting Windows SDK
or Visual Studio (David Allsopp)
- GPR#78: Eliminate deprecation warnings on OCaml 4.08+ (Bernhard Schommer)
- GPR#68: fix incorrect calculation of maximum path length (Bryan Phelps and David Allsopp)
- GPR#3: Recognise data symbols in import libraries (Andreas Hauptmann)
- GPR#73: Pass GCC-style linker options (-Wl,...) onto the the linker (Michael Soegtrop)
Version 0.37
- Bug fix: the IMAGE_SCN_LNK_NRELOC_OVFL section flag was not propertly reset when
the number of relocations was reduced enough to fit in the 16-bit field,
causing https://caml.inria.fr/mantis/view.php?id=7603
- Support for passing argument through external files (-arg/-arg0)
(Bernhard Schommer)
- Fix encoding of high surrogate for U+10000-U+10FFFF in UTF-16 response files (David Allsopp)
Version 0.36
- Add Unicode support (patch by Nicolás Ojeda Bär)
- Workaround apparent bug in VS 2017.3 link (patch by David Allsopp)
- Additional heuristic for -lfoo on MSVC: try libfoo.lib but then try foo.lib (David Allsopp)
Version 0.35
- Fixes for clang (patch by Roven Gabriel)
- Improve autodetection of WinSDK paths (patch by David Allsopp)
- Add MSVC_DETECT Makefile variable which overrides all C Compiler detection logic when 0.
- Add checkenv script which determines if the environment is sound specifying MSVC_DETECT=0
- Improve performance of -builtin
- Better support for @response files, which can contain options in
addition to filenames (patch by Bernhard Schommer)
- Ignore "-g" (passed by OCaml when building ocamlrund) (patch by whitequark)
- Uses gcc -print-search-dirs instead of gcc -print-sysroot when figuring out the default
library search paths (patch by whitequark)
- Modernize code for OCaml 4.03 (patch for compatibility layers for earlier versions by David Allsopp)
- Better support for long command line when calling the toolchain linker
- Do not perform relocation from the DLL entry point when the DLL is loaded in "not for
execution mode" (http://caml.inria.fr/mantis/view.php?id=7268)
- Fix -stack for Cygwin (when the resulting executable is called XXX.exe, not XXX)
Version 0.34
- New option -norelrelocs to check that no relative flexdll relocations are created (this ensures that the generated DLLs can be loaded at any address),
- New option -base to specify the image base address (msvc64 only).
- Always generate a table for used __flimp_XXX symbols (even when X is defined in the generated image).
- Fix bug with empty sections in "-builtin" mode
- -builtin: Generate proper ADDR64 instead of HIGHLOW (32-bit) relocations in the dll
Version 0.33
- Turn 'too far' messages into proper errors, avoid terminating the process
Version 0.31
- Support for "@respfiles" arguments (for long command lines).
Used to be implemented by OCaml runtime system.
- Fix bug when relocation counter > 0xffff
- Fix bug with REL32 relocations on non-zero base in DLLs
- Fix bug with empty .a files
Version 0.30
- Allow the internal linker to create large DLLs (>= 16Mb)
Version 0.29
- use "cygpath -S", not "cygpath -v" which no longer exists
Version 0.28
- new option '-stack' to set the stack reserve
- new option '-patch' (to be used in conjunction with -stack and -o to
patch the an existing image)
Version 0.27
- support for mingw64; the mingw toolcgain now relies on the 32-bit version of mingw64;
the old "gcc -mno-cygwin" is no longer supporte.
Patch from Antointe Mine:
http://caml.inria.fr/mantis/view.php?id=5179
- fix directive parsing bug (http://caml.inria.fr/mantis/view.php?id=5339)
- support for new file layout for cygwin's version of mingw
- support for objects with more than 65536 relocations
Version 0.26
- fix for Win64 (use a PE32+ optional header, and a lower base address)
- use _putenv_s instead of putenv for FLEXDLL_RELOCATE (thanks to Yasutaka Atarashi)
- use /dev/null instead of NUL for Cygwin (thanks to Yasutaka Atarashi)
Version 0.25
- fix a bug with archive member names that contain a slash
Version 0.24
- add new toolchain msvc64; replace the old combination "-chain msvc -x64" (-x64 has been removed)
- change build system to create a single binary version of flexdll that includes both the 32-bit and 64-bit
version for MSVC's support objects
- switch to Visual Studio 2008 (to compile the binary distribution and for the default manifests)
Version 0.23
- ignore -D and -U flags (OCaml PR #4979)
- change limit before using a response file (OCaml PR #4645)
Version 0.22
- fix a bug when emitting IMAGE_COMDAT_SELECT_ASSOCIATIVE symbols
Version 0.21
- always use bash to call external commands under Cygwin (to make it work
when gcc is a symlink)
Version 0.20
- (build) Avoid the use of the rc tool
- (dist) add version.rc to the source release
- Allow "/link XXX" as an equivalent to "-link XXX" (or "/linkXXX")
- Use an explicit .def file under MinGW and Cygwin to force the two symbols reloctbl and symtbl to be exported
- Fixes for x64
- Allow to write sections with more than 0xffff relocations
- Create a Win32 installer
Version 0.19
- fix bug introduced in version 0.17 about virtual addresses for the builtin
linker mode
Version 0.18
- support for .sxdata section
Version 0.17
- patch from Lars Nilsson to ease compilation of flexdll.h with C++
- prefer using XXX.dll.a (import lib) over XXX.a (static lib)
- fix bug introduced in commit 136 about virtual addresses
Version 0.16
- New -noexport command line option to force an empty symbol table
Version 0.15, released on 2009-02-25
- protects calls to cygpath with long command lines (patch from
Matthieu Dubuget)
- always pass msvcrt.lib to link.exe
Version 0.14, released on 2008-28-01
- mingw port: put /lib/mingw before /lib
- support for a built-in linker
Version 0.13, released on 2008-11-20
- another technique to work around the lack of response file for gcc:
put the command line in an external bash script and apply bash to it
(relies on the fact that Cygwin programs can call Cygwin programs
with long command lines); this idea is from Xavier Leroy
- the -subsystem switch is now supported for the mingw toolchain
Version 0.12, released on 2008-11-17
- gcc 3 does not support response files; to support longer command lines, we use a
custom replacement for cmd.exe (which restricts the length of the command line
to 8kB whereas Windows supports 32kB)
- patch for Richard Jones: do not find directories when looking for a file
Version 0.11, released on 2008-11-10
- compiled with mingw port so as to depend on msvcrt.dll, not msvcr80.dll
- experimental support for directly calling "ld" instead of "gcc"
- by default, reexport symbols imported from an import library
- quote the response file argument
- use slashes instead of backslashed in response file (needed for mingw's ld)
- by default, use the real manifest
Version 0.10, released on 2008-10-21
- use "gcc -mno-cygwin -print-libgcc-file-name" to get the standard
library directory for mingw
- lower the length threshold to use a diversion file when calling the
linker with many arguments
Version 0.9, released on 2008-09-18
- fix bug with COFF symbols for sections (with more than 1 auxilliary block)
- ignore debug relocations on x86 (of kind 0x000a, 0x000b)
Version 0.8, released on 2008-03-10
- new -no-merge-manifest
Version 0.7, released on 2008-03-09
- allow .dll.a as automatic extension for libraries
- minor bug fixes
Version 0.6, released on 2008-02-11
- support COMDAT section symbols
- support mixed libraries (import library + regular objects)
- optimizations (do not rewrite library objects when not needed,
pass the lib to the linker)
- new -real-manifest, replace -default-manifest
- new -implib option
- new -outdef option
- new zlib/libpng license
Version 0.5, released on 2008-01-11
- new -default-manifest option (always on, currently)
- use a temp file name for getting the output of commands (allow
several instances of flexlink to run in parallel)
Version 0.4, released on 2008-01-02
- Code cleanup
- FLEXLINKFLAGS env var to pass extra arguments
Version 0.3, released on 2007-11-20
- Make it work under x86_64
- New -subsystem option (currently for MSVC chain only)
- New -explain option
- New -link option
Version 0.2, released on 2007-11-06
- New -maindll option (to build a DLL that contains the "main program"
from FlexDLL's point of view)
- Can now explicitly enable/disable the use of cygpath (on by default
only for Cygwin)
- New -L xxx (or -Lxxx) option
- New -where option
- FLEXDIR environment variable (where to look for FlexDLL's .obj files)
Version 0.1, released on 2007-06-14
- Initial release
<!-- Local Variables: -->
<!-- coding: utf-8 -->
<!-- End: -->