diff --git a/configure b/configure index 2ba059a0a4f..872db314b11 100755 --- a/configure +++ b/configure @@ -1315,6 +1315,7 @@ enable_vbscript enable_vcomp enable_vcomp100 enable_vcomp110 +enable_vcomp120 enable_vcomp90 enable_vdmdbg enable_version @@ -17848,6 +17849,7 @@ wine_fn_config_dll vcomp enable_vcomp wine_fn_config_test dlls/vcomp/tests vcomp_test wine_fn_config_dll vcomp100 enable_vcomp100 wine_fn_config_dll vcomp110 enable_vcomp110 +wine_fn_config_dll vcomp120 enable_vcomp120 wine_fn_config_dll vcomp90 enable_vcomp90 wine_fn_config_dll vdhcp.vxd enable_win16 wine_fn_config_dll vdmdbg enable_vdmdbg implib diff --git a/configure.ac b/configure.ac index 1e9bd664e57..e22b0ef9683 100644 --- a/configure.ac +++ b/configure.ac @@ -3361,6 +3361,7 @@ WINE_CONFIG_DLL(vcomp) WINE_CONFIG_TEST(dlls/vcomp/tests) WINE_CONFIG_DLL(vcomp100) WINE_CONFIG_DLL(vcomp110) +WINE_CONFIG_DLL(vcomp120) WINE_CONFIG_DLL(vcomp90) WINE_CONFIG_DLL(vdhcp.vxd,enable_win16) WINE_CONFIG_DLL(vdmdbg,,[implib]) diff --git a/dlls/vcomp120/Makefile.in b/dlls/vcomp120/Makefile.in new file mode 100644 index 00000000000..833cd67c484 --- /dev/null +++ b/dlls/vcomp120/Makefile.in @@ -0,0 +1,4 @@ +MODULE = vcomp120.dll + +C_SRCS = \ + main.c diff --git a/dlls/vcomp120/main.c b/dlls/vcomp120/main.c new file mode 100644 index 00000000000..f2f8b31b640 --- /dev/null +++ b/dlls/vcomp120/main.c @@ -0,0 +1,47 @@ +/* + * + * vcomp120 implementation + * + * Copyright 2012 André Hentschel + * Copyright 2015 Daniel Lehman + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" + +#include + +#include "windef.h" +#include "winbase.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(vcomp120); + +BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) +{ + TRACE("(0x%p, %d, %p)\n", instance, reason, reserved); + + switch (reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(instance); + break; + } + + return TRUE; +} diff --git a/dlls/vcomp120/vcomp120.spec b/dlls/vcomp120/vcomp120.spec new file mode 100644 index 00000000000..87a72051504 --- /dev/null +++ b/dlls/vcomp120/vcomp120.spec @@ -0,0 +1,113 @@ +@ stub C2VectParallel +@ stub _vcomp_atomic_add_i1 +@ stub _vcomp_atomic_add_i2 +@ cdecl _vcomp_atomic_add_i4(ptr long) vcomp._vcomp_atomic_add_i4 +@ stub _vcomp_atomic_add_i8 +@ cdecl _vcomp_atomic_add_r4(ptr float) vcomp._vcomp_atomic_add_r4 +@ cdecl _vcomp_atomic_add_r8(ptr double) vcomp._vcomp_atomic_add_r8 +@ stub _vcomp_atomic_and_i1 +@ stub _vcomp_atomic_and_i2 +@ cdecl _vcomp_atomic_and_i4(ptr long) vcomp._vcomp_atomic_and_i4 +@ stub _vcomp_atomic_and_i8 +@ stub _vcomp_atomic_div_i1 +@ stub _vcomp_atomic_div_i2 +@ cdecl _vcomp_atomic_div_i4(ptr long) vcomp._vcomp_atomic_div_i4 +@ stub _vcomp_atomic_div_i8 +@ cdecl _vcomp_atomic_div_r4(ptr float) vcomp._vcomp_atomic_div_r4 +@ cdecl _vcomp_atomic_div_r8(ptr double) vcomp._vcomp_atomic_div_r8 +@ stub _vcomp_atomic_div_ui1 +@ stub _vcomp_atomic_div_ui2 +@ cdecl _vcomp_atomic_div_ui4(ptr long) vcomp._vcomp_atomic_div_ui4 +@ stub _vcomp_atomic_div_ui8 +@ stub _vcomp_atomic_mul_i1 +@ stub _vcomp_atomic_mul_i2 +@ cdecl _vcomp_atomic_mul_i4(ptr long) vcomp._vcomp_atomic_mul_i4 +@ stub _vcomp_atomic_mul_i8 +@ cdecl _vcomp_atomic_mul_r4(ptr float) vcomp._vcomp_atomic_mul_r4 +@ cdecl _vcomp_atomic_mul_r8(ptr double) vcomp._vcomp_atomic_mul_r8 +@ stub _vcomp_atomic_or_i1 +@ stub _vcomp_atomic_or_i2 +@ cdecl _vcomp_atomic_or_i4(ptr long) vcomp._vcomp_atomic_or_i4 +@ stub _vcomp_atomic_or_i8 +@ stub _vcomp_atomic_shl_i1 +@ stub _vcomp_atomic_shl_i2 +@ cdecl _vcomp_atomic_shl_i4(ptr long) vcomp._vcomp_atomic_shl_i4 +@ stub _vcomp_atomic_shl_i8 +@ stub _vcomp_atomic_shr_i1 +@ stub _vcomp_atomic_shr_i2 +@ cdecl _vcomp_atomic_shr_i4(ptr long) vcomp._vcomp_atomic_shr_i4 +@ stub _vcomp_atomic_shr_i8 +@ stub _vcomp_atomic_shr_ui1 +@ stub _vcomp_atomic_shr_ui2 +@ cdecl _vcomp_atomic_shr_ui4(ptr long) vcomp._vcomp_atomic_shr_ui4 +@ stub _vcomp_atomic_shr_ui8 +@ stub _vcomp_atomic_sub_i1 +@ stub _vcomp_atomic_sub_i2 +@ cdecl _vcomp_atomic_sub_i4(ptr long) vcomp._vcomp_atomic_sub_i4 +@ stub _vcomp_atomic_sub_i8 +@ cdecl _vcomp_atomic_sub_r4(ptr float) vcomp._vcomp_atomic_sub_r4 +@ cdecl _vcomp_atomic_sub_r8(ptr double) vcomp._vcomp_atomic_sub_r8 +@ stub _vcomp_atomic_xor_i1 +@ stub _vcomp_atomic_xor_i2 +@ cdecl _vcomp_atomic_xor_i4(ptr long) vcomp._vcomp_atomic_xor_i4 +@ stub _vcomp_atomic_xor_i8 +@ cdecl _vcomp_barrier() vcomp._vcomp_barrier +@ stub _vcomp_copyprivate_broadcast +@ stub _vcomp_copyprivate_receive +@ cdecl _vcomp_enter_critsect(ptr) vcomp._vcomp_enter_critsect +@ cdecl _vcomp_flush() vcomp._vcomp_flush +@ cdecl _vcomp_for_dynamic_init(long long long long long) vcomp._vcomp_for_dynamic_init +@ stub _vcomp_for_dynamic_init_i8 +@ cdecl _vcomp_for_dynamic_next(ptr ptr) vcomp._vcomp_for_dynamic_next +@ stub _vcomp_for_dynamic_next_i8 +@ cdecl _vcomp_for_static_end() vcomp._vcomp_for_static_end +@ cdecl _vcomp_for_static_init(long long long long ptr ptr ptr ptr ptr) vcomp._vcomp_for_static_init +@ stub _vcomp_for_static_init_i8 +@ cdecl _vcomp_for_static_simple_init(long long long long ptr ptr) vcomp._vcomp_for_static_simple_init +@ stub _vcomp_for_static_simple_init_i8 +@ varargs _vcomp_fork(long long ptr) vcomp._vcomp_fork +@ cdecl _vcomp_get_thread_num() vcomp._vcomp_get_thread_num +@ cdecl _vcomp_leave_critsect(ptr) vcomp._vcomp_leave_critsect +@ stub _vcomp_master_barrier +@ cdecl _vcomp_master_begin() vcomp._vcomp_master_begin +@ cdecl _vcomp_master_end() vcomp._vcomp_master_end +@ stub _vcomp_ordered_begin +@ stub _vcomp_ordered_end +@ stub _vcomp_ordered_loop_end +@ stub _vcomp_reduction_i1 +@ stub _vcomp_reduction_i2 +@ stub _vcomp_reduction_i4 +@ stub _vcomp_reduction_i8 +@ stub _vcomp_reduction_r4 +@ stub _vcomp_reduction_r8 +@ stub _vcomp_reduction_u1 +@ stub _vcomp_reduction_u2 +@ stub _vcomp_reduction_u4 +@ stub _vcomp_reduction_u8 +@ cdecl _vcomp_sections_init(long) vcomp._vcomp_sections_init +@ cdecl _vcomp_sections_next() vcomp._vcomp_sections_next +@ cdecl _vcomp_set_num_threads(long) vcomp._vcomp_set_num_threads +@ cdecl _vcomp_single_begin(long) vcomp._vcomp_single_begin +@ cdecl _vcomp_single_end() vcomp._vcomp_single_end +@ cdecl omp_destroy_lock(ptr) vcomp.omp_destroy_lock +@ cdecl omp_destroy_nest_lock(ptr) vcomp.omp_destroy_nest_lock +@ cdecl omp_get_dynamic() vcomp.omp_get_dynamic +@ cdecl omp_get_max_threads() vcomp.omp_get_max_threads +@ cdecl omp_get_nested() vcomp.omp_get_nested +@ cdecl omp_get_num_procs() vcomp.omp_get_num_procs +@ cdecl omp_get_num_threads() vcomp.omp_get_num_threads +@ cdecl omp_get_thread_num() vcomp.omp_get_thread_num +@ stub omp_get_wtick +@ cdecl omp_get_wtime() vcomp.omp_get_wtime +@ cdecl omp_in_parallel() vcomp.omp_in_parallel +@ cdecl omp_init_lock(ptr) vcomp.omp_init_lock +@ cdecl omp_init_nest_lock(ptr) vcomp.omp_init_nest_lock +@ cdecl omp_set_dynamic(long) vcomp.omp_set_dynamic +@ cdecl omp_set_lock(ptr) vcomp.omp_set_lock +@ cdecl omp_set_nest_lock(ptr) vcomp.omp_set_nest_lock +@ cdecl omp_set_nested(long) vcomp.omp_set_nested +@ cdecl omp_set_num_threads(long) vcomp.omp_set_num_threads +@ cdecl omp_test_lock(ptr) vcomp.omp_test_lock +@ cdecl omp_test_nest_lock(ptr) vcomp.omp_test_nest_lock +@ cdecl omp_unset_lock(ptr) vcomp.omp_unset_lock +@ cdecl omp_unset_nest_lock(ptr) vcomp.omp_unset_nest_lock diff --git a/tools/make_specfiles b/tools/make_specfiles index 5d319393099..7511ab7d819 100755 --- a/tools/make_specfiles +++ b/tools/make_specfiles @@ -138,6 +138,7 @@ my @dll_groups = ], [ "vcomp", + "vcomp120", "vcomp110", "vcomp100", "vcomp90",