From 6a9039b05155de0f87c0635aba5d91c678ea70df Mon Sep 17 00:00:00 2001 From: Jason Hood Date: Fri, 11 May 2018 21:52:02 +1000 Subject: [PATCH] Update for gcc Update makefile.gcc to reflect the new compilation process. --- ansicon.h | 2 ++ makefile.gcc | 36 +++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/ansicon.h b/ansicon.h index 1af6619..f6d80ff 100644 --- a/ansicon.h +++ b/ansicon.h @@ -123,12 +123,14 @@ EXTERN int log_level; EXTERN void DEBUGSTR( int level, LPCSTR szFormat, ... ); // Replacements for C runtime functions. +#ifdef _MSC_VER #undef RtlFillMemory #undef RtlMoveMemory #undef RtlZeroMemory void WINAPI RtlFillMemory( PVOID, SIZE_T, BYTE ); void WINAPI RtlMoveMemory( PVOID, const VOID*, SIZE_T ); void WINAPI RtlZeroMemory( PVOID, SIZE_T ); +#endif #define arrcpy( dst, src ) RtlMoveMemory( dst, src, sizeof(dst) ) diff --git a/makefile.gcc b/makefile.gcc index 394f4b4..c78c645 100644 --- a/makefile.gcc +++ b/makefile.gcc @@ -14,11 +14,14 @@ # work with 32-bit only, 64-bit only or multilib compilers; # hide the commands (use V=1 to show them). # +# 11 May, 2018: +# update for the 1.84 changes. +# # Tested with: -# * MinGW/gcc 4.7.2; -# * tdm-gcc-4.8.1-3; -# * tdm64-gcc-4.8.1-3; -# * MinGW-builds x64-4.8.1-release-posix-seh-rev1. +# * MinGW/gcc 6.3.0; +# * tdm-gcc-5.1.0-3; +# * tdm64-gcc-5.1.0-2; +# * MSYS2/gcc 7.3.0. CC ?= gcc ifeq ($(origin CC),default) @@ -54,8 +57,9 @@ endif endif endif -X86OBJS = x86/injdll.o x86/proctype.o x86/util.o -X64OBJS = x64/injdll.o x64/proctype.o x64/util.o x64/procrva.o +X86OBJS = x86/injdll.o x86/procrva.o x86/proctype.o x86/util.o +X64OBJS = x64/injdll.o x64/procrva.o x64/proctype.o x64/util.o +X6432OBJS = x86/injdll.o x86/procrva.o x64/proctype32.o x86/util.o # Determine the appropriate separator to run multiple commands - ";" for sh.exe # and "&" for CMD.EXE. $(SHELL) is initially defined to "sh.exe" - if it @@ -95,31 +99,33 @@ else all: ansicon$(ARCH) endif -ansicon32: x86 x86/ansicon.exe x86/ANSI32.dll x64 x64/ANSI32.dll +ansicon32: x86 x86/ANSI32.dll x86/ansicon.exe x64 x64/ANSI32.dll -ansicon64: x64 x64/ansicon.exe x64/ANSI64.dll +ansicon64: x64 x64/ANSI64.dll x64/ansicon.exe x86: mkdir x86 -x86/ansicon.exe: x86/ansicon.o $(X86OBJS) x86/procrva.o x86/ansiconv.o +x86/ansicon.exe: x86/ansicon.o x86/ANSI32.dll x86/ansiconv.o $(LDmsg)$(CC) -m32 $+ -s -o $@ $(IVER) x86/ANSI32.dll: x86/ANSI.o $(X86OBJS) x86/ansiv.o - $(LDmsg)$(CC) -m32 $+ -lwinmm -s -o $@ -mdll -Wl,-shared,--image-base,0xAC0000 + $(LDmsg)$(CC) -m32 $+ -s -o $@ -mdll -nostdlib -lkernel32 -lntdll \ + -Wl,-shared,--image-base,0xAC0000,-e,_DllMain@12 x64: mkdir x64 -x64/ansicon.exe: x64/ansicon.o $(X64OBJS) x64/ansiconv.o +x64/ansicon.exe: x64/ansicon.o x64/ANSI64.dll x64/ansiconv.o $(LDmsg)$(CC) -m64 $+ -s -o $@ $(IVER) x64/ANSI64.dll: x64/ANSI.o $(X64OBJS) x64/ansiv.o - $(LDmsg)$(CC) -m64 $+ -lwinmm -s -o $@ -mdll -Wl,-shared,--image-base,0xAC000000 + $(LDmsg)$(CC) -m64 $+ -s -o $@ -mdll -nostdlib -lkernel32 -lntdll \ + -Wl,-shared,--image-base,0xAC000000,-e,DllMain -x64/ANSI32.dll: x64/ANSI32.o x64/proctype32.o x86/injdll.o x86/util.o x86/ansiv.o - $(LDmsg)$(CC) -m32 $+ -lwinmm -s -o $@ -mdll \ - -Wl,-shared,--image-base,0xAC0000,--large-address-aware +x64/ANSI32.dll: x64/ANSI32.o $(X6432OBJS) x86/ansiv.o + $(LDmsg)$(CC) -m32 $+ -s -o $@ -mdll -nostdlib -lkernel32 -lntdll \ + -Wl,-shared,--image-base,0xAC0000,-e,_DllMain@12,--large-address-aware x86/ansicon.o: version.h x86/ANSI.o: version.h