Skip to content

Commit

Permalink
mem{cmp,cpy,move,set}: Split symbols that might conflict with mingw-w…
Browse files Browse the repository at this point in the history
…64 CRT
  • Loading branch information
lhmouse committed May 2, 2022
1 parent a74e0e8 commit 885ab55
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 18 deletions.
4 changes: 4 additions & 0 deletions src/Makefile.inc.am
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ lib_libmcfgthread_la_SOURCES = \
%reldir%/version.rc \
%reldir%/startup.c \
%reldir%/win32.c \
%reldir%/memcpy.c \
%reldir%/memmove.c \
%reldir%/memcmp.c \
%reldir%/memset.c \
%reldir%/clock.c \
%reldir%/mutex.c \
%reldir%/cond.c \
Expand Down
12 changes: 12 additions & 0 deletions src/memcmp.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* This file is part of MCF Gthread.
* See LICENSE.TXT for licensing information.
* Copyleft 2022, LH_Mouse. All wrongs reserved. */

#include "config.h"
#include "win32.h"

int __cdecl
memcmp(const void* src, const void* cmp, size_t size)
{
return __MCF_mcomp(src, cmp, size);
}
12 changes: 12 additions & 0 deletions src/memcpy.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* This file is part of MCF Gthread.
* See LICENSE.TXT for licensing information.
* Copyleft 2022, LH_Mouse. All wrongs reserved. */

#include "config.h"
#include "win32.h"

void* __cdecl
memcpy(void* dst, const void* src, size_t size)
{
return __MCF_mcopy(dst, src, size);
}
12 changes: 12 additions & 0 deletions src/memmove.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* This file is part of MCF Gthread.
* See LICENSE.TXT for licensing information.
* Copyleft 2022, LH_Mouse. All wrongs reserved. */

#include "config.h"
#include "win32.h"

void* __cdecl
memmove(void* dst, const void* src, size_t size)
{
return __MCF_mmove(dst, src, size);
}
12 changes: 12 additions & 0 deletions src/memset.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* This file is part of MCF Gthread.
* See LICENSE.TXT for licensing information.
* Copyleft 2022, LH_Mouse. All wrongs reserved. */

#include "config.h"
#include "win32.h"

void* __cdecl
memset(void* dst, int val, size_t size)
{
return __MCF_mfill(dst, (uint8_t) val, size);
}
16 changes: 0 additions & 16 deletions src/win32.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,3 @@ __MCF_seh_top(EXCEPTION_RECORD* record, void* frame, CONTEXT* ctx, void* disp_ct
* By default this is `std::terminate()`. */
return ExceptionContinueExecution;
}

void* __cdecl
memcpy(void* dst, const void* src, size_t size)
__attribute__((__alias__("__MCF_mcopy")));

void* __cdecl
memmove(void* dst, const void* src, size_t size)
__attribute__((__alias__("__MCF_mmove")));

void* __cdecl
memset(void* dst, int val, size_t size)
__attribute__((__alias__("__MCF_mfill")));

int __cdecl
memcmp(const void* src, const void* cmp, size_t size)
__attribute__((__alias__("__MCF_mcomp")));
4 changes: 2 additions & 2 deletions src/win32.h
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,11 @@ __MCF_mmove(void* __dst, const void* __src, size_t __size) __MCF_NOEXCEPT

/* Fill a block of memory with the given byte, like `memset()`. */
void* __cdecl
__MCF_mfill(void* __dst, int __val, size_t __size) __MCF_NOEXCEPT;
__MCF_mfill(void* __dst, uint8_t __val, size_t __size) __MCF_NOEXCEPT;

__MCF_WIN32_EXTERN_INLINE
void* __cdecl
__MCF_mfill(void* __dst, int __val, size_t __size) __MCF_NOEXCEPT
__MCF_mfill(void* __dst, uint8_t __val, size_t __size) __MCF_NOEXCEPT
{
#if defined(__i386__) || defined(__amd64__)
typedef char __mem[];
Expand Down

0 comments on commit 885ab55

Please sign in to comment.