Commit Graph

277 Commits

Author SHA1 Message Date
Alexandre Julliard fc7c3b51ac ntdll: Always inline NtCurrentTeb() on ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-21 20:46:13 +01:00
Alexandre Julliard 7c48d8d44b winebuild: Support non-PIC mode for ARM targets.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 09:42:30 +01:00
Alexandre Julliard c1a700f018 winebuild: Generate Thumb2-compatible assembly code on ARM.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-19 09:42:26 +01:00
Alexandre Julliard 90ac46fe33 winebuild: Simplify ARM64 import thunks.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 13:02:09 +01:00
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
Alexandre Julliard 05399ad711 winebuild: Store a C-compatible version of the dll name.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 15:20:38 +09:00
Alexandre Julliard 8e10ae6705 winebuild: Don't store the full spec for an imported dll.
We only need the dll name.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 15:16:59 +09:00
Alexandre Julliard d65446af3d winebuild: Use strarray objects for a few more string arrays.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-21 15:26:24 +09:00
Alexandre Julliard 8baaf5349f winebuild: Use strarray objects instead of pointers where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-19 13:14:41 +09:00
Charles Davis 2ea17846b8 winebuild: When building implibs, invoke dlltool with a machine type.
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-11 20:26:10 +09:00
André Hentschel d1f9067cf5 winebuild: Create stubs for ARM64. 2015-06-15 15:29:03 +09:00
Gerald Pfeifer 4a8d186bbc winebuild: Remove unused empty_name_table. 2014-07-28 17:21:58 -05:00
Alexandre Julliard 4e4acd5f70 winebuild: Generate position-independent code for ARM. 2014-02-12 19:15:02 +01:00
Alexandre Julliard f7272176d9 winebuild: Split the names of the as and ld commands to allow arguments. 2013-06-10 13:17:21 +02:00
Alexandre Julliard 2467c06a30 winebuild: Check for delayed import before the library is parsed, in case the real module name is different. 2013-04-01 14:32:36 +02:00
André Hentschel 4f1beed106 winebuild: Remove get_asm_short_keyword. 2013-03-11 11:44:57 +01:00
André Hentschel 0ee8e2b5b1 winebuild: Remove SPARC support. 2013-03-11 10:50:12 +01:00
André Hentschel 3f393a6552 winebuild: Add ARM64 support. 2013-01-16 12:37:39 +01:00
André Hentschel 220aeda3a0 winebuild: Create stubs for ARM. 2012-03-28 11:47:22 +02:00
André Hentschel c50f25e91b winebuild: Fill the delay slot on Sparc. 2011-12-02 12:15:31 +01:00
André Hentschel ac90c1bd18 winebuild: Simplify the ARM part of output_import_thunk. 2011-06-17 19:30:46 +02:00
André Hentschel cd9ff09d8e winebuild: get_asm_ptr_keyword is not needed for ARM. 2011-06-17 11:01:59 +02:00
André Hentschel 46f52f77dc winebuild: Remove Alpha support. 2011-04-20 13:11:27 +02:00
André Hentschel f901fa9769 build-env: Don't use 'exchange instruction set' instructions on ARM to fix build on ARMv6 e.g. Nokia N810. 2010-09-21 14:17:37 +02:00
André Hentschel bbfc0d1d64 winebuild: Fix ARM support. 2010-09-20 12:55:24 +02:00
Alexandre Julliard b116040771 winebuild: Add support for specifying thiscall calling convention. 2010-08-24 16:23:20 +02:00
Alexandre Julliard 4bfdad159b winebuild: Get rid of the ignored symbol support. 2010-08-02 12:55:19 +02:00
Alexandre Julliard b03059cbda winebuild: Add a spawn() helper function to avoid starting a shell where possible. 2010-08-02 12:55:12 +02:00
Alexandre Julliard 84f4046481 winebuild: Copy the strmake function from winegcc to simplify string formatting. 2010-08-02 10:11:23 +02:00
Alexandre Julliard eba56752fd winebuild: Add cfi annotations to the import thunk for i386. 2010-04-12 12:04:50 +02:00
Alexandre Julliard e550e8a100 winebuild: Add a wrapper function to output cfi directives. 2010-04-11 12:49:00 +02:00
Alexandre Julliard 10e4a55b6c winebuild: Output the asm relay functions as needed and get rid of --relay32 mode. 2010-01-16 15:50:27 +01:00
Alexandre Julliard b4c6433063 winebuild: Do not output an undefined symbol reference for variables. 2010-01-11 13:54:16 -06:00
Alexandre Julliard 054406f78c winebuild: Don't output private symbols at all when building an import library. 2009-12-30 12:50:17 +01:00
Alexandre Julliard 2fda3d6a17 winebuild: Add support for building Windows import libraries. 2009-12-30 12:49:19 +01:00
Alexandre Julliard c4c6fcaff7 winebuild: Don't check variables for undefined exports. 2009-12-29 16:09:34 +01:00
André Hentschel 27fb36b39e winebuild: Add ARM support. 2009-11-18 11:14:30 +01:00
Alexandre Julliard 873e027e01 winebuild: Add unwind annotations to all the generated functions for x86_64. 2009-06-16 14:26:51 +02:00
Alexandre Julliard b374e7e36e winebuild: Don't include any Windows header to avoid data types dependencies. 2009-04-09 20:58:43 +02:00
Alexandre Julliard cdad788d33 winebuild: Skip non-functions when building the undefined exports file. 2009-03-25 13:27:27 +01:00
Alexandre Julliard 49d2c208d8 winebuild: Ignore 16-bit absolute exports when checking for undefined symbols. 2009-03-04 14:08:35 +01:00
Alexandre Julliard 5599ac22c7 winebuild: Add support for generating stand-alone 16-bit modules.
This is done by wrapping them inside an empty 32-bit module.
2009-02-26 13:22:47 +01:00
Alexandre Julliard d07f67acbc winebuild: Determine the appropriate as/ld/nm commands at the time they are needed. 2009-02-04 19:31:54 +01:00
Alexandre Julliard 913354e75b winebuild: Fix delay load code to preserve stack alignment and save the correct registers. 2008-12-27 19:58:42 +01:00
Alexandre Julliard ce63574425 winebuild: Generate stub entry points for x86_64. 2008-12-16 12:20:30 +01:00
Maarten Lankhorst 1fcc33451a winebuild: Use ms-abi for delayed load stubs. 2008-11-25 12:33:22 +01:00
Alexandre Julliard 1abf809099 winebuild: Generate MS-style imports using the OriginalFirstThunk field. 2008-09-04 21:52:58 +02:00
Simon Richter 238e1868b2 winebuild: Fix import stub on ppc.
The address calculation was wrong, as the addition of the lower 16 bits
is a signed addition, so if bit 15 is set, the upper 16 bits need to be
incremented by one (so the hi portion of the symbol always references
the symbol + 0x8000).
2008-06-02 12:33:47 +02:00
Alexandre Julliard 195356c098 winebuild: Also optimize out imports that are only used for forwards. 2007-12-06 21:44:45 +01:00
Alexandre Julliard e6fe7341f5 winebuild: Improved checks for missing forward entry point targets. 2007-12-06 21:43:41 +01:00
Alexandre Julliard 32fc1acb1c winebuild: Print a warning when failing to import a data export. 2007-12-06 21:43:41 +01:00