Commit graph

6039 commits

Author SHA1 Message Date
Alexandre Julliard
37c0f5c690 makefiles: Substitute all defined variables in the main makefile.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-10 13:44:44 +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
Martin Storsjö
aa256deedd winedump: Rewrite dumping of packed ARM unwind info.
This differs slightly from the official docs (which is clear in some
places, vague in others, and contradictory in some places), based
on actual observed behaviour.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:56 +01:00
Martin Storsjö
ae7979a42d winedump: Fix printing of the prologue version of the "ldr lr, [sp], #offset" opcode.
This isn't mentioned in the documentation (which only writes out the
instruction that is executed while unwinding, i.e. the mirror form of
it), but a prologue version of this instruction would look like this.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:55 +01:00
Martin Storsjö
22d2b61a64 winedump: Distinguish between 16 and 32 bit nop opcodes in ARM unwind data.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:55 +01:00
Martin Storsjö
825e8d8105 winedump: Print the whole multibyte unwind opcode for arm.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:55 +01:00
Eric Pouech
27b7a96d9b winedump: Fix computation of signed integers in codeview symbol's annotations.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 21:00:57 +01:00
Martin Storsjö
9e9509f307 winebuild: Fix relay entry points in Thumb mode with binutils/ELF and LLVM/PE.
b1fe783ade fixed relay entry points
in Thumb mode when assembled with Clang/LLVM in ELF mode, but broke
them when assembled with binutils as (and PE mode with LLVM didn't
work either before or after).

When/where the thumb bit is applied on symbols varies a lot between
assemblers; this is a notoriously vague and undocumented area.

After a .thumb_func directive, binutils as considers the next
non-local symbol as a thumb symbol, to have the thumb bit set.
LLVM's built-in assembler considers the next symbol, local or not,
to be a thumb symbol. (Just noting for reference for possible
solutions, this particular difference didn't play a role so far.)

Secondly, in a symbol difference expression like this:

    .long symbol1 - symbol2

Binutils as ignores the potential thumb state for both symbols and
just calculates the raw distance. LLVM does include the thumb bit
in symbol1 but ignores it in symbol2.

Finally, for PE targets, the linker sets the thumb bit on all
absolute addresses pointing to the text section, regardless of any
.thumb_func directives at assembly time. (I.e., the
__wine_spec_relay_entry_points entry in .L__wine_spec_relay_descr
gets the bit set even if it wasn't marked as .thumb_func.)

Therefore, mark __wine_spec_relay_entry_points as .thumb_func, as
the absolute address to it will end up with the thumb bit set in
PE builds in any case.

Don't mark the individual relay entry pointers as thumb functions
(the code still is generated as thumb as there hasn't been any
mode switch back to arm mode); this makes the differences calculated
correctly (both LLVM and binutils ignore the thumb state of the
subtracted label).

If desired, one could change __wine_spec_relay_entry_point_%d into
local labels with a .L prefix, just as before
b1fe783ade again, it doesn't make
any difference in this form.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 11:58:42 +01:00
Eric Pouech
d33ff5d888 mscvpdb.h: Update some line number oriented definitions.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
23fe1ad987 winedump: Also dump library name for a module.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
f64c6e611b winedump: Dump index leaves (TPI).
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
fd959ef060 mscvpdb.h: Add definition for friend function v3.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
1131b32685 winedump: Add some missing next record computation for type leaf.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
f0b8518333 mscvpdb.h: Update symbol header for linetab2's block size.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Huw Davies
be59553410 wmc: Remove struct and enum typedefs.
This has the side effect of fixing the build on macOS after
commit 2c1b815363.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-26 10:39:34 +02:00
Alistair Leslie-Hughes
d09d4d97e0 cng.sys: New dll.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48981
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:53:31 +02:00
Damjan Jovanovic
f01b028d58 wrc: Use sysctl instead of /proc/curproc/file on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
2c1b815363 wmc: Use sysctl instead of /proc/curproc/file on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
c1e83ae9fb winegcc: Use sysctl instead of /proc/curproc/file on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
6d67748154 widl: Use sysctl instead of /proc/curproc/file on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Alexandre Julliard
30fb17bda0 makefiles: Add support for importing PE system libraries using the -l option.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:05:07 +02:00
Alexandre Julliard
d1248c8a0c makefiles: Don't try to link a library to itself.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:04:11 +02:00
Alexandre Julliard
5a8f7d1f74 winebuild: Wrap 16-bit fake dlls in a PE module.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51564
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-21 14:53:32 +02:00
Alexandre Julliard
2f0401c783 winebuild: Add a more generic way to create directories and sections in fake dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-21 14:03:54 +02:00
Francois Gouget
c35b41a3f2 wrc: Add a trailing linefeed to a couple of error() messages.
Unlike most of the other wrc error functions, error() does not append a
trailing linefeed.

Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 18:58:29 +02:00
Nikolay Sivov
992e0a6045 dwrite: Add properties for new Unicode 13 scripts.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 16:01:34 +02:00
Alexandre Julliard
d208b29d10 winecfg: Store the logo image in PNG format.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 15:56:01 +02:00
Alexandre Julliard
a1be6b475d makefiles: Don't pass warning flags to external libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:23 +02:00
Alexandre Julliard
a4b01382e1 makefiles: Add support for building libraries imported from external sources.
Based on a patch by Rémi Bernon.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:07 +02:00
Alexandre Julliard
339950a781 configure: Don't define _WIN32 for Cygwin builds.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-14 11:07:56 +02:00
Eric Pouech
768bb93fd7 winedump: Dump MSC's S_UNAMESPACE entries.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Eric Pouech
bad368750e winedump: Fix incorrect alignment.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Jacek Caban
5740b091b9 make_unicode: Update vertical.c path.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 21:57:12 +02:00
David Kahurani
3dea31ed06 winedump: Remove a FIXME.
It is not considered worthwhile freeing memory in short-lived
programs

Signed-off-by: David Kahurani <k.kahurani@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:29:22 +02:00
Alexandre Julliard
1699847dad makefiles: Only build static libraries that are needed for linking.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:57:24 +02:00
Brendan Shanks
54d51df668 api-ms-win-core-realtime-l1-1-1: Add stub DLL.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02: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
518f9a12c1 makefiles: Use the STATICLIB variable for static import libraries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
c60d604544 makefiles: Remove libwine_port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
207068c48c tools: Move some portability defines out of port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
5f921c7f1b make_xftmpl: Avoid using getopt().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
e0ef12241b sfnt2fon: Avoid using getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
3eb1855c7e winebuild: Avoid using getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
3b0540edd0 wrc: Avoid using getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
7420715b99 wmc: Avoid using getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
4bc52e3324 widl: Avoid using getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
9c4cbde78f tools: Implement a replacement for getopt_long().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Jacek Caban
d5c585c6aa makedep: Don't use -fno-builtin for importlibs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:23 +02:00
Jacek Caban
63e6eaedee makedep: Use -fno-builtin for CRT DLLs on PE targets.
Just like we do for other targets with cross compiler enabled. Fixes
PE-only i686 build with llvm-mingw, which otherwise uses unexpected
optimizations.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:17 +02:00
Nikolay Sivov
73686845d1 widl: Allow [hidden] and [version] on modules.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:49:59 +02:00