OSDN Git Service

59ea8e508f4b3b5177472657b930c6ac86e5f932
[mingw/pexports.git] / ChangeLog
1 2015-09-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
2
3         Avoid uint32_t difference overflow in 64-bit pointer adjustment.
4
5         * pexports.c (rva_to_ptr): Do not compute uint32_t offset differences;
6         apply each offset adjustment individually to the base pointer.
7
8         * pexports.h: Add '#pragma ms_struct on', to keep structures aligned
9         per MSVC convention.
10
11 2015-09-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
12
13         Eliminate Microsoft inspired obfuscated typedef insanity.
14
15         * pexports.c pexports.h (BYTE, WORD, DWORD): Delete typedefs;
16         respectively replace all corresponding usage instances with...
17         (uint8_t, uint16_t, uint32_t): ...these ISO-C standard types.
18         (PVOID, PIMAGE_DOS_HEADER, PIMAGE_FILE_HEADER, PIMAGE_SECTION_HEADER)
19         (PIMAGE_DATA_DIRECTORY, PIMAGE_EXPORT_DIRECTORY, PIMAGE_NT_HEADERS32)
20         (PIMAGE_NT_HEADERS64, PIMAGE_OPTIONAL_HEADER32)
21         (PIMAGE_OPTIONAL_HEADER64): Delete these non-standard style pointer
22         reference typedefs; replace with conventional pointer references to
23         the underlying data type; where these are structural types, delete
24         initial underscores from the corresponding structure tag names.
25         (HMODULE): Likewise; replace with pointer to void.
26
27 2013-05-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
28
29         Prepare, tag, and publish 0.46 release.
30
31         * README: Add release notes.
32         * All files: Tagged "v0_46" for release.
33
34 2013-05-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
35
36         Assemble licence and documentation tarballs for distribution.
37
38         * Makefile.in (dist): Add dependencies on...
39         (licdist, docdist): ...these new build goals; specify them based on...
40         (LIC_DISTFILES, DOC_DISTFILES): ...these new macros; define them as
41         the respective list of files to include in each tarball.
42
43 2013-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
44
45         Force a remake, on package version updates.
46
47         * Makefile.in (pexports.OBJEXT): Make it depend on Makefile; this
48         indirectly captures changes, when configure.ac is updated.
49
50 2013-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
51
52         Update program identification, via configuration process.
53
54         * pexports.c (main): Update identification text; remove references...
55         (VER_MAJOR, VER_MINOR): ...to these; combine them by substituting...
56         (PACKAGE_VERSION_STRING): ...this new macro; also amend instructions
57         for reporting bugs, as directed at URL identified by...
58         (PACKAGE_BUG_REPORT): ...this additional new macro.
59
60         * pexports.h (VER_MAJOR, VER_MINOR): Obsolete macros; delete them.
61
62         * Makefile.in (PACKAGE_DEFS): New macro; defined in terms of these...
63         (PACKAGE_VERSION_STRING, PACKAGE_BUG_REPORT_URL, PACKAGE_BUG_REPORT):
64         ...these additional new macros, defined by AC_SUBST from configure.ac,
65         and subsequently propagated to pexports.c, as an addendum to...
66         (CDEPFLAGS): ...this.
67
68 2013-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
69
70         Autoconfiscate.
71
72         * configure.ac Makefile.in: New files.
73         * Makefile: Now auto-generated at configure time; remove it.
74         * .hgignore: Add configure, Makefile, autom4te.cache and build dir.
75
76 2013-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
77
78         Integrate build-aux utilities as a submodule.
79
80         * .gitmodules .hgsub .hgsubstate: New files.
81
82 2013-05-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
83
84         Designate files which mercurial should not track.
85
86         * .hgignore: New file.
87
88 2013-05-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
89
90         Correct some obfuscated typedef portability issues.
91
92         * pexports.c: Include inttypes.h; it permits use of...
93         (PRIdPTR): ...this ISO-C99 standard macro, in preference to...
94         (INT_PTR_FORMAT): ...this non-standard contrivance; similarly...
95         (intptr_t): ...substitute this ISO-C99 standard typedef...
96         (INT_PTR): ...for this non-standard type.
97
98         * pexports.h: Include stdint.h; typedef...
99         (BYTE): ...this, as explicitly equivalent to uint8_t.
100         (WORD): ...this, as explicitly equivalent to uint16_t.
101         (DWORD): ...this, as explicitly equivalent to uint32_t.
102         (INT_PTR, INT_PTR_FORMAT): No longer required; delete them.
103         (ULONGLONG): Explicitly typedef as equivalent to uint64_t; although
104         'unsigned long long' seems a better fit, our present usage requires
105         the explicit 64-bit association, and use of this standard type allows
106         us to eliminate all references to Microsoft's non-standard __int64.
107         (LONG): Explicitly typedef as equivalent to int32_t; technically, this
108         is incorrect, but misuse elsewhere requires the explicit 32-bit type,
109         which is not guaranteed by ISO-C99's standard 'long' type.
110
111 2011-09-14  Daniel Collins  <solemnwarning@solemnwarning.net>
112
113         Avoid segmentation faults in forwarder function checks.
114
115         * pexports.h (dump_exports): Adjust prototype to accommodate new
116         'exports_size' argument; this is to be assigned and passed from...
117         * pexports.c (main): ...here; assigned value is determined from the
118         export table size recorded in the PE file image, whence passed to...
119         (dump_exports): ...here; it is used to avoid crashing or corruption
120         when the export table isn't at the end of its section.  Also check
121         for, and filter out duplicated symbol reports.
122
123 2009-09-15  Charles Wilson  <cwilso11@users.sourceforge.net>
124
125         Slight build improvements.
126
127         * README: Update.
128         * Makefile: Rewrite dist rule to create a .tar.lzma instead
129         of a .zip (and don't create a tarbomb). 
130
131 2009-09-15  Charles Wilson  <cwilso11@users.sourceforge.net>
132
133         Package 0.44-1-mingw32 fixes.
134
135         * pexports.c (main): Fix typo in usage statement.
136         * pexports.h: Ensure ULONGLONG is defined.
137         * Makefile: Force use of flex and bison, not lex and yacc.
138
139 2008-08-31  Tor Lillqvist  <tml@novell.com>
140
141         Release 0.44. Add support for 64-bit executables.
142
143         * hlex.l
144         * hparse.y
145         * pexports.h
146         * pexports.c
147         * str_tree.h
148         * str_tree.c: Handle also 64-bit executables. Make it work also if
149         built as 64-bit code. Remove all gcc -Wall warnings. Make it
150         compilable also with MSVC. Disable Wow64 file system redirection
151         when running as a 32-bit process on 64-bit Windows. Bump version
152         to 0.44.
153         * Makefile: New.
154         * pe.h: Not needed, removed.
155         * hparse.h: Remove generated file.
156         * Makefile.am: Removed.
157
158 2002-11-08  Luke Dunstan  <infidel@users.sourceforge.net>
159
160         * pexports.c (dump_exports): fix exports incorrectly
161         determined to be forwarders.
162
163 1999-04-02  Paul Sokolovsky  <Paul.Sokolovsky@technologist.com>
164
165         * pexports.c: now distinguishes data/non-data symbols,
166         depending on type of section symbol in
167         * pexports.c: in verbose mode prints section name for symbol
168         * pexports.c: file offsets are now in hex
169
170 1998-11-07  Anders Norlander  <kv98anr@cs.umu.se>
171
172         * hparse.y: types and parameters are now recognized as
173         a series of tokens, which means that keywords like const
174         struct and so on are not recognized as such, allowing any
175         kind of parameter, including function pointers.
176
177 1998-11-05  Anders Norlander  <kv98anr@cs.umu.se>
178
179         * hlex.l: removed all tokens except ID, CONST and VOLATILE
180         * hparse.y: Added INC_ARGS macro to increment arg_size only if
181         new flag inc_flag is set
182         * hparse.y: Added function_pointer and function_pointer_name rules
183         * hparse.y: Function attributes are now handled as list of ID's
184         * pexports.h: Incremented VER_MINOR
185         * pexports.c: Print name of file if a header is not found
186         * pexports.c: Separated printing to function dump_symbol
187         * pexports.c: Fixed handling of forwarded exports
188
189 1998-10-26  Anders Norlander  <anorland@hem2.passagen.se>
190
191         * New files: str_tree.c str_tree.h: implements
192         a symbol tree.
193         * pexports.c: changed symbol handling to use str_tree,
194         add_function_prot removed.
195         * pexports.h: removed add_function_prot prototype
196         * hlex.l: removed unnecessary code (count, CONSTANT, STRING)
197         * hlex.l: added ATTRIBUTE token.
198         * hparse.y: completely rewritten. *Much* improved parser.
199         * pexports.h: changed VER_MINOR to 3
200
201 1998-10-21  Anders Norlander  <anorland@hem2.passagen.se>
202
203         * pexports.c: removed include_path structure and replaced
204         it with a generic string list str_list.
205         * pexports.c: preprocessor now defaults to "gcc -E -xc-header"
206         instead of "cpp".
207         * pexports.h: incremented minor version VER_MINOR to 2
208         * pexports.c: headers are now parsed after all paramaters
209         command line options have been parsed.
210         * hparse.y: fixed problem with unnamed parameters that
211         are pointers.
212         * pexports.c: in dump_exports: don't print extra white
213         space if ordinals are not supposed to be printed.