On Tue, Mar 25, 2025 at 11:32:14PM +0000, Johannes Schindelin via GitGitGadget wrote: > In my setup, clang finds `/usr/local/cuda` and hence the output of > `clang -v` ends with this line: > > Found CUDA installation: /usr/local/cuda, version > > This confuses the `detect-compiler` script because it matches _all_ > lines that contain the needle "version" surrounded by spaces. As a > consequence, the `get_family` function returns two lines: "Ubuntu clang" > and above-mentioned line, which the `case` statement does not handle > well and hence reports "unknown compiler family" instead of the expected > set of "clang14", "clang13", ..., "clang1" output. > > Let's unconfuse the script by letting it parse the first matching line > and ignore the rest. Makes sense. I wondered if this: > get_version_line() { > - LANG=C LC_ALL=C $CC -v 2>&1 | grep ' version ' > + LANG=C LC_ALL=C $CC -v 2>&1 | sed -n '/ version /{p;q}' might be more readable with "grep -m1", but it looks like "-m" is not in POSIX. So what you wrote is probably safer. -Peff