Commit graph

6161 commits

Author SHA1 Message Date
Brendan Shanks
7b27e60e67 makefiles: On macOS, use @rpath instead of @loader_path when building Unix libs.
Fixes launching 32-bit EXEs from a WOW64 build dir.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52618
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-08 09:32:37 +01:00
Zebediah Figura
9951f2f433 makedep: Do not forbid importing system headers in msvcrt modules.
The apparent intention of catching mistakes early is laudable. However, the
number of exceptions both in the code and not in the code (in particular,
valgrind.h) shows that this is clearly getting in the way more often than not.

In practice an attempt to compile with a system API we don't support will be met
with a clear error at link time, e.g.:

/usr/bin/x86_64-w64-mingw32-ld: dlls/xmllite/reader.cross.o: in function `debugstr_nodetype':
/home/whatsit/git/wine64/../wine/dlls/xmllite/reader.c:116: undefined reference to `pthread_once'

And when there is no external function involved (as with stdarg.h, x86intrin.h,
valgrind.h), there's no reason to prevent use of the headers.

The motivation for this patch is the ability to import system vkd3d.h in e.g.
d3d12 and dxgi, which do not link to libvkd3d directly (but rather indirectly
through wined3d) and so do not fall under the has_external_import() exception. I
could see no simple way to adapt has_external_import() to account for this case.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:02:24 +01:00
Alistair Leslie-Hughes
3f942a32c3 widl: Support basic BYTE type.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-04 10:01:32 +01:00
Bernhard Kölbl
6555201716 widl: Allow multiple uses of the activatable attribute.
Signed-off-by: Bernhard Kölbl <besentv@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 20:17:25 +01:00
Alexandre Julliard
603130cc38 winebuild: Align raw data size instead of virtual size in PE sections.
Use the aligned size to set code/data sizes.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-02 10:54:10 +01:00
Alexandre Julliard
bf8c5afef1 api-ms-*: Get rid of the apiset placeholder files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-23 10:23:53 +01:00
Rémi Bernon
3e16b37475 widl: Support declaring multiple namespaces at once.
Using the namespace A.B.C {} syntax, used in a few some places in WinRT
IDLs.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-22 18:20:22 +01:00
Alexandre Julliard
8a3064899a winebuild: Add support for building apiset data.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 22:10:20 +01:00
Alexandre Julliard
6f1fd16f92 winedump: Add dumping of the .apiset PE section.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 11:03:22 +01:00
Alexandre Julliard
4a5a3ba702 kernel32: Move some more console functions to kernelbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 11:03:22 +01:00
Alexandre Julliard
1c2e3fc68a makedep: Add support for winebuild --data-only option.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-16 22:05:33 +01:00
Alexandre Julliard
1662af11a4 winegcc: Add support for winebuild --data-only option.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-16 22:05:33 +01:00
Alexandre Julliard
39f6ab55a9 winebuild: Add support for generating data-only DLLs.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-16 22:05:33 +01:00
Alexandre Julliard
3eca3516ad secur32: Add stubs for DeleteSecurityPackageA/W.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-16 21:43:46 +01:00
Alexandre Julliard
b331ffcded api-ms-*: Forward to cryptsp instead of advapi32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:49 +01:00
Alexandre Julliard
23791eb11d api-ms-*: Forward to sechost instead of advapi32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:45 +01:00
Alexandre Julliard
c239f38db4 api-ms-*: Forward to cfgmgr32 instead of setupapi.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:41 +01:00
Alexandre Julliard
e2187d4fe1 api-ms-*: Forward to shcore instead of shell32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:37 +01:00
Alexandre Julliard
6e90c16e17 api-ms-*: Forward to shcore instead of shlwapi.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:33 +01:00
Alexandre Julliard
21536c066a api-ms-*: Forward to combase instead of ole32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:29 +01:00
Alexandre Julliard
7df8967358 api-ms-*: Forward to kernelbase instead of version.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:25 +01:00
Alexandre Julliard
eb84ed07d9 api-ms-*: Forward to kernelbase instead of user32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:21 +01:00
Alexandre Julliard
485f7003e6 api-ms-*: Forward to kernelbase instead of shlwapi.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:17 +01:00
Alexandre Julliard
84ac2e6abf api-ms-*: Forward to kernelbase instead of advapi32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:12 +01:00
Alexandre Julliard
ae5ebeaff9 api-ms-*: Forward to kernelbase instead of kernel32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 22:59:08 +01:00
Alexandre Julliard
0c095ccc2d make_specfiles: Move some ApiSet dlls to the ntdll section.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 17:17:42 +01:00
Alexandre Julliard
ef83ca1678 make_specfiles: Sort the ApiSet dlls by name.
To make it easier to find a specific one.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-15 16:34:17 +01:00
Stefan Dösinger
e5041acfa2 makedep: Fix some signed vs unsigned msvc warnings.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:33 +01:00
Alexandre Julliard
62f9bd39a2 tools: Consistently use xmalloc/xrealloc/xstrdup everywhere.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 20:24:14 +01:00
Alexandre Julliard
78ef8cf443 wrc: Use compare_name_id() for resource translations.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 20:24:14 +01:00
Alexandre Julliard
2c42d8b9a5 winebuild: Store length of Unicode strings explicitly.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 20:24:14 +01:00
Alexandre Julliard
7d3938e811 make_xftmpl: Use the standard output buffer routines.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-08 20:24:14 +01:00
Andrey Gusev
0894a4ad48 api-ms-win-security-lsalookup-ansi-l2-1-0: Add dll.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-07 13:53:31 +01:00
Kevin Puetz
ccf7b4459b winegcc: --out-implib needs to propagate -m32/-m64 to winebuild.
This was already passed through for linking, and for spec.o files,
but was overlooked when implementing -Wl,--out-implib

Signed-off-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-04 09:48:05 +01:00
Alexandre Julliard
26a3472b34 makefiles: Disable printf format warnings for non-PE msvcrt modules.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 21:09:19 +01:00
Alexandre Julliard
0c0e8b576e makefiles: Force -Wformat for PE modules when using 'long' types.
Suggested by Eric Pouech.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:40:44 +01:00
Alexandre Julliard
f0cd33c69e include: Add support for defining Win32 types as 'long' where possible.
Add -DWINE_NO_LONG_TYPES to modules that still have compilation
warnings with long types.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 20:38:22 +01:00
Alexandre Julliard
ae2693e2c4 include: Use long type by default in GUID definition.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-27 17:56:07 +01:00
Rémi Bernon
21fa9fa36a widl: Fix sign handling in parameterized types signatures.
Unspecified sign should be mapped to signed integer / char.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Rémi Bernon
1af44e2670 widl: Use "string" for HSTRING in signatures for generated UUID.
Fixes the UUID of IVectorView<HSTRING*> to match MIDL for instance.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Rémi Bernon
1f2614c60b widl: Fix nested parameterized types C / short name output.
We append type->name from each parameter when constructing the c_name
of parameterized type. When the parameter is itself a parameterized type
this field contains C++-like name, with template brackets.

Instead this precomputes the names of parameterized types whenever they
are used as a parameter. In this case the format is the same as the C
name, except that __C is used as a namespace separator, instead of _C,
and that there's no namespace or abi prefix included.

Shorthands need to be applied too, altough they have to match the __C.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Rémi Bernon
b2a1e381d8 widl: Clarify declaration type names vs (reference) type names.
Declaration type names prefer unqualified names whereas reference type
names prefer fully qualified names.

This makes C++ code use fully qualified names when referencing a type,
fixing cases where types from other namespaces are used. It also allows
to skip the enum / struct / union type prefix in WinRT C++ code.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Rémi Bernon
86c565cf0e widl: Do not generate C++ enum typedefs in WinRT mode.
MIDL generates enum typedefs without a prior type declaration, as well
as using explicit enum underlying type specifier. None of this is
supported in MinGW.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Bernhard Kölbl
64d5feb4ce widl: Add support for the [overload] attribute.
The attribute is used by WinRT and doesn't have any
effect on the generated headers.

Signed-off-by: Bernhard Kölbl <besentv@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 20:50:49 +01:00
Alexandre Julliard
7d7322671c server: Define a server-side structure for LUID_AND_ATTRIBUTES.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 11:55:40 +01:00
Huw Davies
f8adbf35ca widl: Remove the uuid_t typedef which causes conflicts on macOS.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-25 09:27:15 +01:00
Alexandre Julliard
a7f0e61e6c widl: Avoid using Windows types where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 12:27:47 +01:00
Alexandre Julliard
dbfdcb13ff wrc: Avoid using Windows types where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 12:27:42 +01:00
Bernhard Kölbl
22d27236ce widl: Allow optional interface parameter on the [activatable] attribute.
As per MIDL 3.0. Needed for some WinRT runtime classes.

Signed-off-by: Bernhard Kölbl <besentv@gmail.com>
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-24 10:10:52 +01:00
Alexandre Julliard
c09a5da157 wrc: Add a workaround for older bison versions.
Bison < 3.6 doesn't apply api.prefix to YYEMPTY.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-21 23:38:08 +01:00