summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/cc/gcc.in5
-rw-r--r--config/cc/gcc.in.213
-rw-r--r--scripts/build/cc/gcc.sh8
3 files changed, 26 insertions, 0 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index b29529f..2971795 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -237,6 +237,7 @@ config CC_GCC_4_5
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_LTO
select CC_GCC_HAS_PKGVERSION_BUGURL
+ select CC_GCC_HAS_BUILD_ID
config CC_GCC_4_5_or_later
bool
@@ -250,6 +251,7 @@ config CC_GCC_4_6
select CC_GCC_HAS_GRAPHITE
select CC_GCC_HAS_LTO
select CC_GCC_HAS_PKGVERSION_BUGURL
+ select CC_GCC_HAS_BUILD_ID
config CC_GCC_4_6_or_later
bool
@@ -272,6 +274,9 @@ config CC_GCC_HAS_LTO
config CC_GCC_HAS_PKGVERSION_BUGURL
bool
+config CC_GCC_HAS_BUILD_ID
+ bool
+
# Only enable gcc's support for plugins if binutils has it as well
# They are usefull only when doing LTO, but it does no harm enabling
# them even without LTO.
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
index c8d991a..0fbb018 100644
--- a/config/cc/gcc.in.2
+++ b/config/cc/gcc.in.2
@@ -198,3 +198,16 @@ config CC_GCC_LDBL_128
glibc >= 2.4, 64-bit otherwise)
If in doubt, keep the default, ie. 'M'.
+
+config CC_GCC_BUILD_ID
+ bool
+ prompt "Enable build-id"
+ depends on CC_GCC_HAS_BUILD_ID
+ help
+ Tells GCC to pass --build-id option to the linker for all final
+ links (links performed without the -r or --relocatable option),
+ if the linker supports it. If you say 'y' here, but your linker
+ does not support --build-id option, a warning is issued and this
+ option is ignored.
+
+ The default is off.
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index ea5adfd..a71fddd 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -258,6 +258,10 @@ do_cc_core() {
"") extra_config+=("--without-long-double-128");;
esac
+ if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
+ extra_config+=( --enable-linker-build-id )
+ fi
+
CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
# Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
@@ -526,6 +530,10 @@ do_cc() {
"") extra_config+=("--without-long-double-128");;
esac
+ if [ "${CT_CC_GCC_BUILD_ID}" = "y" ]; then
+ extra_config+=( --enable-linker-build-id )
+ fi
+
if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then
extra_config+=( --enable-plugin )
fi