tihmstar / libpatchfinder

A arm offsetfinder. It finds offsets, patches, parses Mach-O and even supports IMG4/IMG3
GNU Lesser General Public License v2.1
144 stars 70 forks source link

Make error #13

Closed djeverhart closed 4 years ago

djeverhart commented 4 years ago

I've been trying to do this for 6 hours. Any time I try to use make I get this error.

make all-recursive make[1]: Entering directory '/home/neuroses/liboffsetfinder64' Making all in liboffsetfinder64 make[2]: Entering directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-insn.lo -MD -MP -MF .deps/liboffsetfinder64_la-insn.Tpo -c -o liboffsetfinder64_la-insn.lo test -f 'insn.cpp' || echo './'insn.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-insn.lo -MD -MP -MF .deps/liboffsetfinder64_la-insn.Tpo -c insn.cpp -fPIC -DPIC -o .libs/liboffsetfinder64_la-insn.o In file included from insn.cpp:11: ../include/liboffsetfinder64/OFexception.hpp:12:10: fatal error: liboffsetfinder64/libgeneral/macros.h: No such file or directory 12 | #include <liboffsetfinder64/libgeneral/macros.h> | ^~~~~~~~~~~ compilation terminated. make[2]: [Makefile:488: liboffsetfinder64_la-insn.lo] Error 1 make[2]: Leaving directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' make[1]: [Makefile:472: all-recursive] Error 1 make[1]: Leaving directory '/home/neuroses/liboffsetfinder64' make: *** [Makefile:381: all] Error 2

ajsacco commented 4 years ago

It might be a hacky way to do it, but I put this folder in the liboffsetfinder64 folder

djeverhart commented 4 years ago

In the main directory or in the liboffsetfinder64 folder inside the liboffsetfinder64 folder

ajsacco commented 4 years ago

the inner one

djeverhart commented 4 years ago

I copied that to literally every directory I could think of and one of them made it work. Now it gives me this make[1]: Entering directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vsegment.lo -MD -MP -MF .deps/liboffsetfinder64_la-vsegment.Tpo -c -o liboffsetfinder64_la-vsegment.lo test -f 'vsegment.cpp' || echo './'vsegment.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vsegment.lo -MD -MP -MF .deps/liboffsetfinder64_la-vsegment.Tpo -c vsegment.cpp -fPIC -DPIC -o .libs/liboffsetfinder64_la-vsegment.o vsegment.cpp: In member function ‘tihmstar::offsetfinder64::loc_t tihmstar::offsetfinder64::vsegment::memmem(const void*, size_t)’: vsegment.cpp:40:24: error: ‘::memmem’ has not been declared 40 | if ((rt = (loc_t)::memmem(_buf, _size, little, little_len))) { | ^~ make[1]: [Makefile:495: liboffsetfinder64_la-vsegment.lo] Error 1 make[1]: Leaving directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' make: [Makefile:472: install-recursive] Error 1

ajsacco commented 4 years ago

Can't quite remember what I did for that one. Maybe #7 ?

djeverhart commented 4 years ago

Got through a couple more errors and now I'm trapped here in compiler hell

make all-recursive make[1]: Entering directory '/home/neuroses/liboffsetfinder64' Making all in liboffsetfinder64 make[2]: Entering directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vmem.lo -MD -MP -MF .deps/liboffsetfinder64_la-vmem.Tpo -c -o liboffsetfinder64_la-vmem.lo test -f 'vmem.cpp' || echo './'vmem.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vmem.lo -MD -MP -MF .deps/liboffsetfinder64_la-vmem.Tpo -c vmem.cpp -fPIC -DPIC -o .libs/liboffsetfinder64_la-vmem.o vmem.cpp: In constructor ‘tihmstar::offsetfinder64::vmem::vmem(std::vector, int)’: vmem.cpp:21:30: error: ‘remove_if’ is not a member of ‘std’; did you mean ‘remove_cv’? 21 | _segments.erase(std::remove_if(_segments.begin(), _segments.end(), [&](const vsegment& obj){ | ^~~~~ | remove_cv vmem.cpp:25:10: error: ‘sort’ is not a member of ‘std’ 25 | std::sort(_segments.begin(),_segments.end(),[ ]( const vsegment& lhs, const vsegment& rhs){ | ^~~~ vmem.cpp: In copy constructor ‘tihmstar::offsetfinder64::vmem::vmem(const tihmstar::offsetfinder64::vmem&, tihmstar::offsetfinder64::loc_t, int)’: vmem.cpp:37:30: error: ‘remove_if’ is not a member of ‘std’; did you mean ‘remove_cv’? 37 | _segments.erase(std::remove_if(_segments.begin(), _segments.end(), [&](const vsegment& obj){ | ^~~~~ | remove_cv vmem.cpp:41:10: error: ‘sort’ is not a member of ‘std’ 41 | std::sort(_segments.begin(),_segments.end(),[ ]( const vsegment& lhs, const vsegment& rhs){ | ^~~~ vmem.cpp: In member function ‘tihmstar::offsetfinder64::loc_t tihmstar::offsetfinder64::vmem::memmem(const void, size_t)’: vmem.cpp:73:12: warning: converting to non-pointer type ‘tihmstar::offsetfinder64::loc_t’ {aka ‘long unsigned int’} from NULL [-Wconversion-null] 73 | return NULL; | ^~~~ vmem.cpp: In member function ‘tihmstar::offsetfinder64::loc_t tihmstar::offsetfinder64::vmem::memstr(const char)’: vmem.cpp:82:12: warning: converting to non-pointer type ‘tihmstar::offsetfinder64::loc_t’ {aka ‘long unsigned int’} from NULL [-Wconversion-null] 82 | return NULL; | ^~~~ make[2]: [Makefile:502: liboffsetfinder64_la-vmem.lo] Error 1 make[2]: Leaving directory '/home/neuroses/liboffsetfinder64/liboffsetfinder64' make[1]: [Makefile:472: all-recursive] Error 1 make[1]: Leaving directory '/home/neuroses/liboffsetfinder64' make: *** [Makefile:381: all] Error 2

ajsacco commented 4 years ago

That doesn't look fun at all. Try my fork; I just uploaded whatever was on my computer. Again, I'm not sure what changes I made, so it might not do anything, but good luck and I hope our machines are similar enough :D

djeverhart commented 4 years ago

Got this now (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /home/neuroses/test2/liboffsetfinder64/missing autoheader) rm -f stamp-h1 touch config.h.in cd . && /bin/bash ./config.status config.h config.status: creating config.h config.status: config.h is unchanged make all-recursive make[1]: Entering directory '/home/neuroses/test2/liboffsetfinder64' Making all in liboffsetfinder64 make[2]: Entering directory '/home/neuroses/test2/liboffsetfinder64/liboffsetfinder64' /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-insn.lo -MD -MP -MF .deps/liboffsetfinder64_la-insn.Tpo -c -o liboffsetfinder64_la-insn.lo test -f 'insn.cpp' || echo './'insn.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-insn.lo -MD -MP -MF .deps/liboffsetfinder64_la-insn.Tpo -c insn.cpp -fPIC -DPIC -o .libs/liboffsetfinder64_la-insn.o insn.cpp:30:2: warning: #warning TODO is this distance validation correct?? [-Wcpp] 30 | #warning TODO is this distance validation correct?? | ^~~ insn.cpp:170:2: warning: #warning TODO incomplete function implementation! [-Wcpp] 170 | #warning TODO incomplete function implementation! | ^~~ insn.cpp:213:2: warning: #warning TODO recheck this mask [-Wcpp] 213 | #warning TODO recheck this mask | ^~~ insn.cpp:249:2: warning: #warning TODO redo this! currently only recognises STR (immediate) [-Wcpp] 249 | #warning TODO redo this! currently only recognises STR (immediate) | ^~~ insn.cpp:254:2: warning: #warning TODO redo this! currently only recognises STR (immediate) [-Wcpp] 254 | #warning TODO redo this! currently only recognises STR (immediate) | ^~~ insn.cpp:423:2: warning: #warning TODO rewrite this! currently only unsigned offset supported [-Wcpp] 423 | #warning TODO rewrite this! currently only unsigned offset supported | ^~~ insn.cpp:144:67: warning: always_inline function might not be inlinable [-Wattributes] 144 | attribute((always_inline)) static std::pair<int64_t, int64_t> DecodeBitMasks(uint64_t immN, uint8_t imms, uint8_t immr, bool immediate){ | ^~~~~~ insn.cpp:102:48: warning: always_inline function might not be inlinable [-Wattributes] 102 | attribute((always_inline)) static uint64_t ROR(uint64_t x, int shift, int len){ | ^~~ insn.cpp:93:48: warning: always_inline function might not be inlinable [-Wattributes] 93 | attribute((always_inline)) static uint64_t ones(uint64_t n){ | ^~~~ insn.cpp:84:48: warning: always_inline function might not be inlinable [-Wattributes] 84 | attribute((always_inline)) static uint64_t replicate(uint64_t val, int bits){ | ^~~~~ insn.cpp:76:43: warning: always_inline function might not be inlinable [-Wattributes] 76 | attribute((always_inline)) static int lowestSetBit(uint64_t x){ | ^~~~ insn.cpp:68:43: warning: always_inline function might not be inlinable [-Wattributes] 68 | attribute((always_inline)) static int highestSetBit(uint64_t x){ | ^~~~~ insn.cpp:61:47: warning: always_inline function might not be inlinable [-Wattributes] 61 | attribute((always_inline)) static int64_t signExtend64(uint64_t v, int vSize){ | ^~~~ libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-insn.lo -MD -MP -MF .deps/liboffsetfinder64_la-insn.Tpo -c insn.cpp -o liboffsetfinder64_la-insn.o >/dev/null 2>&1 mv -f .deps/liboffsetfinder64_la-insn.Tpo .deps/liboffsetfinder64_la-insn.Plo /bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vsegment.lo -MD -MP -MF .deps/liboffsetfinder64_la-vsegment.Tpo -c -o liboffsetfinder64_la-vsegment.lo test -f 'vsegment.cpp' || echo './'vsegment.cpp libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/liboffsetfinder64 -I/usr/local/include -I/usr/local/include -g -O2 -std=c++11 -O3 -D EXPECTIONNAME=OFexception -MT liboffsetfinder64_la-vsegment.lo -MD -MP -MF .deps/liboffsetfinder64_la-vsegment.Tpo -c vsegment.cpp -fPIC -DPIC -o .libs/liboffsetfinder64_la-vsegment.o vsegment.cpp: In member function ‘tihmstar::offsetfinder64::loc_t tihmstar::offsetfinder64::vsegment::memmem(const void*, size_t)’: vsegment.cpp:40:24: error: ‘::memmem’ has not been declared 40 | if ((rt = (loc_t)::memmem(_buf, _size, little, little_len))) { | ^~ make[2]: [Makefile:495: liboffsetfinder64_la-vsegment.lo] Error 1 make[2]: Leaving directory '/home/neuroses/test2/liboffsetfinder64/liboffsetfinder64' make[1]: [Makefile:472: all-recursive] Error 1 make[1]: Leaving directory '/home/neuroses/test2/liboffsetfinder64' make: *** [Makefile:381: all] Error 2

What distro did you use?

ajsacco commented 4 years ago

Ah, I'm on macOS 10.15. I take it you use Linux?

djeverhart commented 4 years ago

Yeah. Life would be so much easier with a hackintosh but I have an AMD cpu

tihmstar commented 4 years ago

45dcc64c6e9755e143b533f7286f82d4969ed376 should fix the include error 8dd890defcf2f35b3f1ef45fda83b3a577147c5a should fix ‘::memmem’ has not been declared Please use descriptive titles next time. Make error can literally mean anything (like Make hasn't been installed on your system for example)