mozilla/rust — pull request #14672 by michaelwoerister (2014-06-05 10:04:43+00:00)
Title: Add workaround for archive reading bug in LLDB.

LLDB contains a bug that makes it crash if an archive it reads contains a file the name of which is exactly 16 bytes long. This bug recently has made it impossible to debug Rust applications with LLDB because some standard libraries triggered it indirectly:
For rlibs, rustc includes the LLVM bytecode in the archive, giving it the extension ".bc.deflate". For liballoc (for example) this results in the 16 character filename "alloc.bc.deflate", which is bad.

This commit replaces the ".bc.deflate" suffix with ".bytecode.deflate" which itself is already longer than 16 bytes, thus making sure that the bug won't be run into anymore.

The bug could still be run into with 14 character filenames because then the .o files will trigger it. However, this is much more rare and working around it would introduce more complexity than necessary at the moment. It can always be done later on, if the need arises.

Fixes #14356.

Q: Should we try to stay backwards compatible by looking for *xxx.bc.deflate* if *xxx.bytecode.deflate* is not found?