- 07 Nov, 2022 4 commits
-
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
Martin Storsjö authored
This avoids relying on libunwind, which isn't always available, and which can be brittle (e.g. current git master of libunwind fails, see https://github.com/libunwind/libunwind/pull/203#issuecomment-984126066). This allows unwinding with the EXIDX/EXTBL info which is used normally for C++ exception handling/unwinding. This avoids needing to keep the .so files unstripped and avoids needing libunwind to load .debug_frame from disk instead of the already mapped EXIDX/EXTBL. This patch uses the dl_iterate_phdr function for finding the EXIDX section; keeping this call within #ifdef linux to avoid breaking someone's build, even though it probably is available on most unix (or ELF) platforms. Alternatively, we could add configure checks for this function. This passes all my unwinding tests, for full ELF builds of Wine, built with both GCC and Clang. (It also works for PE builds, where only very few ELF bits need to be unwound.) Signed-off-by: Martin Storsjö <martin@martin.st>
-
Martin Storsjö authored
On most ELF platforms on ARM, ARM EHABI is the unwind info format normally used, instead of DWARF like on most other platforms. Currently, when unwinding through ELF objects with libunwind, the libraries don't have any .eh_frame section mapped at runtime (since DWARF isn't used for unwinding). Instead, what happens is that libunwind ends up loading .debug_frame from the libraries on disk instead. Therefore, currently, ELF unwinding relies on the .so files not being stripped. This patch adds the necessary EHABI unwinding instructions in the assembly functions that currently have DWARF CFI instructions. EHABI isn't signaled via any specific preprocessor macro, but is signaled by the absence of other unwind mechanisms (such as __ARM_DWARF_EH__ and __SEH__, or maybe SjLj). Mark the asm functions in the preloaders as .cantunwind, to avoid undefined references to __aeabi_unwind_cpp_pr* functions. Also mark other assembly functions as .cantunwind; for signal_exit_thread this is essential if the function is marked with .fnstart/.fnend - otherwise exiting threads does hang. (pthread_exit internally calls _Unwind_ForcedUnwind, which would hang if signal_exit_thread had .fnstart without any matching unwind info). This would, in principle, allow unwinding through these functions with libunwind, for versions of libunwind that can parse the EHABI unwind info - see e.g. https://github.com/libunwind/libunwind/commit/4d779f55c0d0a3814453517e54cd0f7bed69ca74. (This commit isn't yet in any current release AFAIK). Unwinding with EHABI via libunwind would require a few tweaks to the libunwind interface usage in unix/signal_arm.c though, since e.g. the unw_get_proc_info call fails if there's no .eh_frame or .debug_frame available. Signed-off-by: Martin Storsjö <martin@martin.st>
-
- 04 Nov, 2022 36 commits
-
-
Rémi Bernon authored
It returns a static buffer pointer and will free the first returned pointer on the second call.
-
Jinoh Kang authored
This change is adding DWARF (CFI) unwind information to the hand-written assembly of the `__wine_syscall_dispatcher` function. This enables unwinding through the dispatcher from the Linux stack into (and through) the Windows stack. The general idea is that the `syscall_frame` struct contains the content of the callee-save registers before the function call (in particular the stack pointer and the return address). At any point of the execution, we have a pointer into the `syscall_frame` in $ebx, $ecx, $ebp, or $esp. For the CFI codes the general idea is that we are defining the computations of the callee-save registers based on the `syscall_frame` using DWARF’s `breg` instruction, rather than relative to CFA.
-
Jinoh Kang authored
-
Paul Gofman authored
-
Paul Gofman authored
-
Paul Gofman authored
-
Jinoh Kang authored
This partly reverts e42eaaaf. Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
-
Jinoh Kang authored
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53153Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
-
Jinoh Kang authored
Skip redrawing the composited child window when the window rect and visible region stays the same, since we're taking the union of the old and new visible regions. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53153Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
-
Jacek Caban authored
-
Jacek Caban authored
-
Jacek Caban authored
-
Jacek Caban authored
-
Jacek Caban authored
Static arrays need only output conversion and output conversion is the same for static and dynamic arrays.
-
Jacek Caban authored
And get rid of _generate_static_array_conversion_func.
-
Jacek Caban authored
Fixes -Wenum-conversion warning when VkDebugReportObjectTypeEXT is used as a type.
-
Jacek Caban authored
-
Zhiyi Zhang authored
Support _NET_WM_FULLSCREEN_MONITORS for fullscreen windows spanning multiple monitors. This property is used to hint window managers about which monitor a fullscreen window should cover. Window managers make a fullscreen window spanning multiple monitors cover only one monitor when this property is missing. Fix Project Cars 2/3 incorrect game window size when the triple-screen mode is on.
-
Zhiyi Zhang authored
-
Zhiyi Zhang authored
-
Zhiyi Zhang authored
-
Rémi Bernon authored
-
Rémi Bernon authored
-
Rémi Bernon authored
-
Rémi Bernon authored
-
Rémi Bernon authored
-
Evan Tang authored
Adobe Reader XI patches NtAddAtom() and expects the name to be null-terminated Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53872
-
Ziqing Hui authored
This fixes Chinese and Japanese text display issue for Sins of a Solar Empire: Rebellion.
-
Ziqing Hui authored
-
Ziqing Hui authored
-
Ziqing Hui authored
-
Alex Henrie authored
-
Alex Henrie authored
-
Paul Gofman authored
-
Paul Gofman authored
-
Paul Gofman authored
-