Commit graph

12 commits

Author SHA1 Message Date
Mark Jansen c1464a4030
[SPEC2DEF] Omit skipped exports from ordinal numbering.
CORE-16769
2020-03-31 22:49:44 +02:00
Timo Kreuzer 6e80f4d037 [SPEC2DEF] Set ordinals explicitly in export def file
The reason is that dlltool orders the exports differently than MSVC builds (MSVC orders the exports by symbol name, rather than by export name), so we rely on sorting in the spec file, which was only respected, when ordinals were put into the def file.
On MSVC builds it is left to the linker to determine the correct order, which helps to get the differences between architectures right (different symbol decoration, difference between order for functions like NtLoadKey vs NtLoadKey2, which results from the stdcall decoration on x86, which is missing on other architectures.

TODO: To correctly handle non-x86 architectures with GCC builds, spec2def would need to reorder the export list based on symbol names, which would work for C functions, by taking the calling convention into account, but would require an extra c++-stdcall calling convention to be added to know the corresponding symbol starts with "?".
2020-01-03 13:00:45 +01:00
Timo Kreuzer e8ab2736e7 [SPEC2DEF] Refactor to avoid parsing multiple times 2019-09-15 14:12:42 +02:00
Timo Kreuzer 9cff65970f [SPEC2DEF] Fix decorated exports on non-x86 2019-09-15 14:12:42 +02:00
Timo Kreuzer 824e08c710 [SPEC2DEF] Handle auto-naming of "@()" functions during output
This allows to do the parsing and output separately, since the generated name is no longer stored on the stack during parsing.
2019-09-15 14:12:42 +02:00
Timo Kreuzer 80c0b083d8 [SPEC2DEF] Use const properly 2019-09-15 12:06:47 +02:00
Timo Kreuzer c95b5e6f9b [SPEC2DEF] Improve error output 2019-09-15 12:06:47 +02:00
Hermès Bélusca-Maïto 2becb000c8
[SPEC2DEF] Check whether OLE-specific exports do not have assigned ordinals, as they should be.
The check is done at the same time as when we check also that these
exports are marked PRIVATE or not.

This permits us to check for the same conditions as MS' LINK.EXE, but
here on GCC builds as well.

See the following pages for more details:
https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-warning-lnk4104
https://docs.microsoft.com/en-us/cpp/error-messages/tool-errors/linker-tools-warning-lnk4222

In this last page (LNK4222), the specified list of exports is incomplete.
Manual tests showed that the very same list as for LNK4104 is checked.
2019-07-28 15:50:30 +02:00
Timo Kreuzer f47f45dbdd
[TOOLS] Fix/suppress all MSVC/x64 warnings (#1525) 2019-04-28 23:21:48 +02:00
Mark Jansen d564c7c8e3
[SPEC2DEF] Fix support for different OS versions. 2018-10-12 19:30:35 +02:00
Timo Kreuzer 01df9a410c [SPEC2DEF] Implement support for different OS versions 2018-04-21 18:31:27 +02:00
Colin Finck c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00