Commit graph

795 commits

Author SHA1 Message Date
Alexandre Julliard a255dd1f3c winebuild: Stop generating syscall entry points. 2023-11-20 18:27:48 +01:00
Alexandre Julliard 48a5459827 ntdll: Generate syscall entry points from the C code with asm macros. 2023-11-20 18:08:27 +01:00
Alexandre Julliard e9afc9bf8f winebuild: Stop generating the syscall argument array and related data. 2023-11-17 10:17:50 +01:00
Alexandre Julliard b3895f5519 winebuild: Include x86-64 entry points in ARM64EC builds. 2023-11-13 11:36:34 +01:00
Alexandre Julliard 955664c80f winebuild: Add a helper to build an ARM64EC function name. 2023-11-13 11:36:34 +01:00
Jacek Caban 7b216b69c7 winebuild: Use COMDAT sections for ARM64EC functions. 2023-11-13 11:36:12 +01:00
Jacek Caban a0a2ef5a2b tools: Initial ARM64EC target support. 2023-11-13 11:36:12 +01:00
Alexandre Julliard 9a4e41c45d winebuild: Always use .balign for alignment.
It seems to be portable enough nowadays.
2023-10-20 11:59:26 +02:00
Alexandre Julliard 4e9f1a41b9 makefiles: Always use the global SOURCES variable for .man.in files. 2023-10-14 13:44:07 +02:00
Alexandre Julliard 945883438a winebuild: Add a helper to output an asm function header. 2023-10-10 23:15:05 +02:00
Alexandre Julliard 518e394794 winebuild: Set ASLR-related dll flags by default. 2023-09-25 22:47:03 +02:00
Alexandre Julliard cfaf09940a winebuild: Make the syscall thunks position-independent on ARM64. 2023-09-19 16:59:45 +02:00
Alexandre Julliard 40c1c498a9 winebuild: Add a few more SEH annotations. 2023-09-19 16:59:45 +02:00
Alexandre Julliard e3aa775a63 winebuild: Remove unnecessary .cfi_startproc/endproc annotations. 2023-09-19 14:27:17 +02:00
Alexandre Julliard 6828fc8b3a winebuild: Add a separate helper for .seh annotations. 2023-09-19 14:27:17 +02:00
Alexandre Julliard 04a74bdb50 winebuild: Add SEH information to relay entry points on ARM64. 2023-09-07 17:12:55 +02:00
Alexandre Julliard afb8d94e2f winebuild: Ignore syscalls that point to an alias. 2023-08-28 21:56:12 +02:00
Alexandre Julliard 7ee9c19687 ntdll: Also store syscall id and names following the syscall dispatcher pointer. 2023-08-25 22:52:45 +02:00
Alexandre Julliard bc2e4ea7e2 winebuild: Update target-dependent characteristics after option parsing. 2023-06-09 23:37:14 +02:00
Alexandre Julliard 320acdad05 winebuild: Set a 64-bit base address for generated 64-bit dlls. 2023-06-09 23:37:14 +02:00
Zebediah Figura 6bcfab4ca6 winebuild: Use the lretw mnemonic in wine_call_to_16().
We already use it in the __wine_spec_callfrom16_* functions.
2023-06-02 09:32:23 +02:00
Zebediah Figura 63a6f01a70 winebuild: Use segment prefixes in 16-bit stack switching code instead of writing out byte values.
Presumably at one point there were assemblers that choked on
these. However, currently we use segment prefixes elsewhere in
wine (namely, in the syscall dispatcher), and it seems fair to assume
that a sane compiler should support them.
2023-06-02 09:32:23 +02:00
Alexandre Julliard fddd7aab7c winebuild: Disallow floating point arguments in syscall functions. 2023-05-12 11:39:10 +02:00
Alexandre Julliard 921367fc57 winebuild: Only allow the stdcall calling convention for system calls. 2023-02-27 11:02:14 +01:00
Rémi Bernon 0b3f90ab14 winebuild: Use .incbin instead of printf for resource data. 2023-02-13 17:03:02 +01:00
Alexandre Julliard 8772b38494 tools: Make sure that config.h is included. 2023-01-30 09:31:32 +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 ae8797c8e3 tools: Add a common helper to setup signal handlers. 2023-01-25 11:47:51 +01:00
Alexandre Julliard ca398e2762 tools: Add a common helper to cleanup temp files. 2023-01-25 11:47:51 +01:00
Fan WenJie 7f62f7be87 winebuild: Only set thumb_mode on ARM targets.
Signed-off-by: Fan WenJie <fanwj@mail.ustc.edu.cn>
2023-01-20 15:59:09 +01:00
Alexandre Julliard bdc40b4b60 tools: Create a temporary directory to store temp files. 2023-01-12 14:47:39 +01:00
Alexandre Julliard cb86bb92d2 winebuild: Disable relay for non-standard fastcall parameters. 2022-12-16 17:08:10 +01:00
Alexandre Julliard df31d3c7fe winebuild: Use new ELF tag ids also on 64-bit.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53912
2022-12-16 10:42:01 +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 bef0969722 ntdll: Move the .so module initialization to winecrt0.
Use new ELF tag ids to avoid breaking backwards compatibility.
2022-12-04 22:00:43 +01:00
Alexandre Julliard c20741b33a winebuild: Reinstate the __wine_spec_dll_entry() entrypoint for .so dlls. 2022-12-03 16:24:45 +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 244e8fd357 winebuild: Enable unwind tables by default in PE files.
Making sure it also emits .cfi and .seh directives and generates unwind
tables for the delay import thunks.
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 9d1175a464 winebuild: Avoid calling asm_name twice in function arguments.
It returns a static buffer pointer and will free the first returned
pointer on the second call.
2022-11-04 21:53:54 +01:00