Stop encoding absolute paths in symbols
GCC & Clang encode the current working directory into the symbol files.
Even if the binaries are stripped before being installed, the build-id
hash will be different. This means that two different checkouts will
produce different installed binaries, even if the sources are identical.
To prevent this, set PWD=/proc/self/cwd, so that it replaces the
absolute path with the static path /proc/self/cwd. With GCC, use
-fdebug-prefix-map to remove that static path. Our clang does not yet
support this flag, but it was merged in r250094.
This does change the behavior when using gdb -- you now need to be in
$ANDROID_BUILD_TOP before gdb will load the sources.
Bug: 24204119
Change-Id: I792d65b042b7a3fdc78d567c5a6e93cdf0141b9b
diff --git a/core/clang/config.mk b/core/clang/config.mk
index 6887522..cd91c6c 100644
--- a/core/clang/config.mk
+++ b/core/clang/config.mk
@@ -78,7 +78,8 @@
-Wno-unused-local-typedefs \
-Wunused-but-set-parameter \
-Wunused-but-set-variable \
- -fdiagnostics-color
+ -fdiagnostics-color \
+ -fdebug-prefix-map=/proc/self/cwd=
# Clang flags for all host rules
CLANG_CONFIG_HOST_EXTRA_ASFLAGS :=