Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48f239c9 authored by Andrew Hsieh's avatar Andrew Hsieh
Browse files

Disable canonical prefixes of system headers

GCC know a few pre-defined paths (relative to its location) to
search for headers, libraries, program, etc.  By default GCC prefixes
its own path(argv[0]) and calls realpath() which result in absolute
path with all symlink, . and .. removed.

It's usually good to have canonicalised paths, but absolute paths
in *.d file can cause unnecessary relinking when stale entries
in ccache cache hit

Add -no-canonical-prefixes (gcc>=4.6) and
-fno-canonical-system-headers (gcc>4.6) to disable realpath() on
prefixed paths

Change-Id: I58d739e61fb013015fb05a9c98b2132b307f915a
parent afe444a5
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -31,7 +31,8 @@ CLANG_CONFIG_UNKNOWN_CFLAGS := \
  -funswitch-loops \
  -Wno-psabi \
  -Wno-unused-but-set-variable \
  -Wno-unused-but-set-parameter
  -Wno-unused-but-set-parameter \
  -fno-canonical-system-headers

# Clang flags for all host rules
CLANG_CONFIG_HOST_EXTRA_ASFLAGS :=
+2 −1
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ HOST_GLOBAL_LDFLAGS += -static
endif # BUILD_HOST_static

HOST_GLOBAL_CFLAGS += -fPIC \
  -no-canonical-prefixes \
  -include $(call select-android-config-h,linux-x86)

# Disable new longjmp in glibc 2.11 and later. See bug 2967937.
+2 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \
			-Werror=format-security \
			-D_FORTIFY_SOURCE=2 \
			-fno-short-enums \
			-no-canonical-prefixes \
			-fno-canonical-system-headers \
			$(arch_variant_cflags) \
			-include $(android_config_h) \
			-I $(dir $(android_config_h))
+2 −0
Original line number Diff line number Diff line
@@ -87,6 +87,8 @@ TARGET_GLOBAL_CFLAGS += \
			-Werror=format-security \
			-D_FORTIFY_SOURCE=2 \
			-fno-short-enums \
			-no-canonical-prefixes \
			-fno-canonical-system-headers \
			$(arch_variant_cflags) \
			-include $(android_config_h) \
			-I $(dir $(android_config_h))
+2 −0
Original line number Diff line number Diff line
@@ -90,6 +90,8 @@ $(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \
			-Wa,--noexecstack \
			-Werror=format-security \
			-D_FORTIFY_SOURCE=2 \
			-no-canonical-prefixes \
			-fno-canonical-system-headers \
			$(arch_variant_cflags) \
			-include $(android_config_h) \
			-I $(dir $(android_config_h))
Loading