summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-06-27 11:52:15 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-06-27 11:52:15 (GMT)
commit9c8bde853c0873da0f3e113128a4ba0e6acdc01f (patch)
tree73d5765d9ea293c19a4d5e128f3c1e016e65579e
parent2dfb4412bf200b63bcd6c1868ea14bc5b8f259ad (diff)
cc/gcc: add build-id option
Add an option to configure gcc with --enable-linker-build-id. Reported-by: Bryan Hundven <bryanhundven@gmail.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-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