Alexandre Julliard
921367fc57
winebuild: Only allow the stdcall calling convention for system calls.
2023-02-27 11:02:14 +01:00
Huw Davies
38a7145731
winebuild: Reorder the includes to avoid a build error on macOS.
...
"build.h" eventually includes <sys/queue.h> which contains a conflicting
definition of LIST_INIT.
2023-01-26 22:05:13 +01:00
Alexandre Julliard
ca398e2762
tools: Add a common helper to cleanup temp files.
2023-01-25 11:47:51 +01:00
Alexandre Julliard
1f5c288b4f
winebuild: Put the delay import thunk in a separate section.
...
To work around a binutils bug, cf. https://sourceware.org/bugzilla/show_bug.cgi?id=14339
2022-12-07 10:05:49 +01:00
Alexandre Julliard
4b59142f34
winebuild: Avoid quoting section names.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54060
2022-12-07 10:05:07 +01:00
Alexandre Julliard
de3c286adf
winebuild: Call __delayLoadHelper2 to resolve delay imports also on non-PE builds.
2022-11-29 19:11:19 +01:00
Alexandre Julliard
1181011c1e
winebuild: Pass the delay import descriptor to the __wine_spec_delay_load function.
2022-11-29 19:11:19 +01:00
Alexandre Julliard
a2d8e7a5d3
winebuild: Generate a separate helper for each delay-imported module.
2022-11-29 19:11:19 +01:00
Alexandre Julliard
0c39285077
winebuild: Use RVAs instead of absolute addresses in the delay import descriptors.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-11-29 19:11:19 +01:00
Alexandre Julliard
29060f3d78
winebuild: Add a helper function to output a thunk data pointer.
2022-11-29 19:11:19 +01:00
Alexandre Julliard
ac17191530
winebuild: Remove support for "hybrid" Unix libraries.
2022-11-11 12:07:41 +01:00
Rémi Bernon
2e5e5ade82
winebuild: Put the delay import descriptor in data section.
...
This fixes incorrect .text section flags for any module using delay
imports. The use of a custom .text$2 section as dlltool is doing causes
the section to be flagged as DATA, and ends up with the .text section
being writable, which triggers the anti tamper used in Forza Horizon.
2022-11-08 20:07:52 +01:00
Rémi Bernon
cfe83e80fc
winebuild: Fix import hint value for symbols imported by name.
...
This fixes incorrect hint values generated by dlltool: instead of the
index in the name table, it used the ordinal value, which almost always
ends up in a hint lookup failure and a fallback to binary search.
2022-11-08 20:07:52 +01:00
Rémi Bernon
6b9773529c
winebuild: Implement delay import lib generation without dlltool.
2022-11-08 20:07:52 +01:00
Rémi Bernon
103eb83156
winebuild: Implement import lib generation without dlltool.
2022-11-08 20:07:52 +01:00
Rémi Bernon
b9375920f9
winebuild: Introduce a new --without-dlltool winebuild flag.
...
Set it only when -Wl,--delay-load linker flag is not supported to keep using
dlltool in LLVM builds, for MSVC-like import libs.
2022-11-08 20:07:52 +01:00
Rémi Bernon
fd7cee3e31
winebuild: Split output_static_lib into output_(import|static)_lib.
2022-11-03 18:33:09 +01:00
Alexandre Julliard
31d2a87ba0
winebuild: Add GNU stack note also to the undefined symbols file.
...
Recent ld complains about this.
2022-07-20 22:33:44 +02:00
Alexandre Julliard
d969d02e21
tools: Move target CPU and platform handling to the common tools.h header.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-18 11:50:30 +01:00
Alexandre Julliard
61e210f196
winebuild: Get rid of PowerPC support.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-18 11:16:19 +01:00
Alexandre Julliard
414e1c8ad5
winebuild: Avoid resolving standard C functions with static importlibs.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:19:33 +01:00
Alexandre Julliard
32cfdb5496
winebuild: Escape invalid characters in the dll name for static import libraries.
...
This is necessary for things like vulkan-1.dll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 16:44:19 +01:00
Martin Storsjö
77e9095435
ntdll: Remove stack gap in syscalls on arm.
...
Store the original stack pointer (on entry to the syscall dispatcher)
in syscall_frame; the stack pointer itself is incremented by
"pop {r0-r3}" right before calling the syscall itself.
This fixes unwinding from functions set up by syscalls, like
KiUserExceptionDispatcher.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:56 +01:00
Alexandre Julliard
f9ee0d2f05
tools: Avoid using wine/port.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Alexandre Julliard
9e3959bd9b
tools: Add a few helper functions for file names and extensions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:11 +02:00
Alexandre Julliard
c878a0a4c0
winebuild: Use strarrays for the argument lists.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 14:45:39 +02:00
Alexandre Julliard
d6d5a21721
winebuild: Unify the strarray implementation with the one from makedep.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-23 14:45:39 +02:00
Alexandre Julliard
ea6308e364
ntdll: Declare the syscall functions array explicitly.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Alexandre Julliard
7ae1c396ac
ntdll: Store the syscall argument table on the PE side.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Alexandre Julliard
3513a176fd
winebuild: Add an option to set the syscall table id.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-30 22:49:58 +02:00
Alexandre Julliard
ff04d8a4c2
ntdll: Move the syscall dispatcher implementation to the platform-specific files.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 11:25:38 +02:00
Alexandre Julliard
847db3c1d3
ntdll: Store the syscall table in the syscall frame on all platforms.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 10:47:38 +02:00
Alexandre Julliard
77f5e2963f
ntdll: Store the syscall flags in the syscall frame on all platforms.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 10:47:38 +02:00
Alexandre Julliard
94f63ea23f
ntdll: Add support for user callbacks.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 18:16:43 +02:00
Martin Storsjo
9d619b1fb0
winebuild: Spell out "x30" instead of "lr" for arm64.
...
This fixes building with older binutils versions.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-02 11:31:48 +02:00
Alexandre Julliard
216d241178
winebuild: Save/restore the %fs register in the syscall dispatcher on Linux.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-06 15:50:26 +02:00
Alexandre Julliard
db26df5934
ntdll: Go through the syscall return path for syscall faults.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-21 18:35:20 +02:00
Alexandre Julliard
0702d6b886
ntdll: Don't allow single-stepping through syscalls.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51273
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-16 15:05:24 +02:00
Alexandre Julliard
7954b86f6b
ntdll: Switch to the kernel stack for syscalls on ARM.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 18:45:44 +02:00
Alexandre Julliard
08c4419a49
ntdll: Switch to the kernel stack for syscalls on ARM64.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 18:45:44 +02:00
Alexandre Julliard
25b093f384
ntdll: Switch to the kernel stack for syscalls on x86-64.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 18:45:44 +02:00
Alexandre Julliard
308a5e7c4d
ntdll: Switch to the kernel stack for syscalls on i386.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-11 15:49:29 +02:00
Alexandre Julliard
050378d4d7
ntdll: Only restore the modified parts of the syscall frame on i386.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-07 17:16:21 +02:00
Alexandre Julliard
32f1bfd0f0
ntdll: Only restore the modified parts of the syscall frame on x86-64.
...
Based on a patch by Jacek Caban.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-07 17:16:21 +02:00
Alexandre Julliard
42e42e9085
ntdll: Use a single syscall dispatcher controlled by global flags on i386.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-02 20:16:07 +02:00
Alexandre Julliard
3d9cb5e4f8
ntdll: Use a single syscall dispatcher controlled by global flags on x86-64.
...
Based on a patch by Jacek Caban.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-02 20:16:07 +02:00
Alexandre Julliard
e79fa1866c
winebuild: Add support for multiple syscall descriptor tables.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-28 21:53:07 +02:00
Alexandre Julliard
543e49397f
winebuild: Store all parameters on the stack for syscall thunks on ARM.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:13:18 +02:00
Jacek Caban
e979ee96b6
ntdll: Use xsave compaction in syscall dispatcher.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-03 21:54:45 +01:00
Jacek Caban
af74bd3122
ntdll: Use syscall dispatcher to restore context in NtSetContextThread.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-02 20:41:39 +01:00