mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 02:36:13 +00:00
A free Windows-compatible Operating System - mirrored from GitHub
![]() Alexandre Julliard <julliard@winehq.org> - Generate 16-bit spec files as assembly code too. - Output the resource data in assembly too. - Factor out a couple of useful helper functions. - Store RVAs instead of pointers wherever possible in the generated NT header and directories. - Output constant strings in a more appropriate section than .text. - Make sure that values of absolute symbols fit in 16 bits. - Implemented import thunks for x86-64. - Generate stub functions directly in assembly. - Moved stub function generation to import.c. Added a get_stub_name function to ensure naming consistency. - Now that everything is done in assembly in the spec file, directly generate a .s file to bypass gcc inefficiency with large data structures. - Added support for 64-bit format NT header and export/import tables. - Now that we have to be able to run the assembler from winebuild, added an option to generate a .spec.o file in a single step. Added --save-temps and --verbose options for easier debugging. - Added an entry point routine for native drivers. - Added a bit of framework for future x86_64 support. - Create an assembly file with all undefined symbols and add it to the link command so that the symbols show up in the final undefined list. Use that list to create thunks for all exported but undefined symbols, to make sure all export RVAs point somewhere inside the module. - Take into account -noname functions when checking for duplicate export names. Fixed a couple of issues found by the stricter check. - Generate the NT header in assembly instead of using a C structure. - Don't remove ignored symbols from the undefined list, simply skip them when resolving imports. Added get_temp_file_name utility function. - Fixed stack offset of %eax register. - Output the delayed import table using assembly too. - Added a common function to declare global symbols, and make them hidden on platforms that support it. - Fixed a number of pointer to integer conversions that wouldn't work right on a 64-bit platform. - Output the import directory using assembly instead of C structures. - Defined a proper structure for debug channels. Also put all the function pointers inside a structure and added __wine_dbg_set_functions to change them instead of exporting the pointers directly. - Moved return value handling to the individual relay thunks so that we only need one version of wine_call_from_16. Patch the wine_call_from_16 address along with the cs value directly in the 16-bit code segment to avoid the need for special magic in the import thunks. - Moved the spec file init function and constructor to winecrt0. - Make the users of wine_call_from_32_regs save %eax so that we don't need a special hack in the import thunk. Added a get_pc_thunk_eax function to simplify the code a bit. - Get rid of the debug channels support. svn path=/trunk/; revision=18325 |
||
---|---|---|
cis | ||
irc | ||
msvc6 | ||
os2 | ||
posix | ||
reactos | ||
rosapps | ||
rosky | ||
vms |