On 05/31/2016 05:42 PM, Hugo Beauzée-Luyssen wrote:
> This exposes the WaitOnAddress, WakeByAddressAll and WakeByAddressSingle
> functions
> Adding those to kernel32.lib fails at runtime
> ---
>   mingw-w64-crt/Makefile.am                            | 20 
> ++++++++++++++++++--
>   mingw-w64-crt/lib32/Makefile.am                      |  1 +
>   mingw-w64-crt/lib32/api-ms-win-core-synch-l1-2-0.def |  5 +++++
>   mingw-w64-crt/lib32/synchronization.mri              |  4 ++++
>   mingw-w64-crt/lib64/api-ms-win-core-synch-l1-2-0.def |  5 +++++
>   mingw-w64-crt/lib64/synchronization.mri              |  4 ++++
>   .../libarm32/api-ms-win-core-synch-l1-2-0.def        |  5 +++++
>   mingw-w64-crt/libarm32/kernel32.def                  |  3 +++
>   8 files changed, 45 insertions(+), 2 deletions(-)
>   create mode 100644 mingw-w64-crt/lib32/api-ms-win-core-synch-l1-2-0.def
>   create mode 100644 mingw-w64-crt/lib32/synchronization.mri
>   create mode 100644 mingw-w64-crt/lib64/api-ms-win-core-synch-l1-2-0.def
>   create mode 100644 mingw-w64-crt/lib64/synchronization.mri
>   create mode 100644 mingw-w64-crt/libarm32/api-ms-win-core-synch-l1-2-0.def
>
> diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
> index 0bfbb26..9c31cdb 100644
> --- a/mingw-w64-crt/Makefile.am
> +++ b/mingw-w64-crt/Makefile.am
> @@ -642,6 +642,11 @@ lib32/libruntimeobject.a: lib32/runtimeobject.mri 
> lib32/libapi-ms-win-core-winrt
>       $(AR) -M < $<
>       $(RANLIB) $@
>
> +lib32/libsynchronization.a: lib32/synchronization.mri 
> lib32/libapi-ms-win-core-synch-l1-2-0.a
> +     rm -f $@
> +     $(AR) -M < $<
> +     $(RANLIB) $@
> +
>   dx32_DATA =
>   dx32_DATA += lib32/libxinput.a
>   dx32_DATA += lib32/libxapofx.a
> @@ -1145,7 +1150,8 @@ lib64_DATA = \
>     lib64/libxaudio2_8.a      lib64/libd3dcompiler_46.a lib64/libd3dcsx_46.a \
>     lib64/libd3d11.a          lib64/libd3dcompiler_47.a \
>     lib64/libwinhttp.a \
> -  lib64/libruntimeobject.a
> +  lib64/libruntimeobject.a \
> +  lib64/libsynchronization.a
>
>   if !W32API
>   lib64_DATA += lib64/libmsvcp60.a lib64/libmsvcr80.a lib64/libmsvcr90.a 
> lib64/libmsvcr100.a lib64/libmsvcr90d.a \
> @@ -1173,6 +1179,11 @@ lib64/libruntimeobject.a: lib64/runtimeobject.mri 
> lib64/libapi-ms-win-core-winrt
>       $(AR) -M < $<
>       $(RANLIB) $@
>
> +lib64/libsynchronization.a: lib64/synchronization.mri 
> lib64/libapi-ms-win-core-synch-l1-2-0.a
> +     rm -f $@
> +     $(AR) -M < $<
> +     $(RANLIB) $@
> +
>   dx64_DATA =
>   dx64_DATA += lib64/libxinput.a
>   dx64_DATA += lib64/libxapofx.a
> @@ -1432,10 +1443,15 @@ libarm32/libruntimeobject.a: 
> libarm32/runtimeobject.mri libarm32/libapi-ms-win-c
>       $(AR) -M < $<
>       $(RANLIB) $@
>
> +libarm32/libsynchronization.a: libarm32/synchronization.mri 
> libarm32/libapi-ms-win-core-synch-l1-2-0.a
> +     rm -f $@
> +     $(AR) -M < $<
> +     $(RANLIB) $@
> +
>   dx32_DATA =
>   dx32_DATA += libarm32/libxinput.a
>   dx32_DATA += libarm32/libd3dcompiler.a
> -libarm32_DATA += libarm32/libruntimeobject.a
> +libarm32_DATA += libarm32/libruntimeobject.a libarm32/libsynchronization.lib
>
>   libarm32/libxinput.a: libarm32/xinput1_4.def
>       $(DTDEFARM32) $<
> diff --git a/mingw-w64-crt/lib32/Makefile.am b/mingw-w64-crt/lib32/Makefile.am
> index 3182cca..856ec4e 100644
> --- a/mingw-w64-crt/lib32/Makefile.am
> +++ b/mingw-w64-crt/lib32/Makefile.am
> @@ -5,6 +5,7 @@ lib32_DATA += %reldir%/libadsldpc.a
>   lib32_DATA += %reldir%/libadvapi32.a
>   lib32_DATA += %reldir%/libapcups.a
>   lib32_DATA += %reldir%/libruntimeobject.a
> +lib32_DATA += %reldir%/libsynchronization.a
>   lib32_DATA += %reldir%/libauthz.a
>   lib32_DATA += %reldir%/libavicap32.a
>   lib32_DATA += %reldir%/libavifil32.a
> diff --git a/mingw-w64-crt/lib32/api-ms-win-core-synch-l1-2-0.def 
> b/mingw-w64-crt/lib32/api-ms-win-core-synch-l1-2-0.def
> new file mode 100644
> index 0000000..cf2ed2f
> --- /dev/null
> +++ b/mingw-w64-crt/lib32/api-ms-win-core-synch-l1-2-0.def
> @@ -0,0 +1,5 @@
> +LIBRARY "api-ms-win-core-synch-l1-2-0.dll"
> +EXPORTS
> +WaitOnAddress@16
> +WakeByAddressAll@4
> +WakeByAddressSingle@4
> diff --git a/mingw-w64-crt/lib32/synchronization.mri 
> b/mingw-w64-crt/lib32/synchronization.mri
> new file mode 100644
> index 0000000..b9c1d28
> --- /dev/null
> +++ b/mingw-w64-crt/lib32/synchronization.mri
> @@ -0,0 +1,4 @@
> +CREATE lib32/libsynchronization.a
> +ADDLIB lib32/libapi-ms-win-core-synch-l1-2-0.a
> +SAVE
> +END
> diff --git a/mingw-w64-crt/lib64/api-ms-win-core-synch-l1-2-0.def 
> b/mingw-w64-crt/lib64/api-ms-win-core-synch-l1-2-0.def
> new file mode 100644
> index 0000000..0af2ba9
> --- /dev/null
> +++ b/mingw-w64-crt/lib64/api-ms-win-core-synch-l1-2-0.def
> @@ -0,0 +1,5 @@
> +LIBRARY "api-ms-win-core-synch-l1-2-0.dll"
> +EXPORTS
> +WaitOnAddress
> +WakeByAddressAll
> +WakeByAddressSingle
> diff --git a/mingw-w64-crt/lib64/synchronization.mri 
> b/mingw-w64-crt/lib64/synchronization.mri
> new file mode 100644
> index 0000000..3389a9d
> --- /dev/null
> +++ b/mingw-w64-crt/lib64/synchronization.mri
> @@ -0,0 +1,4 @@
> +CREATE lib64/libsynchronization.a
> +ADDLIB lib64/libapi-ms-win-core-synch-l1-2-0.a
> +SAVE
> +END
> diff --git a/mingw-w64-crt/libarm32/api-ms-win-core-synch-l1-2-0.def 
> b/mingw-w64-crt/libarm32/api-ms-win-core-synch-l1-2-0.def
> new file mode 100644
> index 0000000..0af2ba9
> --- /dev/null
> +++ b/mingw-w64-crt/libarm32/api-ms-win-core-synch-l1-2-0.def
> @@ -0,0 +1,5 @@
> +LIBRARY "api-ms-win-core-synch-l1-2-0.dll"
> +EXPORTS
> +WaitOnAddress
> +WakeByAddressAll
> +WakeByAddressSingle
> diff --git a/mingw-w64-crt/libarm32/kernel32.def 
> b/mingw-w64-crt/libarm32/kernel32.def
> index 90ead6b..6846082 100644
> --- a/mingw-w64-crt/libarm32/kernel32.def
> +++ b/mingw-w64-crt/libarm32/kernel32.def
> @@ -1464,7 +1464,10 @@ WaitForThreadpoolWaitCallbacks
>   WaitForThreadpoolWorkCallbacks
>   WaitNamedPipeA
>   WaitNamedPipeW
> +WaitOnAddress
>   WakeAllConditionVariable
> +WakeByAddressSingle
> +WakeByAddressAll
>   WakeConditionVariable
>   WerGetFlags
>   WerRegisterFile
>
Please ignore the first version, the arm additions were wrong.
However I must confess this isn't tested on ARM.

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to