Commit graph

1315 commits

Author SHA1 Message Date
Brendan Shanks
9ab93415f7 loader: In macOS preloader, manually set 'environ' to work around a bug in macOS 12 and later.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54009
2022-12-01 10:25:19 +01:00
Brendan Shanks
588e555425 loader: In macOS preloader, fix up argc/argv in C rather than asm. 2022-12-01 10:25:19 +01:00
Brendan Shanks
4ec770a139 loader: Add comments to 'start' in macOS preloader. 2022-12-01 10:25:19 +01:00
Piotr Caban
b7d7b23a61 winprint: Add stub dll. 2022-11-21 18:03:53 +01:00
Martin Storsjö
f760976803 ntdll: Add ARM EHABI unwind instructions in assembly functions.
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.
4d779f55c0.
(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>
2022-11-07 10:28:18 +01:00
Gerald Pfeifer
699067ae14 loader: Unbreak FreeBSD builds (ARRAY_SIZE undefined).
Commit af996344a8 used ARRAY_SIZE in
FreeBSD-specifc code which, alas, is not available here, so revert
that change.
2022-10-31 12:11:55 +01:00
Michael Stefaniuc
af996344a8 loader: Use ARRAY_SIZE instead of open coding it. 2022-10-25 10:58:49 +02:00
Paul Gofman
e0d8bd3f5a loader/wine.inf: Add runas shell execute verb.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
2022-07-19 20:05:47 +02:00
Jinoh Kang
38dfa2f455 loader: Fix return type of get_auxiliary().
This is required for fetching pointer-valued vectors (e.g.
AT_SYSINFO_EHDR).

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2022-07-04 20:14:02 +02:00
Alexandre Julliard
3ec7c467cd make_unicode: Generate the time zone registry keys.
Based on a script written by Giovanni Mascellani.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-06-24 21:05:26 +02:00
Giovanni Mascellani
622befd2a9 loader/wine.inf: Update time zone data.
New time zone data were generated from CLDR release 41 and tzdata
release 2022a.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-28 12:50:18 +02:00
Alexandre Julliard
989f7d6481 make_unicode: Generate the language groups registry keys.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-24 23:22:06 +01:00
Alexandre Julliard
8cdb593f5a make_unicode: Generate locale.nls using the Unicode CLDR data.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 14:28:09 +01:00
Alexandre Julliard
2b963bf519 mlang: Register MIME charsets from the registry script.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-18 17:22:02 +01:00
Alexandre Julliard
8adebaaab7 mlang: Use a registry script to register codepages.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-18 17:22:02 +01:00
Zhiyi Zhang
ccc2c6c613 wine.inf: Enable Light theme by default.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:17:25 +01:00
Esme Povirk
ee6bee6a45 diasymreader: Add stub dll.
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-31 18:38:54 +01:00
Arkadiusz Hiler
2f2aba45dd hidclass.sys: Add input.inf that matches all HID devices.
This makes it so that all the devices on the HID bus now have Class,
ClassGUID, Driver and DriverDesc register properties populated.

Without having at least Driver and Class set SDL2 refuses to use HID
devices directly.

Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-28 21:10:21 +01:00
Rémi Bernon
0c88a52440 wine.inf: Start EventLogService on prefix initialization.
The service has StartType=2, and should start automatically.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 18:02:49 +01:00
Rémi Bernon
b0ca06efd1 wine.inf: Start PlugPlay service on prefix initialization.
Device drivers may be installed and started on prefix initialization but
if PlugPlay is missing they won't be able to send plugplay notifications
until the prefix is restarted.

The service has StartType=2, and should start automatically.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 18:02:28 +01:00
Giovanni Mascellani
929face084 wine.inf: Regenerate time zones.
Unicode CLDR release 40 and tzdata 2021e were used.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-21 13:32:08 +01:00
Alexandre Julliard
e3001b6a7c configure: Assume that sys/mman.h is available on Unix.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 18:43:51 +01:00
Loïc Rebmeister
2173d2dcc8 loader: Create performance\winsat\datastore on prefix creation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51968
Signed-off-by: Loïc Rebmeister <fox2code@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-04 17:54:34 +01:00
Alistair Leslie-Hughes
48cc6ce421 msdasql: New DLL.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 21:18:42 +02:00
Damjan Jovanovic
f5e51cfc55 loader: 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
28d7d5ba93 loader: Avoid including wine/port.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 16:16:07 +02:00
Giovanni Mascellani
3f54e5c0b2 wine.inf: Fix timezone data for Samoa.
This particular bug involved a DST offset of -25 hours, which broke
Mono.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51758
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:59 +02:00
Giovanni Mascellani
dc9165895e wine.inf: Fill gaps in Dynamic DST timezone data.
Microsoft data is contiguous, and there applications (e.g., Mono) that
depend on that.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51758
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:41:55 +02:00
Alexandre Julliard
cd37863832 loader: Start the mount manager before registering dlls.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 13:08:19 +02:00
Alexandre Julliard
0f284520ec wineboot: Add a generic mechanism for pre-installing things before the main wine.inf section.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-17 12:57:24 +02:00
Giovanni Mascellani
c825fc45be tzres: Take timezone display names from Unicode CLDR database.
The name from CLDR is made available both in the Display and MUI_Display
fields, reproducing the Windows behavior.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-07 23:19:22 +02:00
Giovanni Mascellani
3e370f761a tzres: Regenerate TZ data from de facto standard sources.
The sources used to regenerate data are:

 * The Olson database, tracing all world time zone changes since 1970,
   widely used under Unix systems and dedicated to the public domain.

 * Unicode CLDR's windowsZones.xml, used by Windows itself as source
   for naming timezones and providing the correspondance with the
   Olson zones. It is licensed under a MIT-styled license.

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-07 23:19:22 +02:00
Rémi Bernon
61e217c40a winexinput.sys: Introduce a new winexinput.sys driver.
Currently only acting as a pass-through driver, matching any device with
a WINEBUS\WINE_COMP_XINPUT compatible id.

This creates new WINEXINPUT\ bus and the gamepad PDO on it, adding the
&IG_ device id suffix to the original device id (replacing an eventual
&MI_ suffix), and removes the need to set it on winebus.sys side.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-02 21:57:38 +02:00
Martin Storsjö
29922c2276 loader: Add support for ARM linux in the preloader.
Since 28fe84da45, the main exe image
must be mappable at its desired base address, which essentially
requires the preloader.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51539
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-05 23:11:23 +02:00
Rémi Bernon
23d2d0c5a7 wine.inf: Consistently quote shell open and print commands.
Sometimes the program path is quoted, sometimes it isn't, same for the
file argument. This can cause issues when there's spaces in the path.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 16:33:49 +02:00
Huw Davies
87e43b8eaf loader: Add tag ids to ensure nsiproxy.sys starts before ndis.sys.
This will be needed as ndis.sys depends on iphlpapi which will
in turn depend on nsi.

Note that this isn't quite how the tags are supposed to work.  The
tags should be ordered according to the load group's order list.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 19:55:22 +02:00
Huw Davies
393e953b31 nsiproxy: Create the nsi device.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-29 19:55:22 +02:00
Zhiyi Zhang
062ef9f68e light.msstyles: Add Classic Blue visual style.
Classic Blue is a visual style that uses blue as the main color and doesn't have bitmaps for UI
controls.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-23 18:48:32 +02:00
Francois Gouget
a1bae9f288 make_unicode: Add support for the 720 codepage (Arabic, Farsi and Urdu).
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-08 22:28:44 +02:00
Shawn M. Chapla
2a667e28ba wine.inf: Don't use DDE for winebrowser by default.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Hans Leidekker
8a9c3b1e54 secur32: Load the MSV1_0 provider instead of using builtin support for NTLM.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-30 22:59:50 +02:00
Alexandre Julliard
2801d6341c makefiles: Install Unix binaries into an architecture-specific directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-28 11:40:39 +02:00
Zebediah Figura
03dcb36979 wine.inf: Install the protocol database at etc\protocol.
Unlike Unix, on Windows the file name is not plural.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Alexandre Julliard
a1bba82861 wine.inf: Don't install 64-bit only programs in syswow64.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 12:07:51 +02:00
Alexandre Julliard
a7a1e2643a wine.inf: Fix the Tcpip database path.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50318
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-15 17:30:50 +02:00
Alexandre Julliard
50c40b913a ws2_32: Install network database files.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=12076
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-15 17:30:50 +02:00
Alexandre Julliard
ee13ab0f02 wine.inf: Also install start.exe in syswow64.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50867
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-11 12:47:44 +02:00
Alexandre Julliard
b28c8b69b3 wine.inf: Store extensions in lower case in PATHEXT.
This is less likely to require a case-insensitive search.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-29 18:42:46 +02:00
Alexandre Julliard
fcb37c9c12 wine.inf: Always install start.exe in system32.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50867
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-29 12:22:55 +02:00
Alexandre Julliard
36cec2c7df wine.inf: Fix 64-bit driver installation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-25 12:48:48 +01:00