These DLLs are available out of the box on arm32 and arm64 since
Windows 11.
However these DLLs themselves are only the main interface (containing
the fallback, essentially unusable, OpenGL 1.1 GDI implementation);
without a separate ICD (installable client driver), it's near useless.
Currently (Dec 2021), such a driver (implementing OpenGL on top of
D3D12) is installable in the "OpenCL and OpenGL Compatibility Pack" in
Microsoft Store (but it's only available for regular third party
applications if you install the Windows Insider version of it).
And even then, it's not necessarily available for all architectures.
(In a brief test, it seems like the driver is available for i686 and
aarch64 processes, but not for x86_64 or armv7).
By providing these import libraries, we risk that people porting
software to Windows 10 on ARM accidentally end up making binaries that
use OpenGL, which don't load on Windows 10, only on Windows 11.
(Earlier, they got clear link errors showing that these libraries
really aren't available for these architectures.)
For some projects with existing support for Windows 10 on ARM, the
fact that OpenGL is unavailable is handled by entirely disabling
building of intermediate wrapper libraries such as glew or libepoxy;
then the main application only detects the presence of glew or
libepoxy, and disables OpenGL functionality if not found. (This has
been tested with VLC, where the glew dependency already is hardcoded
to not be built for these targets, so this doesn't change anything for
the build output of VLC.)
As an additional measure, one could consider adding version guards
in the OpenGL headers, making the declarations unavailable when
targeting an older version of Windows that don't have the functions.
That would allow applications to detect whether it's available or
not depending on what Windows version they target. However, that
doesn't seem to be necessary right now.
Signed-off-by: Martin Storsjö <martin@martin.st>
Normally, timespec_get is aliased to either _timespec32_get or
_timespec64_get via an inline function in time.h. But by providing
a fallback alias in the import library, configure scripts that try
linking the function without actually including time.h will also
succeed - we also have other similar aliases added in
42aa3325fc.
Signed-off-by: Martin Storsjö <martin@martin.st>
Removing the "case-sensitive" flag from a directory containing files
which only differ by case (e.g. "foo" and "Foo") is refused with the
status code STATUS_CASE_DIFFERING_NAMES_IN_DIR. This patch adds the
status code and it's Windows subsystem error code.
Signed-off-by: Corinna Vinschen <vinschen@redhat.com>
Signed-off-by: Jonathan Yong <10walls@gmail.com>
This makes it easier to sync in changes from dumps from newer versions
of the DLL.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Jonathan Yong <10walls@gmail.com>
This function seems to be undocumented (we don't have any declaration
of it in any header), but this is the form it gets dumped from current
user32.dll.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Jonathan Yong <10walls@gmail.com>
The new symbols are dumped from Windows 10 19043.
The current version of user32.dll there don't include all symbols
that are listed in our user32.def, but keeping them untouched for now.
This fixes building the latest dev branch of Qt for i686.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Jonathan Yong <10walls@gmail.com>
The attempt to use ntquery.def.in to #include query.def didn't work
correctly for lib32. For consistency, duplicate the version in
lib-common too.
Signed-off-by: Jeremy Drake <jeremyd2019@users.sourceforge.net>
Signed-off-by: Martin Storsjö <martin@martin.st>
There was a version already present as libquery.a for a couple of
arches, but the Windows SDK provides identical libquery.a and
libntquery.a, and the DLL on Windows 10 20H2 and 21H1 has much
fewer exports than the pre-existing def file.
Signed-off-by: Martin Storsjö <martin@martin.st>
Obtained from program that printed them out, linked to Windows SDK, and
then merging the output with the existing file. A few of the GUIDs in
ADSIid.h were undefined in ADSIid.Lib:
IID_IADsSchema
IID_IDirectoryAttrMgmt
IID_IDSAttrMgmt
IID_IDSObject
IID_IDSSearch
Signed-off-by: Jeremy Drake <jeremyd2019@users.sourceforge.net>
Signed-off-by: LIU Hao <lh_mouse@126.com>
This avoids linker conflicts if object files refer to both 'strtold'
or 'wcstold' and include them from libucrt*.a before other object
files pull in the __mingw_* counterparts.
Signed-off-by: Martin Storsjö <martin@martin.st>