Are you doing this from cygwin shell with cygwin build of b2 or from Windows shell with msvc build of b2, or something else?

Windows shell with msvc build of b2

It seems that you actually use Windows shell with cygwin gcc, so when Boost.Build asks gcc where its toolchain is installed it reports /usr, and that clearly does not work in Windows shell.

Could I create user-config.jam entries for ar and ranlib?

Do you have a particular reason for using cygwin? If you would like to test with gcc, would not mingw make for a more convenient option?

I do have mingw installed, and use it for some testing. But the mingw distributions I've tried do not handle exceptions correctly, so my exception handling tests in filesystem and system libraries fail, and that's irritating.