forked from xt-sys/xtchain
		
	Compare commits
	
		
			22 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ef1065278b | |||
| 391a58dffc | |||
| bd4b7763d4 | |||
| 33ce9e38d2 | |||
| 409aa4ffb4 | |||
| b951abd511 | |||
| 2171eaeed6 | |||
| 7075a9ad58 | |||
| 9025a85bcc | |||
| 3342b87fd0 | |||
| cd4b20b701 | |||
| fc120f4f33 | |||
| b8d5a76ee7 | |||
| 009d4a3421 | |||
| 460d5820da | |||
| 83e84c3ebf | |||
| eeb1953d87 | |||
| e9707563d7 | |||
| 11d0593c9e | |||
| 22a5abd279 | |||
| 8c047d6083 | |||
| 1832a39ed3 | 
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| binaries/* | ||||
| sources/* | ||||
| xtchain-*.zst | ||||
| @@ -5,14 +5,17 @@ | ||||
|   <a href="https://git.codingworkshop.eu.org/xt-sys/xtchain/actions"> | ||||
|     <img alt="Build Status" src="https://codingworkshop.eu.org/actions.php?project=xt-sys/xtchain"> | ||||
|   </a> | ||||
|   <a href="https://github.com/xt-sys/xtchain/releases"> | ||||
|     <img alt="Releases" src="https://img.shields.io/github/v/release/xt-sys/xtchain?label=Release&color=blueviolet"> | ||||
|   </a> | ||||
|   <a href="https://git.codingworkshop.eu.org/xt-sys/xtchain/src/branch/master/COPYING.md"> | ||||
|     <img alt="License" src="https://img.shields.io/badge/License-GPLv3-blue.svg"> | ||||
|   </a> | ||||
|   <a href="https://github.com/sponsors/xt-sys/"> | ||||
|     <img alt="Sponsors" src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-red?logo=GitHub"> | ||||
|   </a> | ||||
|   <a href="https://discord.com/invite/3zgjQDVmAe"> | ||||
|     <img alt="Discord" src="https://img.shields.io/discord/723186294540206100?label=Chat"> | ||||
|   <a href="https://discord.com/invite/zBzJ5qMGX7"> | ||||
|     <img alt="Discord" src="https://img.shields.io/badge/Chat-Join%20Discord-success"> | ||||
|   </a> | ||||
| </p> | ||||
|  | ||||
|   | ||||
| @@ -16,19 +16,14 @@ WRKDIR="$(pwd)" | ||||
| ARCHS="aarch64 armv7 i686 x86_64" | ||||
| GENERIC="generic-w64-mingw32" | ||||
|  | ||||
| # Binutils Settings | ||||
| BINUTILSDIR="${SRCDIR}/binutils" | ||||
| BINUTILSTAG="binutils-2_41" | ||||
| BINUTILSVCS="git://sourceware.org/git/binutils-gdb.git" | ||||
|  | ||||
| # CMake Settings | ||||
| CMAKEDIR="${SRCDIR}/cmake" | ||||
| CMAKETAG="v3.27.6" | ||||
| CMAKETAG="v3.31.3" | ||||
| CMAKEVCS="https://gitlab.kitware.com/cmake/cmake.git" | ||||
|  | ||||
| # LLVM Settings | ||||
| LLVMDIR="${SRCDIR}/llvm" | ||||
| LLVMTAG="llvmorg-17.0.3" | ||||
| LLVMTAG="llvmorg-19.1.6" | ||||
| LLVMVCS="https://github.com/llvm/llvm-project.git" | ||||
|  | ||||
| # Make Settings | ||||
| @@ -45,13 +40,13 @@ MINGWVCS="https://github.com/mirror/mingw-w64.git" | ||||
|  | ||||
| # Ninja Settings | ||||
| NINJADIR="${SRCDIR}/ninja" | ||||
| NINJATAG="v1.11.1" | ||||
| NINJATAG="v1.12.1" | ||||
| NINJAVCS="https://github.com/ninja-build/ninja.git" | ||||
|  | ||||
| # Wine Settings | ||||
| WINEDIR="${SRCDIR}/wine" | ||||
| WINETAG="wine-8.17" | ||||
| WINEVCS="git://source.winehq.org/git/wine.git" | ||||
| WINETAG="wine-9.8" | ||||
| WINEVCS="https://github.com/wine-mirror/wine.git" | ||||
|  | ||||
|  | ||||
| # This function applies a patches to the 3rd party project | ||||
| @@ -79,51 +74,6 @@ apply_patches() | ||||
|     fi | ||||
| } | ||||
|  | ||||
| # This function compiles and installs GNU BINUTILS | ||||
| binutils_build() | ||||
| { | ||||
|     echo ">>> Building BINUTILS ..." | ||||
|     for ARCH in ${ARCHS}; do | ||||
|         [ -z ${CLEAN} ] || rm -rf ${BINUTILSDIR}/build-${ARCH} | ||||
|         mkdir -p ${BINUTILSDIR}/build-${ARCH} | ||||
|         cd ${BINUTILSDIR}/build-${ARCH} | ||||
|         case ${ARCH} in | ||||
|             "armv7") | ||||
|                 TARGET="arm" | ||||
|                 ;; | ||||
|             *) | ||||
|                 TARGET="${ARCH}" | ||||
|                 ;; | ||||
|         esac | ||||
|         ../configure \ | ||||
|             --target=${TARGET}-w64-mingw32 \ | ||||
|             --disable-binutils \ | ||||
|             --disable-gdb \ | ||||
|             --disable-gprof \ | ||||
|             --disable-ld \ | ||||
|             --disable-multilib \ | ||||
|             --disable-nls \ | ||||
|             --disable-werror \ | ||||
|             --with-zlib=yes | ||||
|         make -j${CORES} | ||||
|         cp ${BINUTILSDIR}/build-${ARCH}/gas/as-new ${BINDIR}/bin/${ARCH}-w64-mingw32-gas | ||||
|     done | ||||
|     cd ${WRKDIR} | ||||
| } | ||||
|  | ||||
| # This function downloads GNU BINUTILS from VCS | ||||
| binutils_fetch() | ||||
| { | ||||
|     if [ ! -d ${BINUTILSDIR} ]; then | ||||
|         echo ">>> Downloading BINUTILS ..." | ||||
|         git clone ${BINUTILSVCS} ${BINUTILSDIR} | ||||
|         cd ${BINUTILSDIR} | ||||
|         git checkout tags/${BINUTILSTAG} | ||||
|         apply_patches ${BINUTILSDIR##*/} ${BINUTILSTAG##*-} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| } | ||||
|  | ||||
| # This function compiles and installs CMAKE | ||||
| cmake_build() | ||||
| { | ||||
| @@ -145,9 +95,8 @@ cmake_fetch() | ||||
| { | ||||
|     if [ ! -d ${CMAKEDIR} ]; then | ||||
|         echo ">>> Downloading CMAKE ..." | ||||
|         git clone ${CMAKEVCS} ${CMAKEDIR} | ||||
|         git clone --depth 1 --branch ${CMAKETAG} ${CMAKEVCS} ${CMAKEDIR} | ||||
|         cd ${CMAKEDIR} | ||||
|         git checkout tags/${CMAKETAG} | ||||
|         apply_patches ${CMAKEDIR##*/} ${CMAKETAG} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -282,9 +231,8 @@ llvm_fetch() | ||||
| { | ||||
|     if [ ! -d ${LLVMDIR} ]; then | ||||
|         echo ">>> Downloading LLVM ..." | ||||
|         git clone ${LLVMVCS} ${LLVMDIR} | ||||
|         git clone --depth 1 --branch ${LLVMTAG} ${LLVMVCS} ${LLVMDIR} | ||||
|         cd ${LLVMDIR} | ||||
|         git checkout tags/${LLVMTAG} | ||||
|         apply_patches ${LLVMDIR##*/} ${LLVMTAG##*-} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -319,9 +267,8 @@ make_fetch() | ||||
| { | ||||
|     if [ ! -d ${MAKEDIR} ]; then | ||||
|         echo ">>> Downloading Make ..." | ||||
|         git clone ${MAKEVCS} ${MAKEDIR} | ||||
|         git clone --depth 1 --branch ${MAKETAG} ${MAKEVCS} ${MAKEDIR} | ||||
|         cd ${MAKEDIR} | ||||
|         git checkout tags/${MAKETAG} | ||||
|         apply_patches ${MAKEDIR##*/} ${MAKETAG} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -416,7 +363,7 @@ mingw_build_libs() | ||||
| # This function compiles and installs MINGW tools | ||||
| mingw_build_tools() | ||||
| { | ||||
|     for TOOL in gendef genidl genlib genpeimg widl; do | ||||
|     for TOOL in gendef genidl genpeimg widl; do | ||||
|         for ARCH in ${ARCHS}; do | ||||
|             echo ">>> Building Mingw-w64 (tools) for ${ARCH} ..." | ||||
|             [ -z ${CLEAN} ] || rm -rf ${MINGWDIR}/mingw-w64-tools/${TOOL}/build-${ARCH} | ||||
| @@ -440,11 +387,8 @@ mingw_fetch() | ||||
| { | ||||
|     if [ ! -d ${MINGWDIR} ]; then | ||||
|         echo ">>> Downloading MinGW-w64 ..." | ||||
|         git clone ${MINGWVCS} ${MINGWDIR} | ||||
|         git clone --depth 1 --branch ${MINGWTAG} ${MINGWVCS} ${MINGWDIR} | ||||
|         cd ${MINGWDIR} | ||||
|         if [ x"${MINGWTAG}" != x"master" ]; then | ||||
|             git checkout tags/${MINGWTAG} | ||||
|         fi | ||||
|         apply_patches ${MINGWDIR##*/} ${MINGWTAG} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -467,9 +411,8 @@ ninja_fetch() | ||||
| { | ||||
|     if [ ! -d ${NINJADIR} ]; then | ||||
|         echo ">>> Downloading NINJA ..." | ||||
|         git clone ${NINJAVCS} ${NINJADIR} | ||||
|         git clone --depth 1 --branch ${NINJATAG} ${NINJAVCS} ${NINJADIR} | ||||
|         cd ${NINJADIR} | ||||
|         git checkout tags/${NINJATAG} | ||||
|         apply_patches ${NINJADIR##*/} ${NINJATAG} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -502,9 +445,8 @@ wine_fetch() | ||||
| { | ||||
|     if [ ! -d ${WINEDIR} ]; then | ||||
|         echo ">>> Downloading WINE ..." | ||||
|         git clone ${WINEVCS} ${WINEDIR} | ||||
|         git clone --depth 1 --branch ${WINETAG} ${WINEVCS} ${WINEDIR} | ||||
|         cd ${WINEDIR} | ||||
|         git checkout tags/${WINETAG} | ||||
|         apply_patches ${WINEDIR##*/} ${WINETAG##*-} | ||||
|         cd ${WRKDIR} | ||||
|     fi | ||||
| @@ -584,12 +526,6 @@ mingw_build_libs | ||||
| # Build and install Mingw-W64 tools | ||||
| mingw_build_tools | ||||
|  | ||||
| # Download Binutils | ||||
| binutils_fetch | ||||
|  | ||||
| # Build and install Binutils | ||||
| binutils_build | ||||
|  | ||||
| # Download Wine | ||||
| wine_fetch | ||||
|  | ||||
|   | ||||
| @@ -1,30 +0,0 @@ | ||||
| diff --git a/bfd/config.bfd b/bfd/config.bfd | ||||
| index bdee53957c0..04fff6e7df4 100644 | ||||
| --- a/bfd/config.bfd | ||||
| +++ b/bfd/config.bfd | ||||
| @@ -407,6 +407,12 @@ case "${targ}" in | ||||
|      targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec" | ||||
|      targ_underscore=yes | ||||
|      ;; | ||||
| +  arm-*-mingw*) | ||||
| +    targ_defvec=arm_pe_le_vec | ||||
| +    targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec" | ||||
| +    targ_underscore=no | ||||
| +    targ_cflags="-DARM_COFF_BUGFIX" | ||||
| +    ;; | ||||
|    arm-*-phoenix*) | ||||
|      targ_defvec=arm_elf32_le_vec | ||||
|      targ_selvecs=arm_elf32_be_vec | ||||
| diff --git a/gas/configure.tgt b/gas/configure.tgt | ||||
| index 3429f850d05..fa735da7ce6 100644 | ||||
| --- a/gas/configure.tgt | ||||
| +++ b/gas/configure.tgt | ||||
| @@ -164,7 +164,7 @@ case ${generic_target} in | ||||
|    arm-*-nto*)				fmt=elf ;; | ||||
|    arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*) | ||||
|  					fmt=coff em=wince-pe ;; | ||||
| -  arm-*-pe)				fmt=coff em=pe ;; | ||||
| +  arm-*-pe | arm-*-mingw*)	fmt=coff em=pe ;; | ||||
|    arm-*-fuchsia*)			fmt=elf ;; | ||||
|    arm-*-haiku*)				fmt=elf em=haiku ;; | ||||
|   | ||||
							
								
								
									
										13
									
								
								patches/cmake/v3.31.3/001-add-xtc-version-suffix.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								patches/cmake/v3.31.3/001-add-xtc-version-suffix.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake | ||||
| index 818109f0b7..749377d193 100644 | ||||
| --- a/Source/CMakeVersion.cmake | ||||
| +++ b/Source/CMakeVersion.cmake | ||||
| @@ -7,7 +7,7 @@ set(CMake_VERSION_IS_DIRTY 0) | ||||
|   | ||||
|  # Start with the full version number used in tags.  It has no dev info. | ||||
|  set(CMake_VERSION | ||||
| -  "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") | ||||
| +  "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}-XTC") | ||||
|  if(DEFINED CMake_VERSION_RC) | ||||
|    set(CMake_VERSION "${CMake_VERSION}-rc${CMake_VERSION_RC}") | ||||
|  endif() | ||||
| @@ -51,6 +51,19 @@ chbuild() | ||||
| } | ||||
| export -f chbuild | ||||
|  | ||||
| # Prints help | ||||
| help() | ||||
| { | ||||
| 	version | ||||
| 	echo "XTChain defines an internal list of commands:" | ||||
| 	echo " * charch [arch]   - sets the target CPU architecture [aarch64/armv7/i686/amd64]" | ||||
| 	echo " * chbuild [type]  - sets build type [debug/release]" | ||||
| 	echo " * help            - prints this message" | ||||
| 	echo " * version         - prints XTChain and its components version" | ||||
| 	echo " * xbuild          - builds an application with a Ninja build system" | ||||
| } | ||||
| export -f help | ||||
|  | ||||
| # Displays version banner | ||||
| version() | ||||
| { | ||||
| @@ -66,9 +79,26 @@ version() | ||||
|     echo "Wine Message Compiler Version: $(${XTCDIR}/bin/wmc -V | grep 'version' | cut -d' ' -f5)" | ||||
|     echo "Wine Resource Compiler Version: $(${XTCDIR}/bin/wrc --version | grep 'version' | cut -d' ' -f5)" | ||||
|     echo | ||||
|     charch ${TARGET} | ||||
|     chbuild DEBUG | ||||
|     charch ${TARGET:-amd64} | ||||
|     chbuild ${BUILD_TYPE:-DEBUG} | ||||
|     echo | ||||
|     echo | ||||
| } | ||||
| export -f version | ||||
|  | ||||
| # Builds application (wrapper to Ninja) | ||||
| xbuild() | ||||
| { | ||||
| 	if [ ! -f build.arch ]; then | ||||
| 		ninja "$@" | ||||
| 	else | ||||
| 		ARCH=$(cat build.arch) | ||||
| 		if [ x"${ARCH}" != x"${TARGET}" ]; then | ||||
| 			echo "Build is configured for '${ARCH}' while current target set to '${TARGET}'!" | ||||
| 			echo "Cannot continue until conflict is resolved ..." | ||||
| 			return 1 | ||||
| 		fi | ||||
| 		ninja "$@" | ||||
| 	fi | ||||
| } | ||||
| export -f xbuild | ||||
|   | ||||
							
								
								
									
										101
									
								
								tools/exetool.c
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								tools/exetool.c
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  * PROJECT:     XTchain | ||||
|  * LICENSE:     See COPYING.md in the top level directory | ||||
|  * FILE:        tools/exetool.c | ||||
|  * DESCRIPTION: Portable Executable (PE) utility for changing subsystem | ||||
|  * DESCRIPTION: Portable Executable (PE) utility for changing its signature and subsystem | ||||
|  * DEVELOPERS:  Rafal Kupiec <belliash@codingworkshop.eu.org> | ||||
|  */ | ||||
|  | ||||
| @@ -91,6 +91,7 @@ int main(int argc, char *argv[]) | ||||
|     FILE *ExeFile; | ||||
|     unsigned char Signature[4]; | ||||
|     unsigned int HeaderOffset; | ||||
|     unsigned int ImageSignature; | ||||
|     unsigned short SubSystem; | ||||
|     PPE_SUBSYSTEM NewSubSystem; | ||||
|  | ||||
| @@ -101,45 +102,6 @@ int main(int argc, char *argv[]) | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     /* Open the EXE file in binary mode */ | ||||
|     ExeFile = fopen(argv[1], "r+b"); | ||||
|     if(ExeFile == NULL) | ||||
|     { | ||||
|         /* Failed to open PE file */ | ||||
|         printf("ERROR: Unable to open file %s\n", argv[1]); | ||||
|         return 1; | ||||
|     } | ||||
|      | ||||
|     /* Verify that the input file has a valid DOS header */ | ||||
|     fread(Signature, sizeof(unsigned char), 4, ExeFile); | ||||
|     if(Signature[0] != 'M' || Signature[1] != 'Z') | ||||
|     { | ||||
|         /* Invalid DOS header */ | ||||
|         printf("ERROR: %s is not a valid EXE file\n", argv[1]); | ||||
|         fclose(ExeFile); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     /* Verify that the input file has a valid PE header */ | ||||
|     fseek(ExeFile, 0x3C, SEEK_SET); | ||||
|     fread(&HeaderOffset, sizeof(unsigned int), 1, ExeFile); | ||||
|     fseek(ExeFile, HeaderOffset, SEEK_SET); | ||||
|     fread(Signature, sizeof(unsigned char), 4, ExeFile); | ||||
|     if(Signature[0] != 'P' || Signature[1] != 'E' || Signature[2] != 0 || Signature[3] != 0) | ||||
|     { | ||||
|         /* Invalid PE header */ | ||||
|         printf("Error: %s is not a valid PE file\n", argv[1]); | ||||
|         fclose(ExeFile); | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     /* Seek to the offset of the SubSystem field in the optional header */ | ||||
|     fseek(ExeFile, HeaderOffset + 0x5C, SEEK_SET); | ||||
|  | ||||
|     /* Read the current SubSystem value */ | ||||
|     fread(&SubSystem, sizeof(unsigned short), 1, ExeFile); | ||||
|     printf("Original SubSystem: 0x%04X <%s>\n", SubSystem, getSubSystemName(SubSystem)); | ||||
|  | ||||
|     /* Parse the new SubSystem value from the command line argument */ | ||||
|     NewSubSystem = getSubSystem(argv[2]); | ||||
|     if(NewSubSystem->Identifier == 0) | ||||
| @@ -149,8 +111,60 @@ int main(int argc, char *argv[]) | ||||
|         return 1; | ||||
|     } | ||||
|  | ||||
|     /* Print new SubSystem identifier */ | ||||
|     printf("New SubSystem: 0x%04X <%s>\n", NewSubSystem->Identifier, NewSubSystem->Name); | ||||
|     /* Open the EXE file in binary mode */ | ||||
|     ExeFile = fopen(argv[1], "r+b"); | ||||
|     if(ExeFile == NULL) | ||||
|     { | ||||
|         /* Failed to open PE file */ | ||||
|         printf("ERROR: Unable to open file %s\n", argv[1]); | ||||
|         return 2; | ||||
|     } | ||||
|      | ||||
|     /* Verify that the input file has a valid DOS header */ | ||||
|     fread(Signature, sizeof(unsigned char), 4, ExeFile); | ||||
|     if(Signature[0] != 'M' || Signature[1] != 'Z') | ||||
|     { | ||||
|         /* Invalid DOS header */ | ||||
|         printf("ERROR: %s is not a valid EXE file\n", argv[1]); | ||||
|         fclose(ExeFile); | ||||
|         return 3; | ||||
|     } | ||||
|  | ||||
|     /* Verify that the input file has a valid PE header */ | ||||
|     fseek(ExeFile, 0x3C, SEEK_SET); | ||||
|     fread(&HeaderOffset, sizeof(unsigned int), 1, ExeFile); | ||||
|     fseek(ExeFile, HeaderOffset, SEEK_SET); | ||||
|     fread(Signature, sizeof(unsigned char), 4, ExeFile); | ||||
|     if((Signature[0] != 'P' || Signature[1] != 'E' || Signature[2] != 0 || Signature[3] != 0) && | ||||
|        (Signature[0] != 'P' || Signature[1] != 'E' || Signature[2] != 'X' || Signature[3] != 'T')) | ||||
|     { | ||||
|         /* Invalid PE header */ | ||||
|         printf("Error: %s is not a valid PE file\n", argv[1]); | ||||
|         fclose(ExeFile); | ||||
|         return 3; | ||||
|     } | ||||
|  | ||||
|     /* Check if setting XT subsystem */ | ||||
|     if(NewSubSystem->Identifier >= 0x14 && NewSubSystem->Identifier <= 0x19) | ||||
|     { | ||||
|         /* Write PEXT signature */ | ||||
|         ImageSignature = 0x54584550; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         /* Write PE00 signature */ | ||||
|         ImageSignature = 0x00004550; | ||||
|     } | ||||
|  | ||||
|     /* Seek back to header offset and write new signature */ | ||||
|     fseek(ExeFile, HeaderOffset, SEEK_SET); | ||||
|     fwrite(&ImageSignature, sizeof(ImageSignature), 1, ExeFile); | ||||
|  | ||||
|     /* Seek to the offset of the SubSystem field in the optional header */ | ||||
|     fseek(ExeFile, HeaderOffset + 0x5C, SEEK_SET); | ||||
|  | ||||
|     /* Read the current SubSystem value */ | ||||
|     fread(&SubSystem, sizeof(unsigned short), 1, ExeFile); | ||||
|  | ||||
|     /* Seek back to the SubSystem field in the optional header */ | ||||
|     fseek(ExeFile, -sizeof(unsigned short), SEEK_CUR); | ||||
| @@ -162,6 +176,7 @@ int main(int argc, char *argv[]) | ||||
|     fclose(ExeFile); | ||||
|  | ||||
|     /* Finished successfully */ | ||||
|     printf("SubSystem successfully modified!\n"); | ||||
|     printf("PE SubSystem modified: 0x%02X <%s> to 0x%02X <%s>\n", | ||||
|            SubSystem, getSubSystemName(SubSystem), NewSubSystem->Identifier, NewSubSystem->Name); | ||||
|     return 0; | ||||
| } | ||||
|   | ||||
| @@ -169,9 +169,9 @@ void check_num_args(int arg, | ||||
| int main(int argc, | ||||
|          char* argv[]) | ||||
| { | ||||
|     const char *dir; | ||||
|     const char *basename; | ||||
|     const char *target; | ||||
|     char *dir; | ||||
|     char *basename; | ||||
|     char *target; | ||||
|  | ||||
|     split_argv(argv[0], &dir, &basename, &target, NULL); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user