This saves a lot of relocations in optimized object files (at the cost
of some cost/increase in linked executable bytes), but gold's 32 bit
gdb-index support has a bug (
https://sourceware.org/bugzilla/show_bug.cgi?id=21894 ) so we can't
switch to this unconditionally. (& even if it weren't for that bug, one
might argue that some users would want to optimize in one direction or
the other - prioritizing object size or linked executable size)
Mostly sending this for review to bikeshed the flag name. (let's
bikeshed the IR names in the LLVM code review)
-fdwarf-base-address is my first prototype. Issues:
- Some existing flags (like -fdebug-types-section) use 'debug' rather than 'dwarf', but Clang supports formats other than dwarf, so perhaps names related to dwarf-specific features should have dwarf in the name, though it's unlikely GCC would ever be consistent with that goal?
- base addresses are part of DWARF even beyond this change (eg: range lists are relative to the CU's base address - which is somewhat unrelated to the base address specifiers used in the range list). So should this specifically call out that it's related to ranges? that it's base address /specifiers/ that are in use?