Fixed Blastdoor to work with Python 3, and added tests for demangling to ensure subprocess I/O works correctly, and renaming symbols in files.
Fixed Blastdoor to work with Python 3, and added tests for demangling to
ensure subprocess I/O works correctly, and renaming symbols in files.

Python3 fix includes no longer using poll() for input (the blocking read()
works just fine as long as you check for exceptions) and handling binary vs. non-binary strings properly.

Also a few small fixes in build_mpms that make it easier to test
merge_libraries:

- Now exits properly if postprocessing a library fails.
- Added a -B option so you can laBel the resulting MPM with a different label than the one in Rapid. This ensures that if you are using build_mpms.sh -b '--fetch_mpms=...' to fetch a subset of MPMs, you don't need to use the same label for your output MPM as the input MPM, so you don't pollute the normal label namespace.

PiperOrigin-RevId: 288805974

firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk,firebase/firebase-cpp-sdk