From 9c8bde853c0873da0f3e113128a4ba0e6acdc01f Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 27 Jun 2011 13:52:15 +0200 Subject: cc/gcc: add build-id option Add an option to configure gcc with --enable-linker-build-id. Reported-by: Bryan Hundven Signed-off-by: "Yann E. MORIN" 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 -- cgit v0.10.2-6-g49f6