From 71d5c495e9885ce175378cc3138f58361532e533 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 27 Jun 2011 15:15:00 +0200 Subject: cc/gcc: add option for linker hash style Add an option to specify the hash type that gcc will ask the linker to use. It is a provision for the upcoming 4.7, as no version currently supports it. Signed-off-by: "Yann E. MORIN" diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 2971795..a3fe606 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -277,6 +277,11 @@ config CC_GCC_HAS_PKGVERSION_BUGURL config CC_GCC_HAS_BUILD_ID bool +# For the upcoming 4.7 ? +# None have linker-hash-style support for now... +config CC_GCC_HAS_LNK_HASH_STYLE + 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 0fbb018..6fbc39a 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -211,3 +211,41 @@ config CC_GCC_BUILD_ID option is ignored. The default is off. + +choice CC_GCC_LNK_HASH_STYLE_CHOICE + bool + prompt "linker hash style" + depends on CC_GCC_HAS_LNK_HASH_STYLE + +config CC_GCC_LNK_HASH_STYLE_DEFAULT + bool + prompt "Default" + help + Do not specify any value, and use the default value (sysv). + +config CC_GCC_LNK_HASH_STYLE_SYSV + bool + prompt "sysv" + help + Force use of the SYSV hash style. + +config CC_GCC_LNK_HASH_STYLE_GNU + bool + prompt "gnu" + help + Force use of the GNU hash style. + +config CC_GCC_LNK_HASH_STYLE_BOTH + bool + prompt "both" + help + Force use of both hash styles. + +endchoice # CC_GCC_LNK_HASH_STYLE_CHOICE + +config CC_GCC_LNK_HASH_STYLE + string + default "" if CC_GCC_LNK_HASH_STYLE_DEFAULT + default "sysv" if CC_GCC_LNK_HASH_STYLE_SYSV + default "gnu" if CC_GCC_LNK_HASH_STYLE_GNU + default "both" if CC_GCC_LNK_HASH_STYLE_BOTH diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index a71fddd..8cc62ac 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -262,6 +262,11 @@ do_cc_core() { extra_config+=( --enable-linker-build-id ) fi + case "${CT_CC_GCC_LNK_HASH_STYLE}" in + "") ;; + *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );; + esac + 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) @@ -534,6 +539,11 @@ do_cc() { extra_config+=( --enable-linker-build-id ) fi + case "${CT_CC_GCC_LNK_HASH_STYLE}" in + "") ;; + *) extra_config+=( "--with-linker-hash-style=${CT_CC_GCC_LNK_HASH_STYLE}" );; + esac + if [ "${CT_CC_GCC_ENABLE_PLUGINS}" = "y" ]; then extra_config+=( --enable-plugin ) fi -- cgit v0.10.2-6-g49f6