1
I switched from Cygwin to WSL recently and have a problem with Sourcetree and commithooks.
Sourcetree uses it's own version of Cygwin (32 bit) to run git. My development environment runs on WSL (which is 64 bit only).
So what I want to do is call WSL bash from Sourcetrees Cygwin Bash and execute the commithook checks. But this does not work, since Cygwin Bash is a 32bit program and thus cannot execute WSL bash, which is 64bit only. So Cygwin Bash sees the WSL bash as a non-executable file.
Is there a way to break out of the 32bit sandbox on Windows 10 to call a 64bit program?
1since Cygwin Bash is a 32bit program and thus cannot execute WSL bash, which is 64bit only -- huh? to the best of my knowledge, there's nothing stopping you form making that call either way, apart from maybe not being able to find the 64-bit executable (cause of WoW filesystem redirection, which only applies to Program Files and System32). If that's your issue, there's ways around it: https://stackoverflow.com/questions/39812882/python-subprocess-call-cannot-find-windows-bash-exe – Bob – 2017-06-14T09:46:07.630
1@Bob a 32-bit Win32 program can run a 64-bit Windows app without problem. However WSL only supports 64-bit ELF executables and you can't run 32-bit Linux apps – phuclv – 2017-06-14T09:49:57.540
Your W10 is 32 or 64-bit ? – Overmind – 2017-06-14T09:52:15.360
@LưuVĩnhPhúc I took this question as 32-bit Windows PE program calling a 64-bit Windows PE program (bash.exe, as the invoker for WSL). At no point is a 32-bit ELF involved. – Bob – 2017-06-14T10:00:16.683
@Overmind WSL is 64-bit only – phuclv – 2017-06-14T16:55:49.863