Andrey Semashev
65b9c99a67
Add explicit type casts for arguments of Interlocked* intrinsics.
...
This allows to use any compatible types with INTERLOCKED_* macros, not just
the ones strictly matching the particular implementation of the intrinsics.
In particular, this fixes compilation for Cygwin64, which is an LP64 target,
meaning that long is 64-bit and _Interlocked* intrinsics use a different
integer type for its 32-bit integer arguments.
Additionally, enable use of intrin.h on Cygwin (32-bit).
The test has been updated to explicitly use 32-bit integer arguments.
2019-07-10 14:44:13 +03:00
Andrey Semashev
f2789c82a4
Added a basic test for interlocked.hpp.
2019-07-10 01:41:55 +03:00
Andrey Semashev
bb91190323
Disable _Interlocked*Pointer intrinsics on x86 for MSVC-12 and below.
...
There is a macro conflict for _InterlockedExchangePointer between intrin.h from
MSVC-12 and winnt.h from Windows SDK 8.1, which causes compilation failures.
2019-07-10 01:06:34 +03:00
Andrey Semashev
bfb9932296
Use interlocked intrinsics for pointers more universally on more recent MSVC.
...
_Interlocked*Pointer intrinsics are defined for all target architectures on
MSVC-12 and later. On MSVC-11 they are also defined for ARM.
2019-05-31 18:24:35 +03:00
Andrey Semashev
52b44afc06
Use _Interlocked*Pointer intrinsics on ARM64 targets.
...
Fixes https://github.com/boostorg/winapi/issues/76 .
Closes https://github.com/boostorg/winapi/pull/77 .
Also, use consistent call convention attribute across _Interlocked*
intrinsics when they are declared in the header.
2019-05-31 17:32:57 +03:00
Andrey Semashev
51c3244e02
Reverted CXX/CXXFLAGS cleanup, changed VS2013 images to VS2015.
...
This is another attempt to fix Appveyor CI bootstrap failures.
2019-04-14 18:32:36 +03:00
Andrey Semashev
97f5be1fad
Reset CXX and CXXFLAGS before bootstrapping to avoid confusing bootstrap scripts.
2019-04-13 18:03:12 +03:00
Andrey Semashev
1c890b7c1a
Enabled multiple git fetch jobs while executing depinst in CI. Increased the number of jobs to 8.
2019-01-15 14:08:52 +03:00
Andrey Semashev
ac2b9e6ad6
Another attempt to silence MinGW gcc 5.3 warnings about unused variables.
2019-01-04 19:00:09 +03:00
Andrey Semashev
f427298368
Revert "Disable gcc warnings about unused variables."
...
This reverts commit a073e63cd3
.
The pragmas didn't help to silence the warnings on MinGW gcc 5.3.
2019-01-04 18:55:09 +03:00
Andrey Semashev
a073e63cd3
Disable gcc warnings about unused variables.
...
This warning is not supposed to appear for global constants, however gcc 5.3
from MinGW spams this warning, at least for the invalid_handle_value constant.
Therefore we disable this warning for all constants declared in Boost.WinAPI.
2019-01-04 00:33:52 +03:00
Andrey Semashev
1ebefb6bf9
Use the actual number of logical CPUs for the number of CI build/test jobs.
2019-01-03 23:28:12 +03:00
Andrey Semashev
942a0ec257
Re-added manual checkout of libs/config in CI as Boost.Build depends on it.
2018-12-20 20:48:06 +03:00
Andrey Semashev
364f8f6712
Added tools/boost_install and libs/headers manual checkout to CI jobs.
2018-12-18 22:15:57 +03:00
Andrey Semashev
4246c8987a
Added an experimental partial CMakeLists.txt for dependency tracking in CMake projects.
2018-12-18 19:24:12 +03:00
Andrey Semashev
b7118001c8
Corrected PATH composition for MinGW-w64 CI jobs.
2018-12-14 23:15:48 +03:00
Andrey Semashev
b5d54aa6e6
Added MinGW-w64 gcc 7 and gcc 6 32-bit CI jobs.
2018-12-13 00:15:57 +03:00
Andrey Semashev
95884f6932
Changed http to https in URLs in readme.
2018-11-01 20:39:26 +03:00
Andrey Semashev
cb0f6ed2a5
Removed volatile qualifiers for WinCE older than 6.0.
2018-08-13 20:05:34 +03:00
Andrey Semashev
bf9dfd9f21
Added support for clang-cl, improved support for WinCE and MSVC 8 and 9.
...
This commit incorporates some of the changes made to
boost/smart_ptr/detail/sp_interlocked.hpp by Peter Dimov, namely:
- Define an internal config macro BOOST_INTERLOCKED_HAS_INTRIN_H when
the compiler is known to have a useful intrin.h header.
- Use this macro to select the common implementation based on intrin.h.
- Removed MinGW-w64 branch of implementation as it is now covered by
the common branch based on intrin.h.
- Added detection of clang-cl, a new MSVC pretender. The compiler is
assumed to have support for intrin.h.
- Added a separate branch for Windows CE >=6, with differently named
interlocked functions. No way to test this and no idea if this is
correct.
- For MSVC 8 and 9 don't use intrin.h as it reportedly conflicts
with <utility>. On these compilers we will declare the intrinsics
ourselves.
2018-08-13 18:44:29 +03:00
Andrey Semashev
fee1bec7f9
Marked OVERLAPPED member struct with __extension__ to silence gcc warnings.
2018-08-08 20:54:02 +03:00
Andrey Semashev
3f56c2348f
Removed the deprecated definitions of calling convention macros.
...
These macros conflict with the same named macros from Windows SDK and generate
warnings. Downstream libraries were ported to Boost.WinAPI replacement macros.
2018-04-18 07:39:09 +03:00
Andrey Semashev
1b912fa070
Silenced gcc warnings about using long long
in C++03.
2018-03-26 21:51:03 +03:00
Andrey Semashev
a9bc4e753e
Added an extension markup to silence gcc warnings about nameless struct.
2018-03-23 21:28:48 +03:00
Andrey Semashev
fb2774ee66
Updated copyright years.
2018-03-18 01:42:55 +03:00
Andrey Semashev
9fcdbe2135
Added workerounds for Windows SDKs shipped with MSVC-7.1 and 8.
2018-03-17 21:29:28 +03:00
Andrey Semashev
169d0ad34b
Added new error codes and made error_codes_abi test auto-generated.
2018-03-17 21:07:11 +03:00
Andrey Semashev
97adb533ae
Don't enable bcrypt on MinGW-w64 regardless of the target Windows version. This API is only available since Vista.
2018-03-16 23:00:47 +03:00
Andrey Semashev
0156a685c7
Added documentation about BOOST_WINAPI_IS_CYGWIN.
2018-03-14 14:16:08 +03:00
Andrey Semashev
b55c1ca81d
Added new macros to winapi_info output.
2018-03-14 14:06:07 +03:00
Andrey Semashev
2fe56a3b6d
Added workarounds for MSVC-7.1.
2018-03-14 13:54:32 +03:00
Andrey Semashev
d626055575
Updates for compatibility with Cygwin.
2018-03-11 19:40:41 +03:00
Andrey Semashev
20b8d76929
Only test NTSTATUS for Desktop partition on Windows SDKs prior to 10.
2018-03-11 04:33:22 +03:00
Andrey Semashev
3ea45ad0e1
Disabled 64-bit builds in MSVC-11 UWP jobs.
2018-03-11 04:30:26 +03:00
Andrey Semashev
5e5a9c8252
Reverted addition of ntdef.h include as it causes macro clashes with winnt.h.
2018-03-11 03:57:02 +03:00
Andrey Semashev
9fbba91e44
Fixed compilation.
2018-03-11 03:38:27 +03:00
Andrey Semashev
2f3fa36ba1
Updated API partition checks.
2018-03-11 03:30:54 +03:00
Andrey Semashev
0c94a4a224
Added an include to bring in NTSTATUS from Windows SDK.
2018-03-11 03:04:12 +03:00
Andrey Semashev
f6d4772e62
Added missing preprocessor checks in apc_abi test.
2018-03-11 02:47:52 +03:00
Andrey Semashev
e64e4d646a
Added WINAPI and NTAPI macros. Deprecated until downstream libraries update.
...
These macros may clash with macros defined by Windows SDK and generate warnings.
Downstream libraries need to be ported to Boost.WinAPI replacements and then
these definitions can be removed.
2018-03-11 02:41:06 +03:00
Andrey Semashev
5a8d525e84
Renamed calling conventions macros.
2018-03-11 02:05:57 +03:00
Andrey Semashev
a513f8ec72
Added workarounds for MinGW to the error_code_abi test.
2018-03-11 01:47:36 +03:00
Andrey Semashev
8abe2f82d9
Added a configuration step to detect the Platform SDKs that don't provide BCrypt API.
2018-03-11 01:46:41 +03:00
Andrey Semashev
d2490dcb19
Fixed tokens after #endifs.
2018-03-11 00:45:09 +03:00
Andrey Semashev
4b69ca219a
Enable thread_pool_abi test only for Win2000 and later.
2018-03-11 00:38:46 +03:00
Andrey Semashev
936447c9f7
Updated PROCESS_ALL_ACCESS definition for pre-Vista targets.
2018-03-11 00:33:13 +03:00
Andrey Semashev
d8c8e71788
Disabled 32 or 64-bit builds for jobs that don't support them.
2018-03-11 00:22:49 +03:00
Andrey Semashev
c830a9a898
Added missing API partition checks to file_management_abi test.
2018-03-10 23:51:38 +03:00
Andrey Semashev
906e611d17
Fixed dll_abi test on non-desktop/system API partitions.
2018-03-10 23:46:09 +03:00
Andrey Semashev
b6d038998a
Removed the obsolete workaround for MinGW buggy declarations of crypt functions.
2018-03-10 23:44:09 +03:00