diff --git a/libbps.cpp b/libbps.cpp index 470af34..28a6db5 100644 --- a/libbps.cpp +++ b/libbps.cpp @@ -490,6 +490,19 @@ struct bpsinfo bps_get_info(file* patch, bool changefrac) #include +#ifdef _WIN32 +# ifdef _WIN64 +# ifdef __GNUC__ +# pragma GCC diagnostic ignored "-Wformat" +# endif +# define z "I" +# else +# define z "" +# endif +#else +# define z "z" +#endif + void bps_disassemble(struct mem patch, FILE* out) { #define read8() (*(patchat++)) @@ -528,13 +541,13 @@ void bps_disassemble(struct mem patch, FILE* out) { case SourceRead: { - fprintf(out, "SourceRead %zu from %zu to %zu\n", length, outat, outat); + fprintf(out, "SourceRead %" z "u from %" z "u to %" z "u\n", length, outat, outat); outat += length; } break; case TargetRead: { - fprintf(out, "TargetRead %zu to %zu\n", length, outat); + fprintf(out, "TargetRead %" z "u to %" z "u\n", length, outat); patchat += length; outat += length; } @@ -547,7 +560,7 @@ void bps_disassemble(struct mem patch, FILE* out) if ((encodeddistance&1)==0) inreadat+=distance; else inreadat-=distance; - fprintf(out, "SourceCopy %zu from %zu to %zu (rel %+zi)\n", length, inreadat, outat, inreadat-outat); + fprintf(out, "SourceCopy %" z "u from %" z "u to %" z "u (rel %+" z "i)\n", length, inreadat, outat, inreadat-outat); inreadat += length; outat += length; } @@ -560,7 +573,7 @@ void bps_disassemble(struct mem patch, FILE* out) if ((encodeddistance&1)==0) outreadat+=distance; else outreadat-=distance; - fprintf(out, "TargetCopy %zu from %zu to %zu (rel %+zi)\n", length, outreadat, outat, outreadat-outat); + fprintf(out, "TargetCopy %" z "u from %" z "u to %" z "u (rel %+" z "i)\n", length, outreadat, outat, outreadat-outat); outreadat += length; outat += length; } @@ -569,9 +582,9 @@ void bps_disassemble(struct mem patch, FILE* out) } if (patchat != patchend) - fprintf(out, "WARNING: patch pointer at %zu != %zu, corrupt patch?\n", patchat-patch.ptr, patchend-patch.ptr); + fprintf(out, "WARNING: patch pointer at %" z "u != %" z "u, corrupt patch?\n", patchat-patch.ptr, patchend-patch.ptr); if (outat != outlen) - fprintf(out, "WARNING: output pointer at %zu != %zu, corrupt patch?\n", outat, outlen); + fprintf(out, "WARNING: output pointer at %" z "u != %" z "u, corrupt patch?\n", outat, outlen); #undef read8 #undef decodeto } diff --git a/make-maintainer.sh b/make-maintainer.sh index eb65110..eb40feb 100755 --- a/make-maintainer.sh +++ b/make-maintainer.sh @@ -1,6 +1,6 @@ #!/bin/sh -if [ "$HOME" != "/home/alcaro" ]; then +if [ "$HOME" != "/home/walrus" ]; then #This script is for making official releases, including a Windows build. #If you're intending to fork Floating IPS, or take over maintenance, you're welcome to edit this script. #If not, you don't want it. make.sh enables all optimizations for a local build. @@ -16,24 +16,21 @@ mv flips flips-linux 7z a floating.zip flips-linux mv ./flips-linux ~/bin/flips -#create windows binary -mingwver 64 || true # this is a script that sets the Wine PATH +#wmake64 is +# #!/bin/sh +# export WINEPATH=$(winepath -w ~/tools/mingw64-11.2.0/bin/) +# exec wine mingw32-make "$@" + #if trying to make a 32bit Flips, add -Wl,--large-address-aware -#I am not completely sure if this is a good idea. -#FLAGS=$FLAGS' -fopenmp' -#FLAGS=$FLAGS' Z:/home/alcaro/tools/mingw64-8.1.0/lib/gcc/x86_64-w64-mingw32/8.1.0/libgomp.a' -#FLAGS=$FLAGS' Z:/home/alcaro/tools/mingw64-8.1.0/lib/gcc/x86_64-w64-mingw32/8.1.0/libgcc_eh.a' -#FLAGS=$FLAGS' Z:/home/alcaro/tools/mingw64-8.1.0/x86_64-w64-mingw32/lib/libwinpthread.a' - echo 'Windows (1/3)' -rm obj/* flips.exe; wine mingw32-make TARGET=windows CFLAGS="$FLAGS -fprofile-generate -lgcov" +rm -r obj/* flips.exe; wmake64 TARGET=windows CFLAGS="$FLAGS -fprofile-generate -lgcov" [ -e flips.exe ] || exit echo 'Windows (2/3)' /usr/bin/time --verbose wine flips.exe --create --bps-delta profile/firefox-10.0esr.tar profile/firefox-17.0esr.tar /dev/null /usr/bin/time --verbose wine flips.exe --create --bps-delta-moremem profile/firefox-10.0esr.tar profile/firefox-17.0esr.tar /dev/null echo 'Windows (3/3)' -rm flips.exe; wine mingw32-make TARGET=windows CFLAGS="$FLAGS -fprofile-use -s" +rm flips.exe; wmake64 TARGET=windows CFLAGS="$FLAGS -fprofile-use -s" #verify that there are no unexpected dependencies objdump -p flips.exe | grep 'DLL Name' | \ @@ -50,7 +47,7 @@ echo Finishing 7z a floating.zip flips.exe zipcrush floating.zip #The random numbers are the size of Lunar IPS v1.02, which I wish to stay below. -#(Or wished a while ago, but my feature set is so much greater than Lunar that I'll accept being bigger.) +#(Or wished a while ago, but my feature set is so much bigger than Lunar that I'll accept being bigger.) echo Size: $(stat -c%s flips.exe)/155648 echo \(Linux: $(stat -c%s ~/bin/flips)\) echo \(Zipped: $(stat -c%s floating.zip)/59881\)