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
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
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
Steve Zellers
e51ffce568
Fixed leftover import table name in output_import_thunk.
2005-07-13 11:39:12 +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
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
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
190f845cb1
Make import thunks position-independent to avoid text relocations.
2005-06-16 20:51:50 +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
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
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
87f27ffe08
Put generated import table code into .text segment.
2005-02-09 14:06:32 +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
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
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
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
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
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
Richard Cohen
b9a12ad3b7
Remove . from default library search path.
2004-03-17 20:48:44 +00:00
Alexandre Julliard
492ac292b9
Added support for building a dll from a .def file for cases where we
...
don't want to write a full .spec.
Renamed --spec option to --dll for consistency.
2004-02-17 20:36:16 +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
Robert Shearman
932a102dcd
Fix proc name reported in delay load failure.
2004-02-09 20:58:42 +00:00
Alexandre Julliard
0b19a6f7bc
Better support for div and ldiv in Winelib apps.
2003-11-28 23:17:28 +00:00
Pierre d'Herbemont
e961418bcf
Fix PowerPC assembler syntax mistakes.
2003-10-27 22:04:54 +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
346ca95af6
Support for Mac OS X powerpc register names (based on a patch by
...
Pierre d'Herbemont).
2003-08-13 21:57:42 +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
28b64db6d5
Only print warning on nm failure because it fails on darwin if there
...
are no symbols (reported by Pierre d'Herbemont).
2003-05-14 19:36:28 +00:00
Alexandre Julliard
6d1f9b037d
Ignore "U " in nm -u output.
2003-04-10 18:36:40 +00:00
Alexandre Julliard
2ee8b5bb13
Replaced mkstemp by mkstemps from libiberty.
...
Removed a couple of unnecessary portability functions.
2003-03-20 21:07:49 +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
daecaba4a3
Don't enter an imported dll in the import table at all if we didn't
...
need to import any symbol from it.
2003-03-16 23:59:48 +00:00
Alexandre Julliard
9ba2e89ae5
Don't ignore sprintf/sscanf imports, semantics are not exactly the
...
same on Windows.
2002-12-20 00:36:18 +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
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
Eric Frias
1046fe3051
Added quotes to assembly language output.
2002-11-06 22:07:38 +00:00
Alexandre Julliard
f08b186373
Try to derive temp file names from output file names for better
...
portability.
2002-08-27 22:29:26 +00:00
Marcus Meissner
7678791d92
Implemented delayed import assembler thunks for PPC.
2002-08-20 00:00:49 +00:00
Dmitry Timoshkov
c63d98038a
Include protection for <unistd.h>, <sys/types.h> and <sys/stat.h>.
2002-08-17 18:28:43 +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
Vincent Béron
9a62491660
Removed trailing whitespace.
2002-05-31 23:06:46 +00:00
Alexandre Julliard
5e47acbc6d
Only add extra symbols if they are not already exported by this dll.
2002-05-25 21:09:15 +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
67371bcc8d
Added -res option to specify resources on winebuild command-line.
...
Added -exe mode to generate a .spec.c for an exe without having to
provide a .spec.
Removed some no longer needed spec files.
Removed .dll extension in makefiles import specifications.
2002-05-11 23:06:32 +00:00
Alexandre Julliard
32459912dc
Moved imports specification from the .spec into the Makefile so that
...
it can be used on platforms that don't build a .spec.c file.
2002-05-09 00:05:48 +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
Clemens
37d960faee
Should process the .dynsym of shared libraries instead of the .stab.
2002-01-29 02:58:20 +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
Francois Gouget
e5ddd26dd7
When including config.h, include it first.
2001-10-14 16:18:52 +00:00
Dmitry Timoshkov
3724de93d7
Fixed some issues.
2001-05-22 19:55:51 +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
Jon Griffiths
4ab1558d8a
- Remove <string.h> from winnt.h.
...
- ntdll: complete crt functions, prevent libc imports, fix sscanf.
2001-01-22 02:17:29 +00:00
Ulrich Weigand
3e08d4608e
Delayed import thunks for Sparc.
2001-01-02 22:22:12 +00:00
Ulrich Weigand
775fc630da
Fixed builtin imports broken by latest change.
2000-12-29 17:44:40 +00:00
Ulrich Weigand
0108d83818
Fixed winebuild to work on non-Intel architectures.
2000-12-29 05:17:33 +00:00
Eric Pouech
5e32d16628
Added ability to delay loading of an imported DLL until it's needed
...
(new -delay option for import directive in spec file).
2000-12-26 01:22:34 +00:00
Patrik Stridvall
35d288bca1
Solaris fixes.
2000-12-18 03:13:52 +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