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
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
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
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
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
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
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
6d8567824f
Print a warning when a generated import library doesn't export
...
anything useful.
2005-07-26 18:57:19 +00:00
Alexandre Julliard
aeb4e6e5d2
Get rid of the global debugging flag.
2005-07-05 12:52:57 +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
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
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
c0d2377565
Removed no longer used support for 32-bit register entry points.
2005-05-07 18:47:22 +00:00
Alexandre Julliard
300240bf96
Use the correct file name in the "generated automatically" comments.
2005-03-15 15:42:32 +00:00
Francois Gouget
4d801b66e6
Assorted spelling fixes.
2005-02-10 19:19:35 +00:00
Vincent Béron
2c1b35dd17
Add some more Alpha asm code and Alpha-specific parts.
2004-10-18 21:27:52 +00:00
Pierre d'Herbemont
75c3c37b17
Darwin/Mac OS X Weak import workaround.
2004-07-15 18:58:42 +00:00
Pierre d'Herbemont
3d60a19287
Hide the _init and _fini wrappers on darwin.
2004-06-17 19:58:59 +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
Alexandre Julliard
4cf091ab09
Replaced the --mode winebuild option by a --subsystem option for
...
better compatibility with the PE binutils.
2004-03-25 00:40:52 +00:00
Alexandre Julliard
d1e0782c9e
Removed the Unicode exe modes, and instead detect automatically which
...
mode to use based on the existence of main or wmain.
2004-03-24 03:39:57 +00:00
Pierre d'Herbemont
0ba5ade849
Darwin support for _init/_fini functions and _end symbol.
2004-03-22 21:12:23 +00:00
Marcus Meissner
d496eb08e7
No need to check for DllEntryPoint style constants.
2004-02-16 20:24:32 +00:00
Alexandre Julliard
5e4a5beccb
Added native mode dll support (based on a patch by Marcus Meissner).
2004-02-13 22:42:13 +00:00
Alexandre Julliard
8611e654fc
Store all information about the current dll in a structure instead of
...
using global variables to make it easier to reuse the parsing
routines.
2004-02-11 06:41:01 +00:00
Alexandre Julliard
f33de52f5e
Tweaked the init code so that it works properly no matter what linker
...
options are used.
2004-01-15 04:58:17 +00:00
Alexandre Julliard
3604824262
If supported by the linker, prevent the ELF loader from calling the
...
dll constructors at load time and call them from the dll entry point
instead.
2004-01-08 03:36:53 +00:00
Alexandre Julliard
18b4cbf12a
Put better values for code and data sizes in the NT header of builtin
...
dlls.
2003-11-03 22:19:44 +00:00
Alexandre Julliard
03711317de
Better defaults for heap and stack sizes.
2003-10-30 22:49:01 +00:00
Pierre d'Herbemont
6661f30409
Change mctr PowerPC asm instruction to mtctr. Add Support for the
...
.text section and the .space section of darwin's ld.
2003-10-24 00:27:27 +00:00
Alexandre Julliard
60c857e19c
Store the dll name for the export directory inside the exported names
...
list.
2003-09-26 04:36:46 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
e547e10be0
Make sure dllname doesn't get optimized out (spotted by Marcus
...
Meissner).
2003-08-02 00:45:34 +00:00
Alexandre Julliard
152b98fa63
Added -private flag for entry points that shouldn't be imported from
...
other dlls.
Support PRIVATE flag in .def files (based on a patch by Jon
Griffiths).
2003-07-28 19:19:48 +00:00
Alexandre Julliard
08dfb8c91a
Don't output register function code if it's a forwarded entry point.
2003-04-03 18:05:17 +00:00
Alexandre Julliard
9e4fc4c9b6
Converted winebuild option parsing to use getopt_long. Added a number
...
of long aliases for the existing short options.
2003-03-23 01:12:30 +00:00
Christian Costa
f814cf87af
Make use of .half and/or .asciiz assembler keywords when necessary.
2003-03-23 00:18:26 +00:00
Alexandre Julliard
49edd19650
Handle end of line as a syntactic element in the spec file parser;
...
backslashes can be used to continue lines. This allows us to skip over
errors to continue parsing, and also to make specification of an entry
point link name optional.
2003-03-18 05:30:54 +00:00
Alexandre Julliard
f489a272d2
Removed support for the 'forward' ordinal type.
2003-03-17 04:56:10 +00:00
Alexandre Julliard
52ec0a3ff3
Disable 'variable' in Win32 spec files.
...
Added support for forwarded 'extern' ordinals.
2003-03-17 00:02:11 +00:00
Alexandre Julliard
470cbf2757
Added support for defining forward functions as stdcall so that we can
...
get the proper number of arguments for stdcall decoration.
2002-12-15 01:22:40 +00:00
Alexandre Julliard
ada5e6521b
Implemented import libraries; on Unix we import the .def file
...
directly, on Mingw we use it to build the .a library.
2002-12-12 22:03:14 +00:00
Alexandre Julliard
b42dc56fce
Made stdcall decoration in .def files the default, and added -k option
...
to switch it off.
2002-12-12 04:06:28 +00:00
Alexandre Julliard
72e1c64345
Added list of symbols to ignore by default in winebuild.
...
Made the -i option support removing ignored symbols too.
Removed the -noimport flag in spec files.
2002-12-12 02:20:47 +00:00
Alexandre Julliard
1e1313d54c
Made the dll entry point default to DllMain and removed most of the
...
'init' spec file declarations.
2002-11-04 23:53:41 +00:00
Alexandre Julliard
07f736bc3d
Hack to detect register functions automatically so that relay debug
...
also works for functions using the DEFINE_REGS_ENTRY_POINT macros.
2002-11-04 22:50:24 +00:00
Alexandre Julliard
4ce72031a0
Don't list register functions in the .def file.
2002-10-09 20:28:06 +00:00
François Gouget
ebd110bc6a
Fix command-line parsing for Winelib applications.
2002-08-15 23:21:03 +00:00
Marcus Meissner
f0b8fe562e
The text section alignment should be default, not 1.
2002-08-15 21:47:27 +00:00
Alexandre Julliard
124eaf809c
Builtin modules must be aligned on 64K boundary.
2002-08-14 21:09:55 +00:00
Alexandre Julliard
1862a67d2d
In -spec and -exe mode, accept multiple object files and link them
...
together internally to find the undefined symbols.
In -glue mode, accept multiple C files and generate a single glue
file for all of them.
2002-08-01 18:34:12 +00:00
Alexandre Julliard
15a75259bd
Added support for importing by ordinal.
2002-07-28 17:54:31 +00:00
Alexandre Julliard
d25878f28e
Put correct ordinal hints in the import table.
2002-07-25 00:25:40 +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
Gregg Mattinson
803eb16dfa
- Replaced .previous with a .section statement for the appropriate
...
section.
- '.section .text' is incorrect. It should be '.section ".text"'.
2002-07-05 00:20:42 +00:00
Alexandre Julliard
77afd6c47e
Made some more spec file entries optional or unnecessary.
...
Fixed a few DLLName/DLLFileName mismatches.
2002-06-21 19:15:45 +00:00
Alexandre Julliard
cceab98642
Unregister 16-bit dlls on module unload.
2002-06-14 23:42:53 +00:00
Alexandre Julliard
476aabc95a
Do not output stubs in the .def file.
2002-05-19 22:29:34 +00:00
Alexandre Julliard
bf90f4db87
Adapted to use the argc/argv variables from libwine.
...
Automatically import libraries that contain the symbols that the
.spec.c file is using.
2002-05-16 23:17:37 +00:00
Alexandre Julliard
ad53383f9b
Added winebuild support for generating a .dbg.c file containing the
...
debug channels definitions.
Made win32 the default type for spec files.
Ignore C compiler in winebuild so we can simply pass it $(DEFS).
Removed type win32 and debug_channels from spec files.
Fixed winebuild to always generate correct C identifiers (reported by
Vincent Béron).
2002-05-14 20:54:58 +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
c1bfca04e1
Changed builtin dlls file names to make it clear they are not normal
...
Unix libraries, and install them in $libdir/wine instead of $libdir to
avoid name conflicts in /usr/lib.
2002-03-20 22:19:06 +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
Dmitry Timoshkov
93a5b8681d
Support for generation of .def files from .spec files.
2002-02-04 18:48:18 +00:00
Alexandre Julliard
7662ea1004
Made register and interrupt flags instead of entry point types, so
...
that we can have both stdcall and cdecl register functions.
Changed 16-bit .spec.c file generation to avoid including builtin16.h.
2001-12-14 23:14:22 +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
James Juran
49c779a862
Prevent warnings about labels at end of switch statements when
...
compiling with gcc-3.x.
2001-11-19 02:24:14 +00:00
Francois Gouget
e5ddd26dd7
When including config.h, include it first.
2001-10-14 16:18:52 +00:00
Alexandre Julliard
5b1e934218
Avoid including winbase.h in generated .spec.c files.
2001-10-02 20:32:58 +00:00
Alexandre Julliard
3581865229
Support for specifying stack size of Winelib apps.
2001-06-07 22:29:03 +00:00
Dmitry Timoshkov
3724de93d7
Fixed some issues.
2001-05-22 19:55:51 +00:00
Jeff Garzik
f46eb1db43
Added some inclusions of string.h where necessary.
2001-03-21 20:30:46 +00:00
Josh DuBois
0b64cfb3f7
More portable .align directive.
...
Ignore -delay directive on ppc only.
Added code to call the dll constructors.
2001-02-13 02:06:38 +00:00
Ulrich Weigand
0108d83818
Fixed winebuild to work on non-Intel architectures.
2000-12-29 05:17:33 +00:00
Jon Griffiths
38e5a6c425
Allow stubs for exports that are not legal C identifiers.
2000-12-29 03:26:27 +00:00
Alexandre Julliard
66fed8cb2d
Allocate entry points dynamically to allow for a larger number of
...
ordinals.
2000-12-15 23:04:40 +00:00
Alexandre Julliard
909eff9932
Added support for Unicode applications in winebuild.
...
Removed cuiexe_no_main hack.
Avoid stdcall function declarations inside functions because of gcc bug.
2000-12-15 03:38:11 +00:00
Alexandre Julliard
2a37decc39
Output the exports table in assembly code to make it possible to
...
export C++ mangled names.
2000-12-11 03:42:20 +00:00
Alexandre Julliard
9fd831f68a
Don't make the spec file constructors static so that they don't get
...
optimized out.
2000-12-06 20:18:35 +00:00
Alexandre Julliard
218188c2d2
Always put the dll constructor in the .init section, and like the
...
.spec.o file first to ensure correct calling order of the constructors.
2000-12-02 20:38:47 +00:00
Dimitrie O. Paun
31b6d090df
Modified winebuild to use the __ASM_FUNC macro for greater portability.
2000-12-01 21:27:43 +00:00
Alexandre Julliard
1a5e22f558
Set debugging option based on NO_TRACE_MSGS define. Only output 32-bit
...
relay stubs if debugging is on.
2000-11-27 23:48:08 +00:00
Alexandre Julliard
39b3195ce6
Added entry point flags -noimport, -norelay, -ret64 and -i386.
...
Replaced 'byte', 'word' and 'long' by 'variable' and made it work for
Win32 too.
Made parser more robust against truncated files.
2000-11-26 04:31:48 +00:00
Alexandre Julliard
3570bfd41f
Do not warn for unused imported dlls when forwards to the same dlls
...
are present.
2000-11-13 04:46:34 +00:00
Alexandre Julliard
f3a15607ad
Don't include wine internal functions in the relay debugging table.
2000-11-13 04:17:25 +00:00
Alexandre Julliard
0a8114c152
Raise an exception for unimplemented 16-bit entry points too.
...
Added check for duplicate names in 16-bit spec files.
2000-11-12 03:45:55 +00:00
Joerg Mayer
abe635cfd7
Get rid of some warnings about unused variables, signed/unsigned
...
comparisons and incomplete initializations.
2000-11-11 00:38:37 +00:00
Alexandre Julliard
000c13a0da
Added support in winebuild for resolving function imports (-sym option).
...
Added -L option for locating imported dlls.
Changed generated exe init code to use __wine_get_main_args.
2000-11-09 20:31:18 +00:00
Alexandre Julliard
e087508f57
Moved builtin dll registration to libwine.
...
Changed process initialization to not load imported dlls too early.
2000-11-08 04:33:20 +00:00
Alexandre Julliard
9a634693e7
Added debug_channels support.
2000-11-05 04:49:13 +00:00
Alexandre Julliard
634824be58
Raise an exception when a stub entry point is called.
2000-10-26 22:03:34 +00:00
Alexandre Julliard
003e24cadc
Added support for loading Win32 .res files.
2000-10-23 21:33:06 +00:00
Joerg Mayer
959d73e8dd
Reduce the number of warnings about missing initializers.
2000-10-22 23:56:32 +00:00
Alexandre Julliard
a83784944b
Added stdcall64 entry point type to allow correct relay debugging
...
support for functions that return 64-bit values.
2000-10-01 01:33:50 +00:00
Alexandre Julliard
c585a501d9
Changed the Win32 dll descriptor to be in IMAGE_NT_HEADERS format.
...
Generate the import table directly in PE format.
Added gui/cuiexe_no_main modes in EXE spec files, and use this for the
main wine binary.
2000-09-27 23:40:43 +00:00
Alexandre Julliard
a80d8c6cf0
Generate Win32 dll descriptor structure in the .spec.c file so that we
...
don't need to depend on builtin32.h.
2000-09-27 01:20:01 +00:00
Hidenori Takeshima
34e10ee30f
GetCommandLine should return non-const strings.
2000-06-24 13:37:05 +00:00
Alexandre Julliard
e482eebf2f
Split the build program in several files.
...
Renamed it 'winebuild' to avoid possible conflicts.
Cleaned up command-line parsing.
Make it understand -fPIC instead of -pic.
Merged call16.s and call32.s generated files.
2000-06-23 20:15:35 +00:00