mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 12:50:09 +00:00

Currently, printf_stderr doesn't show up when running with ./mach run. This is because we run with -attach-console and that redirects stderr to a different file descriptor using freopen in UseParentConsole. The change from just using stderr directly happened in bug 340443 and was done to avoid some linking issues. That problem doesn't seem to apply anymore so you'd expect we'd be able to go back to the straightforward implemention that works even if stderr has been redirected. Unfortunately, Windows takes not buffering stderr very seriously and fprintf will write out the results character by character. This can cause log output lines to be intermixed which breaks log parsing in CI. We keep using fdopen to create a new FILE* that's buffered but instead of hard coding fd 2, we get the actual fd that corresponds to stderr using fileno. The mozglue implementation was cargo culted from xpcom, so we update it as well. Differential Revision: https://phabricator.services.mozilla.com/D98550