Commit Graph

223 Commits

Author SHA1 Message Date
Martin Storsjo dc46af7245 winebuild: Pass -m options to dlltool for arm and arm64.
This allows using the arch independent llvm-dlltool without the
llvm-mingw specific <triple>-dlltool wrappers.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-21 11:56:44 +01:00
Alexandre Julliard b3a38fef26 winebuild: Initialize entry point to avoid a compiler warning.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-26 23:25:38 +01:00
Alexandre Julliard 043489456c ntdll: Make x86_64 syscall thunks position independent.
Based on a patch by Paul Gofman.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-25 21:39:19 +01:00
Alexandre Julliard 3eaf036b10 winebuild: Add __imp_ label on the import data for delayed imports.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-14 21:33:17 +02:00
Martin Storsjo 559d502699 winebuild: Add unwind info to arm64 syscall stubs.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:02:46 +02:00
Alexandre Julliard 75e616d52b ntdll: Clear the syscall frame on return instead of popping the previous one.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-27 12:14:35 +02:00
Alexandre Julliard 0e7f6e0ed3 winebuild: Allow syscalls to use the cdecl convention.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-25 13:51:37 +02:00
Martin Storsjo 849d08b0ae winebuild: Use the right arm64 page/pageoff relocation syntax for darwin.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-18 22:32:25 +02:00
Alexandre Julliard cff04b34ac winebuild: Always use DllMain as entry point for the 32-bit side of a 16-bit module.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49559
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-03 12:06:08 +02:00
Alexandre Julliard 15b3584603 winebuild: Store the syscall frame in the thread data on ARM64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-28 13:35:30 +02:00
Alexandre Julliard 28e443d9e2 winebuild: Store the syscall frame in the thread data on ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-28 13:31:59 +02:00
Alexandre Julliard 9a7c56d9e7 winebuild: Store the syscall frame in the thread data on x86_64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-28 13:10:28 +02:00
Alexandre Julliard 8e3b5183cc winebuild: Store the syscall frame in the thread data on i386.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-28 13:00:50 +02:00
Paul Gofman e9b3660e72 ntdll: Always align stack pointer in __wine_syscall_dispatcher on x64.
Syscall thunks break stack alignment for dispatcher. Regardless of that,
it is probably better not to assume aligned stack in syscall thunk entry.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-14 22:31:27 +02:00
Jacek Caban 7e4ea871a3 winebuild: Use asm_name for __wine_syscall.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-09 17:41:09 +02:00
Alexandre Julliard 461fc592ad winebuild: Fix retrieving syscall arg length on x86_64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-09 13:04:05 +02:00
Alexandre Julliard 917a206b01 winebuild: Generate Windows-style syscall thunks on x86_64.
Based on patches by Michael Müller.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-08 14:38:23 +02:00
Alexandre Julliard 20715ee3fd winebuild: Generate Windows-style syscall thunks on x86.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-08 14:38:20 +02:00
Alexandre Julliard b2d09cbb21 winebuild: Add generation of system call thunks.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 13:07:23 +02:00
Alexandre Julliard a0266339c7 winebuild: Add a -syscall entry point flag
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 13:07:23 +02:00
Alexandre Julliard 66fb3802d3 winebuild: Allow specifying a spec file also for Unix libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-06 16:17:24 +02:00
Alexandre Julliard 7933562048 winebuild: Support a -mno-cygwin flag.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-01 10:59:35 +02:00
Jacek Caban c0467a1470 winebuild: Add an option to build a static library.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-04 22:43:41 +01:00
Jacek Caban 4346d68e1b makedep: Use -Wl,-delayload option for winebuild delayimports.
Also fixes winebuild to correctly handle module extensions.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 21:39:40 +01:00
Jacek Caban dd1a83c20a winebuild: Don't include aliases in importlib .def files.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-26 17:41:11 +02:00
Alexandre Julliard 907896fba5 winebuild: Set the default entry point also for Windows builds.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47410
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-25 17:44:03 +02:00
Alexandre Julliard cf619dd419 winebuild: Add -import entry point flag to generate hotpatchable import thunks.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-21 22:51:55 +02:00
Alexandre Julliard 450f0fa696 winebuild: Don't import standard C functions in Unix mode.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-17 09:24:45 +02:00
Alexandre Julliard ded2e82f16 winebuild: Don't even try to resolve imports for PE builds.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-04 19:23:11 +02:00
Alexandre Julliard 1f6681f474 winebuild: Use cdecl calling convention for stub exceptions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47226
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-20 10:15:17 +02:00
Alexandre Julliard 92233bfaf5 makefiles: Support delay imports for PE builds.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-02 17:10:35 +02:00
Martin Storsjo f098cd6d3a winebuild: Print the nm command in verbose mode.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 17:29:11 +02:00
Alexandre Julliard 074ec5844b winebuild: Set the import hint based on the name index.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-20 11:49:38 +01:00
Alexandre Julliard 7555fd57e3 winebuild: Add a helper for generating RVA pointers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:28:19 +01:00
Alexandre Julliard ef9bda4c96 winebuild: Add a helper for decorating stdcall function names.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:28:19 +01:00
Alexandre Julliard a3229faf59 winebuild: Output the module filename along with the stub data.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-06 18:28:19 +01:00
Alexandre Julliard 67f6c6c0c9 winebuild: Add a helper function to open a temporary file as output.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-04 14:49:02 +01:00
Alexandre Julliard aa0572f0a2 winebuild: Open the output file only when needed.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-04 14:49:02 +01:00
Alexandre Julliard 28debd82fc winebuild: Make thiscall an entry point flag instead of a function type.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-27 23:00:56 +01:00
Huw Davies 13fec030e7 winebuild: On x86_64, save xmm0 - 3 during the delayed import lookup.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-07 19:38:30 +01:00
Alexandre Julliard 75a830e8e1 winebuild: Put the thunk hint/name in FirstThunk too instead of zero.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-18 15:35:20 +02:00
André Hentschel db848fa767 winebuild: Improved position independent code generation.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-08 20:02:33 +09:00
Alexandre Julliard c52e4b6551 winebuild: Mark the stack non-executable in static import libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-05 00:06:41 +09:00
Alexandre Julliard 13fe69714b winebuild: Add support for linking to static import libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 15:35:18 +09:00
Alexandre Julliard aac69889bf winebuild: Add support for creating static import libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 15:35:17 +09:00
Alexandre Julliard 59b5c52f1d winebuild: Add a common helper to find an imported dll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-23 22:55:46 +09:00
Alexandre Julliard ebb9c5e246 winebuild: Use a global flag to determine when to generate the get_pc thunk.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 18:12:28 +09:00
Alexandre Julliard 77a13f69b4 winebuild: Add a separate structure to store the data of imported functions.
We only need the name and ordinal.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 16:34:35 +09:00
Alexandre Julliard 68614d5db2 winebuild: Store delayed imports in a separate list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 16:16:58 +09:00
Alexandre Julliard 9b70b6bd13 winebuild: Store dll imports in a list instead of an array.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 16:15:01 +09:00