61 Commits

Author SHA1 Message Date
Alexandre Julliard
715804999e winebuild: Added output() function to properly deal with write errors. 2006-08-11 20:41:29 +02:00
Alexandre Julliard
d489a0a312 winebuild: Get rid of the data16 prefix, it shouldn't be needed anymore and causes warnings. 2006-06-19 21:16:50 +02:00
Alexandre Julliard
fb15dabdcd winebuild: Fix a few printf format warnings by casting size_t. 2006-06-13 14:14:59 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Marcus Meissner
1ed3ca0883 winebuild: Output a .note.GNU-stack section to allow nonexecutable stack. 2006-01-21 19:23:36 +01:00
Alexandre Julliard
76ece8530a winebuild: Moved offset definitions to relay.c since they are only
needed there.
Hardcoded a couple of TEB offsets to support cross-compilation.
2006-01-20 19:45:57 +01:00
Alexandre Julliard
4ce433d826 ntdll: Move the %gs register to the ntdll_thread_regs structure. 2006-01-20 16:54:11 +01:00
Alexandre Julliard
8651ceb18e ntdll: Make __wine_call_from_32_restore_regs take a context pointer.
Changed exception raise functions to call it explicitly.
2005-12-19 09:59:50 +01:00
Alexandre Julliard
c367dc4f2e Enforce 16-byte stack alignment when returning from 16-bit code and
when calling a register function.
2005-11-28 17:38:40 +01:00
Alexandre Julliard
2aae74dff0 Factor out a couple of useful helper functions. 2005-09-21 11:50:04 +00:00
Alexandre Julliard
c5c6968e96 Fixed stack offset of %eax register. 2005-09-20 11:38:29 +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
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
7c91993eba Don't depend on ELF features for PIC code.
A couple of optimizations.
2005-07-05 21:06:00 +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
71914125ce Moved most of the implementation of CALL32_CBClient(Ex) to the C
code.
2005-07-01 16:24:32 +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
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
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
827a69f8ca Avoid referencing stackframe.h from outside kernel32. 2005-05-16 14:20:16 +00:00
Marcus Meissner
9b626b7bed Use correct movw instead of movl when handling segment registers. 2005-04-13 11:17:00 +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
Dmitry Timoshkov
d16829846d Add a few missing __ASM_NAME macros. 2004-03-27 20:44:41 +00:00
Jukka Heinonen
54a8a25b5e DPMI programs now handle pending events. 2004-03-16 01:15:11 +00:00
Alexandre Julliard
4cb001967a Switch back to the main process stack before calling exception
handlers.
2003-10-28 00:30:55 +00:00
Alexandre Julliard
67d9f38059 Added __wine_set_signal_fs function to avoid sharing the
SYSLEVEL_Win16CurrentTeb variable between kernel and ntdll.
On the kernel side, replaced SYSLEVEL_Win16CurrentTeb by
CallTo16_TebSelector stored directly in the asm relay code to avoid a
run-time relocation.
2003-10-08 22:59:22 +00:00
Daniel Marmier
9bb19ac2d2 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-03 03:35:20 +00:00
Alexandre Julliard
b91e9cb3e6 Renamed a few more TEB fields. 2003-08-28 03:44:41 +00:00
Alexandre Julliard
a5b961c2b0 Moved selector fixup for the relay code to the callto16 exception
handler.
Make sure to only use pop instructions to modify segment registers in
the relay code to simplify the selector fixup.
2003-08-25 23:48:30 +00:00
Alexandre Julliard
3be5d62b29 Moved 16-bit calls initialization and exception handling to kernel32.
Store the call_to_16 return address on the stack from the C code so
that we don't need two variants of call_to_16_regs.
2003-08-25 00:56:37 +00:00
Alexandre Julliard
3a5b7cf105 Extended WOWCallback16Ex to support register functions too. This
allows simplifying the wine_call_to_16 assembly code by moving part of
it to C code, and getting rid of the extra kernel exports.
2003-08-23 23:30:51 +00:00
Alexandre Julliard
78675ba234 Store %gs in the TEB on every call to 16-bit code, and don't restore
it from the TEB for signals that did not happen in 16-bit code.
2003-03-25 00:36:16 +00:00
Alexandre Julliard
551797bc57 Properly save/restore %gs register across 16-bit calls. 2003-02-27 21:11:13 +00:00
Alexandre Julliard
7aee90762a Merged wine_call_to_16_long and wine_call_to_16_short into a single
function.
2002-10-18 00:29:32 +00:00
Alexandre Julliard
6006757996 Setup exception frame around 16-bit calls to unwind stack properly. 2002-08-13 03:29:17 +00:00
Alexandre Julliard
65c6d38581 Replace all uses of PREFIX and @function by the __ASM_NAME and
__ASM_FUNC macros.
2002-07-22 20:47:11 +00:00
Vincent Béron
9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard
894b188fcf Moved __ASM_GLOBAL_FUNC macros and interlocked functions to port.[ch] 2002-04-25 21:40:56 +00:00
Alexandre Julliard
e16bb784a3 Got rid of #ifdef USE_STABS. 2002-04-01 21:07:16 +00:00
Patrik Stridvall
235da7975b Made winebuild (almost) compile and work on Windows. 2002-03-11 05:09:02 +00:00
Alexandre Julliard
0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Gavriel State
f98c52b11f Some older versions of GDB need to have the filename data available
for each section, so we need to output it again for the data section.
2002-02-12 18:46:14 +00:00
Alexandre Julliard
eb9a863116 Exported CALL32_Regs from ntdll, renamed to __wine_call_from_32_regs
to follow the naming convention for this type of functions.
Split 16 and 32-bit relay functions into separate files, and moved the
32-bit ones to dlls/ntdll.
2001-12-11 00:50:33 +00:00
Francois Gouget
e5ddd26dd7 When including config.h, include it first. 2001-10-14 16:18:52 +00:00
Alexandre Julliard
99eac46f65 Output correct assembly function headers for all functions. 2001-08-28 17:26:49 +00:00