Commit Graph

349 Commits

Author SHA1 Message Date
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 41177ca0bd Output the resource data in assembly too. 2005-09-15 09:42:22 +00:00
Alexandre Julliard 8aba0897bd Output constant strings in a more appropriate section than .text. 2005-09-14 19:18:05 +00:00
Alexandre Julliard 3fa5678ea9 Generate stub functions directly in assembly. 2005-09-14 15:49:45 +00:00
Alexandre Julliard 261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +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 ce20722109 Moved the spec file init function and constructor to winecrt0. 2005-09-02 14:43:03 +00:00
Alexandre Julliard 68f177364d Avoid using common symbols, they are broken on Mac OS. 2005-08-29 21:49:57 +00:00
Alexandre Julliard d13b99d5f9 Compute the ordinal base and limit in assign_ordinals instead of doing
it while parsing.
2005-08-29 15:15: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 9c708060d3 Use __wine_unimplemented_stub from crt0 for 16-bit spec files too. 2005-08-29 10:50:26 +00:00
Alexandre Julliard 5f95aa0c53 Get rid of the unused owner_name field. 2005-08-29 09:40:11 +00:00
Alexandre Julliard d4098549bb Moved the delay loading support code to the winecrt0 library. 2005-08-25 19:37:51 +00:00
Alexandre Julliard b6b180a16d Moved the implementation of spec file stubs to the winecrt0 library. 2005-08-25 15:27:44 +00:00
Alexandre Julliard 71ae2d7bed Beginnings of a crt0 library. 2005-08-25 11:41:05 +00:00
Alexandre Julliard 5370981e06 The exported name strings should be inside the export directory (found
by Vitaliy Margolen).
2005-08-23 20:08:37 +00:00
Alexandre Julliard 2b87c82e76 Added a --undefined option to allow forcing some symbols to be
resolved by the linker.
2005-08-19 11:28:56 +00:00
Alexandre Julliard ec1cdfd12b Added some general purpose routines for managing list of symbol
names.
2005-08-19 10:25:22 +00:00
Alexandre Julliard 646f17f249 Implemented DelayLoadFailureHook and use it in the winebuild-generated
delay load code.
2005-08-12 16:00:42 +00:00
Alexandre Julliard 88aa4b524d Byteswap the resources if we detect that the header is in the wrong
endianness.
2005-08-10 13:04:23 +00:00
Alexandre Julliard d5d8967f69 Added a warning for DllGetVersion and DllInstall not being declared
private. Also warn when one of the Dll* functions is using a different
internal name.
2005-08-09 10:24:05 +00:00
Alexandre Julliard 6d8567824f Print a warning when a generated import library doesn't export
anything useful.
2005-07-26 18:57:19 +00:00
Steve Zellers e51ffce568 Fixed leftover import table name in output_import_thunk. 2005-07-13 11:39:12 +00:00
Marcus Meissner 2d7e976eed Fixed signedness warnings. 2005-07-10 17:45:53 +00:00
Alexandre Julliard 7c91993eba Don't depend on ELF features for PIC code.
A couple of optimizations.
2005-07-05 21:06:00 +00:00
Mike McCormack 723ee0a3bc gcc 4.0 -Wpointer-sign fixes. 2005-07-05 14:26:54 +00:00
Alexandre Julliard aeb4e6e5d2 Get rid of the global debugging flag. 2005-07-05 12:52:57 +00:00
Alexandre Julliard 2b33634018 Intercept functions for 16-bit relay debugging by patching the
CALLFROM16 table instead of having the wine_call_from_16 functions
call out the relay functions explicitly.
2005-07-05 12:52:07 +00:00
Alexandre Julliard e56d9deac4 Added vararg argument type so that the relay code can distinguish from
a normal cdecl function.
Don't rely on the relay thunk preserving the stack pointer.
2005-07-05 11:50:40 +00:00
Alexandre Julliard 1a0f2863db Moved all 16-bit relay code to the text section.
Changed a few symbol names for better consistency.
2005-07-03 11:28:44 +00:00
Alexandre Julliard deaec125ca Don't use the full 32 bits of %esp when called from 16-bit code. 2005-07-01 19:18:46 +00:00
Alexandre Julliard 71914125ce Moved most of the implementation of CALL32_CBClient(Ex) to the C
code.
2005-07-01 16:24:32 +00:00
Alexandre Julliard 89503c182a Added a --target option to allow cross-compilation. 2005-07-01 16:17:44 +00:00
Alexandre Julliard 47286920b6 Improve a bit the assembly generated for import thunks. 2005-07-01 15:49:39 +00:00
Phil Krylov 4f9f7f131c Fixed winebuild operation in Darwin. 2005-06-30 11:00:28 +00:00
Alexandre Julliard 706a0a9e59 Replace configure macros by explicit platform checks (probably not
correct on all platforms yet).
2005-06-29 20:18:58 +00:00
Alexandre Julliard 445fb59802 Replaced all uses of the __ASM_NAME macro by the asm_name function to
allow run-time determination of the correct format.
2005-06-27 18:59:54 +00:00
Alexandre Julliard 803c8d9693 Beginnings of an infrastructure to allow specifying the target CPU and
platform at run-time.
2005-06-27 11:23:24 +00:00
Alexandre Julliard f51496a232 Remove some i386 ifdefs for 16-bit entry points since they are no
longer used by default on other platforms anyway.
2005-06-25 18:34:00 +00:00
Alexandre Julliard 63e9a42b0b Allocate ordinals in the order of the declarations in the spec file. 2005-06-23 16:46:20 +00:00
Wolfgang Thaller 32984a640e Use __ASM_NAME and HAVE_ASM_DOT_SIZE in a few places in winebuild
where they have been missing (needed for Darwin/x86).
2005-06-20 13:38:39 +00:00
Wolfgang Thaller 84c8bf5340 Winebuild darwin/x86-specific fixes:
- Assembler interprets .align as power-of-two
- Add .weak_reference to output where gcc 3.3 swallows it
2005-06-20 11:43:16 +00:00
Alexandre Julliard 190f845cb1 Make import thunks position-independent to avoid text relocations. 2005-06-16 20:51:50 +00:00
Alexandre Julliard 27e868e9ad Generate proper PIC code for CALL32_CBClient. 2005-06-16 15:57:36 +00:00
Alexandre Julliard efcc2b83d8 Store a relative pointer for registry entry points to avoid some text
relocations.
2005-06-16 11:04:41 +00:00
Alexandre Julliard 399300a143 Output the exported names as a C string so that they end up in the
correct section.
2005-06-16 10:43:19 +00:00
Pierre d'Herbemont db134ece39 Use .mod_*_func sections on Mac OS X/i386 instead of the elf
constructor/destructor.
2005-06-10 19:58:26 +00:00
Alexandre Julliard 25c5fe33ba Reuse output_dll_init for the constructor of debug files. 2005-06-10 19:56:05 +00:00
Alexandre Julliard 5c9b7cf55f Moved all assembly code to the end of the generated C files to avoid
conflicting with the compiler over section changes.
2005-06-06 15:59:50 +00:00
Alexandre Julliard 520a7af933 Switch back to .data at the end of asm sections to work around an
optimization in recent gcc versions.
2005-06-05 21:08:51 +00:00
Alexandre Julliard a583b2570b Generate the resource data directly inside the resource directory. 2005-06-05 18:36:24 +00:00
Alexandre Julliard 5ea0dd6d5f Free delayed import modules on PROCESS_DETACH. 2005-05-24 10:13:30 +00:00
Alexandre Julliard 70d0439905 Moved the generated code segment for 16-bit builtins inside the module
structure.
Get rid of the BUILTIN16_DESCRIPTOR structure and directly register
the MZ header instead.
2005-05-23 12:07:15 +00:00
Alexandre Julliard 1970e467d4 Generate 16-bit resources in the proper format inside the module data,
and get rid of the special case for builtins in NE_DefResourceHandler.
2005-05-20 19:19:01 +00:00
Alexandre Julliard dea3a11c6c Use RaiseException instead of RtlRaiseException in 16-bit spec files
since they already depend on kernel32.
2005-05-19 12:51:12 +00:00
Alexandre Julliard 3d5c3609c7 Renamed __wine_(un)register_dll_16 to __wine_dll_(un)register_16 for
consistency with the 32-bit version, and also make the register
function use the same prototype as the 32-bit one.
2005-05-19 12:44:31 +00:00
Alexandre Julliard 67204137ee Generate the 16-bit module header in the standard on-disk format, so
that winebuild doesn't need to know about kernel internal structures.
2005-05-18 18:21:59 +00:00
Alexandre Julliard e8a23c9572 Use the exported IMAGE_OS2_HEADER to generate the module header in the
spec file, and moved the NE_MODULE structure definition to
kernel16_private.h.
2005-05-17 10:21:29 +00:00
Alexandre Julliard 827a69f8ca Avoid referencing stackframe.h from outside kernel32. 2005-05-16 14:20:16 +00:00
Alexandre Julliard 95086f45a4 Moved data structures for 16-bit relay calls to winbase16.h and
removed builtin16.h.
2005-05-16 09:19:18 +00:00
Alexandre Julliard d876893fc1 Store the 16-bit stack pointer in the WOW32Reserved TEB field. 2005-05-14 12:16:46 +00:00
Alexandre Julliard c0d2377565 Removed no longer used support for 32-bit register entry points. 2005-05-07 18:47:22 +00:00
Alexandre Julliard c700f90e63 Use RaiseException instead of RtlRaiseException for delayed entry
points load failure to avoid creating a dependency on ntdll.
2005-05-07 15:06:30 +00:00
Alexandre Julliard 2dabac08ee Added support in winebuild for specifying import libraries directly on
the command line without the -l option.
Changed the -d option to only mark the library as delayed, the actual
loading is now done separately.
2005-05-06 15:54:41 +00:00
Marcus Meissner 9b626b7bed Use correct movw instead of movl when handling segment registers. 2005-04-13 11:17:00 +00:00
Jon Griffiths 523d94ae4c -Wunsigned fixes. 2005-03-18 14:04:07 +00:00
Alexandre Julliard b98d045e02 Don't crash on xrealloc(0) (found by Jon Griffiths). 2005-03-18 14:03:38 +00:00
Alexandre Julliard 300240bf96 Use the correct file name in the "generated automatically" comments. 2005-03-15 15:42:32 +00:00
Dimitrie O. Paun c02dd0a902 Add support for .exe's with exported functions. 2005-03-08 16:55:26 +00:00
Francois Gouget fbb3343547 Assorted spelling fixes. 2005-03-02 13:53:50 +00:00
Francois Gouget 4d801b66e6 Assorted spelling fixes. 2005-02-10 19:19:35 +00:00
Marcus Meissner 87f27ffe08 Put generated import table code into .text segment. 2005-02-09 14:06:32 +00:00
Paul Millar 10a6c56071 Check for features missing in mingw environment, allowing tools
subdirectory to be cross-built again.
2004-12-07 17:19:54 +00:00
Alexandre Julliard 7bfda49772 Clean up temp files also when killed by a signal. 2004-12-02 18:22:48 +00:00
Eric Frias f23b358b0d Handle a def file where the names of the exported functions are listed
without being followed by an equals sign and an alias.
2004-11-21 15:39:51 +00:00
Alexandre Julliard a7094d8e5a winebuild shouldn't depend on the NO_TRACE_MSGS define. 2004-10-19 23:09:02 +00:00
Vincent Béron 2c1b35dd17 Add some more Alpha asm code and Alpha-specific parts. 2004-10-18 21:27:52 +00:00
Vincent Béron baeec1f404 Don't use magic sizes, actually calculate them. 2004-10-14 00:26:08 +00:00
Vincent Béron b07dec4634 Only compile BuildCallFrom16Func on x86. 2004-10-14 00:25:44 +00:00
Alexandre Julliard b4c7e6c7e2 Added --ld-cmd and --nm-cmd options in winebuild, and make winegcc
pass the proper ld command.
2004-10-08 21:11:18 +00:00
Alexandre Julliard 86d4a70baa Fill in the proper offsets in the resource directory instead of
relying on the compiler to do it.
2004-09-07 20:45:03 +00:00
Alexandre Julliard d78ee14b93 Print a warning when DllRegisterServer and similar functions are not
marked private.
2004-08-27 19:40:53 +00:00
Marcus Meissner b2c9c61561 Use "LD" instead of "ld" in winebuild to be able to use a different ld
or ld options.
2004-07-29 02:34:15 +00:00
Pierre d'Herbemont 75c3c37b17 Darwin/Mac OS X Weak import workaround. 2004-07-15 18:58:42 +00:00
Pierre d'Herbemont c5cbf7157c - Be more accurate on Darwin stack size.
- Delay import fix on PowerPC hosts.
2004-07-15 18:57:57 +00:00
Pierre d'Herbemont 390f97a0e6 Delayed import fix for Darwin and PowerPC Host. 2004-07-14 21:42:18 +00:00
Pierre d'Herbemont 68467db6c6 - Detection of .size instruction.
- Detection of the assembler name prefix.
2004-06-18 19:36:26 +00:00
Pierre d'Herbemont 3d60a19287 Hide the _init and _fini wrappers on darwin. 2004-06-17 19:58:59 +00:00
Eric Pouech d3f8f78c3a - added size information about most of the generated thunks (import,
16/32 relay...)
- marked the wine thunks by inserting specific symbols (to be managed
  by wine's dbghelp)
- removed the stabs generation:
  + mostly used by winedbg, and the previous item will replace it for
    dbghelp
  + still broken for gdb anyway
- enhanced const correctness
2004-05-18 21:27:44 +00:00
Alexandre Julliard 32e31ac7c4 Automatically detect whether the entry point is main or WinMain
instead of depending on the subsystem type.
2004-04-08 04:41:14 +00:00