title: Why does ASAN_SYMBOLIZER_PATH no longer work with version adorned binaries
body: <p>On Ubuntu 14.10, the <code>llvm-symbolizer</code> program is installed as <code>/usr/bin/llvm-symbolizer-3.5</code>. Normally, address sanitizer wants to find a binary named <code>llvm-symbolizer</code> in <code>PATH</code>. However, as a workaround, it was possible to explicitly set <code>ASAN_SYMBOLIZER_PATH</code>. So, setting <code>ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5</code> in the environment would let an address sanitizer instrumented program print symbolized errors.</p>
  
  <p>On Ubuntu 16.04, the <code>llvm-symbolizer</code> program is again installed with a version suffix, now as <code>/usr/bin/llvm-symbolizer-3.8</code>. However, the <code>ASAN_SYMBOLIZER_PATH</code> setting no longer seems to work. Running an ASAN instrumented program with <code>ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.8</code> set in the environment generates the following error when ASAN detects an error:</p>
  
  <pre><code>==18718==ERROR: External symbolizer path is set to '/usr/bin/llvm-symbolizer-3.8' which isn't a known symbolizer. Please set the path to the llvm-symbolizer binary or other known tool.
  </code></pre>
  
  <p>Does anyone know why this behavior changed, or how to restore the old behavior? This seems unreasonably restrictive. The symbolizer program I've pointed ASAN to is definitely a known symbolizer, it just happens to have an Ubuntu mandated version tag at the end.</p>
  
  <p>Note that adjusting <code>PATH</code> doesn't help here, since Ubuntu doesn't ship an <code>llvm-symbolizer</code> binary that comes without a version adornment.</p>