msvcrt: Don't include MSVC 8.0+ C++ functions in SOs for older DLLs.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alex Henrie 2018-01-03 21:32:58 -07:00 committed by Alexandre Julliard
parent dc9088b9eb
commit 8762cd5cf6
1 changed files with 33 additions and 5 deletions

View File

@ -650,6 +650,7 @@ void * __thiscall MSVCRT_type_info_vector_dtor(type_info * _this, unsigned int f
} }
#if _MSVCR_VER >= 80 #if _MSVCR_VER >= 80
typedef exception bad_alloc; typedef exception bad_alloc;
extern const vtable_ptr MSVCRT_bad_alloc_vtable; extern const vtable_ptr MSVCRT_bad_alloc_vtable;
@ -675,9 +676,11 @@ void __thiscall MSVCRT_bad_alloc_dtor(bad_alloc * _this)
TRACE("(%p)\n", _this); TRACE("(%p)\n", _this);
MSVCRT_exception_dtor(_this); MSVCRT_exception_dtor(_this);
} }
#endif
#endif /* _MSVCR_VER >= 80 */
#if _MSVCR_VER >= 100 #if _MSVCR_VER >= 100
typedef struct { typedef struct {
exception e; exception e;
HRESULT hr; HRESULT hr;
@ -985,7 +988,8 @@ void __thiscall MSVCRT_improper_scheduler_detach_dtor(
TRACE("(%p)\n", _this); TRACE("(%p)\n", _this);
MSVCRT_exception_dtor(_this); MSVCRT_exception_dtor(_this);
} }
#endif
#endif /* _MSVCR_VER >= 100 */
#ifndef __GNUC__ #ifndef __GNUC__
void __asm_dummy_vtables(void) { void __asm_dummy_vtables(void) {
@ -1583,6 +1587,8 @@ void WINAPI _CxxThrowException( exception *object, const cxx_exception_type *typ
} }
#endif #endif
#if _MSVCR_VER >= 80
/********************************************************************* /*********************************************************************
* ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z * ?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z
* ?_is_exception_typeof@@YAHAEBVtype_info@@PEAU_EXCEPTION_POINTERS@@@Z * ?_is_exception_typeof@@YAHAEBVtype_info@@PEAU_EXCEPTION_POINTERS@@@Z
@ -1669,7 +1675,7 @@ int __cdecl _is_exception_typeof(const type_info *ti, EXCEPTION_POINTERS *ep)
#endif #endif
/********************************************************************* /*********************************************************************
* __clean_type_info_names_internal (MSVCR100.@) * __clean_type_info_names_internal (MSVCR80.@)
*/ */
void CDECL __clean_type_info_names_internal(void *p) void CDECL __clean_type_info_names_internal(void *p)
{ {
@ -1688,6 +1694,8 @@ const char * __thiscall type_info_name_internal_method(type_info * _this, struct
return MSVCRT_type_info_name(_this); return MSVCRT_type_info_name(_this);
} }
#endif /* _MSVCR_VER >= 80 */
/* std::exception_ptr class helpers */ /* std::exception_ptr class helpers */
typedef struct typedef struct
{ {
@ -1695,6 +1703,8 @@ typedef struct
int *ref; /* not binary compatible with native msvcr100 */ int *ref; /* not binary compatible with native msvcr100 */
} exception_ptr; } exception_ptr;
#if _MSVCR_VER >= 100
/********************************************************************* /*********************************************************************
* ?__ExceptionPtrCreate@@YAXPAX@Z * ?__ExceptionPtrCreate@@YAXPAX@Z
* ?__ExceptionPtrCreate@@YAXPEAX@Z * ?__ExceptionPtrCreate@@YAXPEAX@Z
@ -1781,6 +1791,8 @@ void __cdecl __ExceptionPtrAssign(exception_ptr *ep, const exception_ptr *assign
InterlockedIncrement(ep->ref); InterlockedIncrement(ep->ref);
} }
#endif /* _MSVCR_VER >= 100 */
/********************************************************************* /*********************************************************************
* ?__ExceptionPtrRethrow@@YAXPBX@Z * ?__ExceptionPtrRethrow@@YAXPBX@Z
* ?__ExceptionPtrRethrow@@YAXPEBX@Z * ?__ExceptionPtrRethrow@@YAXPEBX@Z
@ -1803,6 +1815,8 @@ void __cdecl __ExceptionPtrRethrow(const exception_ptr *ep)
ep->rec->NumberParameters, ep->rec->ExceptionInformation); ep->rec->NumberParameters, ep->rec->ExceptionInformation);
} }
#if _MSVCR_VER >= 100
#ifdef __i386__ #ifdef __i386__
static inline void call_copy_ctor( void *func, void *this, void *src, int has_vbase ) static inline void call_copy_ctor( void *func, void *this, void *src, int has_vbase )
{ {
@ -1925,6 +1939,9 @@ void __cdecl __ExceptionPtrCurrentException(exception_ptr *ep)
} }
#endif #endif
#endif /* _MSVCR_VER >= 100 */
#if _MSVCR_VER >= 110
/********************************************************************* /*********************************************************************
* ?__ExceptionPtrToBool@@YA_NPBX@Z * ?__ExceptionPtrToBool@@YA_NPBX@Z
* ?__ExceptionPtrToBool@@YA_NPEBX@Z * ?__ExceptionPtrToBool@@YA_NPEBX@Z
@ -1933,6 +1950,9 @@ MSVCRT_bool __cdecl __ExceptionPtrToBool(exception_ptr *ep)
{ {
return !!ep->rec; return !!ep->rec;
} }
#endif
#if _MSVCR_VER >= 100
/********************************************************************* /*********************************************************************
* ?__ExceptionPtrCopyException@@YAXPAXPBX1@Z * ?__ExceptionPtrCopyException@@YAXPAXPBX1@Z
@ -2020,12 +2040,17 @@ MSVCRT_bool __cdecl __ExceptionPtrCompare(const exception_ptr *ep1, const except
return ep1->rec == ep2->rec; return ep1->rec == ep2->rec;
} }
#endif /* _MSVCR_VER >= 100 */
#if _MSVCR_VER >= 80
void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off) void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off)
{ {
return get_this_pointer(off, obj); return get_this_pointer(off, obj);
} }
#endif
#if _MSVCR_VER >= 140 #if _MSVCR_VER >= 140
typedef struct typedef struct
{ {
char *name; char *name;
@ -2139,9 +2164,11 @@ MSVCRT_size_t CDECL MSVCRT_type_info_hash(const type_info140 *ti)
return hash; return hash;
} }
#endif
#endif /* _MSVCR_VER >= 140 */
#if _MSVCR_VER >= 100 #if _MSVCR_VER >= 100
enum ConcRT_EventType enum ConcRT_EventType
{ {
CONCRT_EVENT_GENERIC, CONCRT_EVENT_GENERIC,
@ -2160,4 +2187,5 @@ void __cdecl Concurrency__Trace_ppl_function(const GUID *guid, unsigned char lev
{ {
FIXME("(%s %u %i) stub\n", debugstr_guid(guid), level, type); FIXME("(%s %u %i) stub\n", debugstr_guid(guid), level, type);
} }
#endif
#endif /* _MSVCR_VER >= 100 */