Move superenv make_fuss output back to stderr
In 6e3a585607116d06f47aac2ff5a649f2898216f0 ("Improve superenv add/remove message."), more debugging information was added to the "make_fuss" output generated by the superenv compiler wrapper. This resulted in some breakage in configure scripts that inspect stderr, so in e1bd9b9e980c433878e60833f09964b8ca996657 ("Don't use stderr for make_fuss output."), the output was moved to stdout. This only appeared to solve the problem, since stdout is buffered but stderr is not. Later, in fb749e47509b77b5bd89e7b14f0a1097d4af7f40, Homebrew started generating logs even in verbose mode. This had the side effect of moving stdout/stderr from a TTY to a pipe, and thus stdout was no longer line-buffered. Since it was not line-buffered, and Ruby's internal buffers were not flushed, the debug output was being lost. This was addressed in 2d5724af8613c820b8c14f4171fe1de6a17f10c3 ("cc: ensure wrapper output is always flushed"). This caused stdout to be flushed during configure, which resurfaced the original bug that prompted e1bd9b9e980c433878e60833f09964b8ca996657. This was fixed by disabling the debug output during configure, in f1779837a46a58520560fba3850a0e2992284d0a. Since the original bug has been addressed in a more robust way, we can move the debug output back to stderr. Fixes Homebrew/homebrew#23923.
Loading
Please register or sign in to comment