141 Commits

Author SHA1 Message Date
Alexandre Julliard
873e027e01 winebuild: Add unwind annotations to all the generated functions for x86_64. 2009-06-16 14:26:51 +02:00
Alexandre Julliard
b374e7e36e winebuild: Don't include any Windows header to avoid data types dependencies. 2009-04-09 20:58:43 +02:00
Alexandre Julliard
cdad788d33 winebuild: Skip non-functions when building the undefined exports file. 2009-03-25 13:27:27 +01:00
Alexandre Julliard
49d2c208d8 winebuild: Ignore 16-bit absolute exports when checking for undefined symbols. 2009-03-04 14:08:35 +01:00
Alexandre Julliard
5599ac22c7 winebuild: Add support for generating stand-alone 16-bit modules.
This is done by wrapping them inside an empty 32-bit module.
2009-02-26 13:22:47 +01:00
Alexandre Julliard
d07f67acbc winebuild: Determine the appropriate as/ld/nm commands at the time they are needed. 2009-02-04 19:31:54 +01:00
Alexandre Julliard
913354e75b winebuild: Fix delay load code to preserve stack alignment and save the correct registers. 2008-12-27 19:58:42 +01:00
Alexandre Julliard
ce63574425 winebuild: Generate stub entry points for x86_64. 2008-12-16 12:20:30 +01:00
Maarten Lankhorst
1fcc33451a winebuild: Use ms-abi for delayed load stubs. 2008-11-25 12:33:22 +01:00
Alexandre Julliard
1abf809099 winebuild: Generate MS-style imports using the OriginalFirstThunk field. 2008-09-04 21:52:58 +02:00
Simon Richter
238e1868b2 winebuild: Fix import stub on ppc.
The address calculation was wrong, as the addition of the lower 16 bits
is a signed addition, so if bit 15 is set, the upper 16 bits need to be
incremented by one (so the hi portion of the symbol always references
the symbol + 0x8000).
2008-06-02 12:33:47 +02:00
Alexandre Julliard
195356c098 winebuild: Also optimize out imports that are only used for forwards. 2007-12-06 21:44:45 +01:00
Alexandre Julliard
e6fe7341f5 winebuild: Improved checks for missing forward entry point targets. 2007-12-06 21:43:41 +01:00
Alexandre Julliard
32fc1acb1c winebuild: Print a warning when failing to import a data export. 2007-12-06 21:43:41 +01:00
Alexandre Julliard
c32e02e48d winebuild: Add a few nops to stub entry points to make Safedisc happy. 2007-11-07 20:36:04 +01:00
Rob Shearman
5fcc5d3f62 winebuild: Refer to strings used in generated stubs by symbol rather than by offset to avoid problems when the compiler aligns the strings by 2 or more bytes. 2007-04-25 12:44:16 +02:00
Dmitry Timoshkov
d57872567d winebuild: Check if a given forward does exist in one of the imported dlls, fix a couple of problems detected. 2007-04-09 12:19:31 +02:00
Andrew Talbot
5df3ff13e7 winebuild: Replace inline static with static inline. 2007-03-17 20:05:12 +01:00
Joris Huizer
c9f1452233 winebuild: sign-compare fixes. 2007-03-05 15:31:48 +01:00
Andrew Talbot
80294709c5 winebuild: Cast-qual warning fix. 2006-10-12 11:33:09 +02:00
Alexandre Julliard
715804999e winebuild: Added output() function to properly deal with write errors. 2006-08-11 20:41:29 +02:00
Ge van Geldorp
7a15278504 winebuild: Save registers which might contain parameters for the function to be called. 2006-07-11 17:16:06 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Alexandre Julliard
88bf4d61c3 winebuild: Disable linking to external symbols by default. 2006-04-18 20:49:29 +02:00
Alexandre Julliard
02a9bc0094 winebuild: Fixed index in module table for delayed imports. 2006-04-18 11:23:49 +02:00
Alexandre Julliard
433bbdf08a winebuild: Get rid of the default ignored symbols list. 2006-01-24 12:29:31 +01:00
Alexandre Julliard
3f0a473fb7 winebuild: Always import atof, the MS version is different. 2006-01-23 11:27:04 +01:00
Alexandre Julliard
5dc6d95952 ntdll: New implementation of relay thunks.
New implementation of relay thunks that doesn't require modifying code
on the fly, so that the thunks can be put in the text section.
Some performance improvements.
2005-12-18 10:45:01 +01:00
Alexandre Julliard
cc01e8ff05 Preserve 16-byte stack alignment in the various assembly
functions. Needed for MacOSX.
2005-11-23 19:55:06 +01:00
Simon Richter
9aa432346c Fix winebuild's ppc assembly generation. 2005-10-24 15:01:18 +00:00
Alexandre Julliard
2aae74dff0 Factor out a couple of useful helper functions. 2005-09-21 11:50:04 +00:00
Alexandre Julliard
3cd7379d26 Moved stub function generation to import.c. Added a get_stub_name
function to ensure naming consistency.
2005-09-21 10:57:04 +00:00
Alexandre Julliard
5173234ea8 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.
2005-09-21 10:22:28 +00:00
Alexandre Julliard
a999a990fe 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.
2005-09-19 17:04:43 +00:00
Alexandre Julliard
87c347b18e Don't remove ignored symbols from the undefined list, simply skip them
when resolving imports.
Added get_temp_file_name utility function.
2005-09-19 15:24:13 +00:00
Alexandre Julliard
96508ad686 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.
2005-09-18 12:25:22 +00:00
Alexandre Julliard
89024a63d3 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.
2005-09-18 11:13:54 +00:00
Alexandre Julliard
80083b18f8 Store RVAs instead of pointers wherever possible in the generated NT
header and directories.
2005-09-17 14:39:51 +00:00
Alexandre Julliard
8c6649e457 Implemented import thunks for x86-64. 2005-09-16 19:39:42 +00:00
Alexandre Julliard
13baa7b364 Added a common function to declare global symbols, and make them
hidden on platforms that support it.
2005-09-15 18:48:39 +00:00
Alexandre Julliard
9f49889188 Now that everything is done in assembly in the spec file, directly
generate a .s file to bypass gcc inefficiency with large data
structures.
2005-09-15 15:01:30 +00:00
Alexandre Julliard
3fa5678ea9 Generate stub functions directly in assembly. 2005-09-14 15:49:45 +00:00
Alexandre Julliard
43bd5512c3 Added support for 64-bit format NT header and export/import tables. 2005-09-08 11:35:19 +00:00
Alexandre Julliard
c382ed06d3 Added a bit of framework for future x86_64 support. 2005-09-07 13:31:37 +00:00
Alexandre Julliard
e6c7669226 Generate the NT header in assembly instead of using a C structure. 2005-09-07 11:44:16 +00:00
Alexandre Julliard
2aa9e201b2 Output the delayed import table using assembly too. 2005-09-03 15:39:13 +00:00
Alexandre Julliard
932ecb24eb Output the import directory using assembly instead of C structures. 2005-09-02 15:36:03 +00:00
Alexandre Julliard
d1c5f68dca Added an entry point routine for native drivers. 2005-09-02 15:19:42 +00:00
Alexandre Julliard
0628c7eba6 Moved more of the spec initialization code to the winecrt0 library,
and get rid of implicit kernel32 imports.
2005-08-29 14:16:27 +00:00
Alexandre Julliard
d4098549bb Moved the delay loading support code to the winecrt0 library. 2005-08-25 19:37:51 +00:00