Alexandre Julliard
5cb97d833a
Generate 16-bit spec files as assembly code too.
2005-09-21 14:23:54 +00:00
Alexandre Julliard
2aae74dff0
Factor out a couple of useful helper functions.
2005-09-21 11:50:04 +00:00
Alexandre Julliard
210bd2dd94
Make sure that values of absolute symbols fit in 16 bits.
2005-09-21 11:10:54 +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
c5c6968e96
Fixed stack offset of %eax register.
2005-09-20 11:38:29 +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
7a52190c03
Take into account -noname functions when checking for duplicate export
...
names. Fixed a couple of issues found by the stricter check.
2005-09-19 14:44:28 +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
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