1 2015-09-07 Keith Marshall <keithmarshall@users.sourceforge.net>
3 Avoid uint32_t difference overflow in 64-bit pointer adjustment.
5 * pexports.c (rva_to_ptr): Do not compute uint32_t offset differences;
6 apply each offset adjustment individually to the base pointer.
8 * pexports.h: Add '#pragma ms_struct on', to keep structures aligned
11 2015-09-07 Keith Marshall <keithmarshall@users.sourceforge.net>
13 Eliminate Microsoft inspired obfuscated typedef insanity.
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.
27 2013-05-30 Keith Marshall <keithmarshall@users.sourceforge.net>
29 Prepare, tag, and publish 0.46 release.
31 * README: Add release notes.
32 * All files: Tagged "v0_46" for release.
34 2013-05-30 Keith Marshall <keithmarshall@users.sourceforge.net>
36 Assemble licence and documentation tarballs for distribution.
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.
43 2013-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
45 Force a remake, on package version updates.
47 * Makefile.in (pexports.OBJEXT): Make it depend on Makefile; this
48 indirectly captures changes, when configure.ac is updated.
50 2013-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
52 Update program identification, via configuration process.
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.
60 * pexports.h (VER_MAJOR, VER_MINOR): Obsolete macros; delete them.
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...
68 2013-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
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.
76 2013-05-29 Keith Marshall <keithmarshall@users.sourceforge.net>
78 Integrate build-aux utilities as a submodule.
80 * .gitmodules .hgsub .hgsubstate: New files.
82 2013-05-28 Keith Marshall <keithmarshall@users.sourceforge.net>
84 Designate files which mercurial should not track.
86 * .hgignore: New file.
88 2013-05-28 Keith Marshall <keithmarshall@users.sourceforge.net>
90 Correct some obfuscated typedef portability issues.
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.
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.
111 2011-09-14 Daniel Collins <solemnwarning@solemnwarning.net>
113 Avoid segmentation faults in forwarder function checks.
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.
123 2009-09-15 Charles Wilson <cwilso11@users.sourceforge.net>
125 Slight build improvements.
128 * Makefile: Rewrite dist rule to create a .tar.lzma instead
129 of a .zip (and don't create a tarbomb).
131 2009-09-15 Charles Wilson <cwilso11@users.sourceforge.net>
133 Package 0.44-1-mingw32 fixes.
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.
139 2008-08-31 Tor Lillqvist <tml@novell.com>
141 Release 0.44. Add support for 64-bit executables.
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
154 * pe.h: Not needed, removed.
155 * hparse.h: Remove generated file.
156 * Makefile.am: Removed.
158 2002-11-08 Luke Dunstan <infidel@users.sourceforge.net>
160 * pexports.c (dump_exports): fix exports incorrectly
161 determined to be forwarders.
163 1999-04-02 Paul Sokolovsky <Paul.Sokolovsky@technologist.com>
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
170 1998-11-07 Anders Norlander <kv98anr@cs.umu.se>
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.
177 1998-11-05 Anders Norlander <kv98anr@cs.umu.se>
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
189 1998-10-26 Anders Norlander <anorland@hem2.passagen.se>
191 * New files: str_tree.c str_tree.h: implements
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
201 1998-10-21 Anders Norlander <anorland@hem2.passagen.se>
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"
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
212 * pexports.c: in dump_exports: don't print extra white
213 space if ordinals are not supposed to be printed.