rofl0r / microsocks

tiny, portable SOCKS5 server with very moderate resource usage
Other
1.46k stars 262 forks source link

Android ARM compile #8

Open zz77 opened 5 years ago

zz77 commented 5 years ago

Hello.

I'm trying to cross-compile microsocks for android 5.1.1 with arm-linux-musleabi-gcc (from musl-cross-make). Compile is okay, but have issues with execute on my device.

Firstly i got error: error: only position independent executables (PIE) are supported.

And i added

CFLAGS += -fPIE LDFLAGS += -Wl,--dynamic-linker=/system/bin/linker -fPIE -pie

to make parametres.

After this changes and re-compiled i got another error on device:

WARNING: linker: Unsupported flags DT_FLAGS_1=0x8000000
WARNING: linker: ./microsocks has text relocations. This is wasting memory and prevents security hardening. Please fix.
CANNOT LINK EXECUTABLE: cannot locate symbol "__errno_location" referenced by "./microsocks"...

And now i dont know what to do. Can you help me with it? Please

Also i want to compile all dynamic libraries to binary, i dont know how to do it too... Sorry my english is bad, and i just only learning now about sources and compile, googled not give me any success. Thanks you for any help.

rofl0r commented 5 years ago

it seems your toolchain targets a different android or even libc version. i'd suggest you use musl-cross-make and compile a static binary. (hint add -static to your LDFLAGS, that may even work with the existing toolchain)