Blob Blame History Raw
commit d343ed4f0f11f2902d3ca858a4a0ecb8f1685587
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date:   Tue Jun 2 20:23:06 2015 +0000

    GCC 5.1 is too smart. Disable Identical Code Folding for preload libs.
    
    We want to disabled Identical Code Folding for the tools preload shared
    objects to get better backraces. For GCC 5.1 -fipa-icf is enabled by
    default at -O2.
    
        The optimization reduces code size and may disturb
        unwind stacks by replacing a function by equivalent
        one with a different name.
    
    Add a configure check to see if GCC supports -fno-ipa-icf.
    If it does then add the flag to AM_CFLAGS_PSO_BASE.
    
    Without this GCC will notice some of the preload replacement functions
    in vg_replace_strmem are identical and fold them all into one picking
    a random (existing) function name. This causes backtraces showing
    completely unexpected function names.
    
    git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15305 a5019735-40e9-0310-863c-91ae7b9d1cf9

diff --git a/Makefile.all.am b/Makefile.all.am
index d587548..a04cb4a 100644
--- a/Makefile.all.am
+++ b/Makefile.all.am
@@ -133,10 +133,10 @@ endif
 if VGCONF_OS_IS_DARWIN
 AM_CFLAGS_PSO_BASE = -dynamic \
 		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-		     -fpic -fPIC -fno-builtin
+		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 else
 AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-		     -fpic -fno-builtin
+		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 endif
 
 
--- valgrind-3.10.1/configure.ac.orig	2015-06-03 14:28:49.535167119 +0200
+++ valgrind-3.10.1/configure.ac	2015-06-03 14:29:16.594455917 +0200
@@ -1744,6 +1744,32 @@
   CXXFLAGS="$CXXFLAGS -fno-stack-protector"
 fi
 
+# Does GCC support disabling Identical Code Folding?
+# We want to disabled Identical Code Folding for the
+# tools preload shared objects to get better backraces.
+# For GCC 5.1+ -fipa-icf is enabled by default at -O2.
+# "The optimization reduces code size and may disturb
+#  unwind stacks by replacing a function by equivalent
+#  one with a different name."
+AC_MSG_CHECKING([if gcc accepts -fno-ipa-icf])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-fno-ipa-icf"
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+  return 0;
+]])], [
+no_ipa_icf=yes
+FLAG_FNO_IPA_ICF="-fno-ipa-icf"
+AC_MSG_RESULT([yes])
+], [
+no_ipa_icf=no
+FLAG_FNO_IPA_ICF=""
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+AC_SUBST(FLAG_FNO_IPA_ICF)
 
 # does this compiler support --param inline-unit-growth=... ?
 
Only in valgrind-3.10.1: autom4te.cache
diff -ru valgrind-3.10.1.orig/auxprogs/Makefile.in valgrind-3.10.1/auxprogs/Makefile.in
--- valgrind-3.10.1.orig/auxprogs/Makefile.in	2015-06-03 14:30:23.567170612 +0200
+++ valgrind-3.10.1/auxprogs/Makefile.in	2015-06-03 14:39:57.289288083 +0200
@@ -177,6 +177,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -317,7 +318,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -329,7 +330,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/cachegrind/Makefile.in valgrind-3.10.1/cachegrind/Makefile.in
--- valgrind-3.10.1.orig/cachegrind/Makefile.in	2015-06-03 14:30:23.564170581 +0200
+++ valgrind-3.10.1/cachegrind/Makefile.in	2015-06-03 14:39:57.370288946 +0200
@@ -231,6 +231,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -372,7 +373,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -384,7 +385,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/cachegrind/tests/Makefile.in valgrind-3.10.1/cachegrind/tests/Makefile.in
--- valgrind-3.10.1.orig/cachegrind/tests/Makefile.in	2015-06-03 14:30:23.563170570 +0200
+++ valgrind-3.10.1/cachegrind/tests/Makefile.in	2015-06-03 14:39:57.433289617 +0200
@@ -190,6 +190,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -330,7 +331,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -342,7 +343,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/cachegrind/tests/x86/Makefile.in valgrind-3.10.1/cachegrind/tests/x86/Makefile.in
--- valgrind-3.10.1.orig/cachegrind/tests/x86/Makefile.in	2015-06-03 14:30:23.562170559 +0200
+++ valgrind-3.10.1/cachegrind/tests/x86/Makefile.in	2015-06-03 14:39:57.489290214 +0200
@@ -142,6 +142,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -282,7 +283,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -294,7 +295,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/callgrind/Makefile.in valgrind-3.10.1/callgrind/Makefile.in
--- valgrind-3.10.1.orig/callgrind/Makefile.in	2015-06-03 14:30:23.561170548 +0200
+++ valgrind-3.10.1/callgrind/Makefile.in	2015-06-03 14:39:57.618291589 +0200
@@ -244,6 +244,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -385,7 +386,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -397,7 +398,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/callgrind/tests/Makefile.in valgrind-3.10.1/callgrind/tests/Makefile.in
--- valgrind-3.10.1.orig/callgrind/tests/Makefile.in	2015-06-03 14:30:23.559170527 +0200
+++ valgrind-3.10.1/callgrind/tests/Makefile.in	2015-06-03 14:39:57.677292217 +0200
@@ -183,6 +183,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -323,7 +324,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -335,7 +336,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/config.h.in valgrind-3.10.1/config.h.in
--- valgrind-3.10.1.orig/config.h.in	2015-06-03 14:30:23.624171221 +0200
+++ valgrind-3.10.1/config.h.in	2015-06-03 14:30:34.000000000 +0200
@@ -33,62 +33,12 @@
 /* path to GDB */
 #undef GDB_PATH
 
-/* Define to 1 if you're using glibc 2.10.x */
-#undef GLIBC_2_10
+/* Define to 1 if index() and strlen() have been optimized heavily (x86 glibc
+   >= 2.12) */
+#undef GLIBC_MANDATORY_INDEX_AND_STRLEN_REDIRECT
 
-/* Define to 1 if you're using glibc 2.11.x */
-#undef GLIBC_2_11
-
-/* Define to 1 if you're using glibc 2.12.x */
-#undef GLIBC_2_12
-
-/* Define to 1 if you're using glibc 2.13.x */
-#undef GLIBC_2_13
-
-/* Define to 1 if you're using glibc 2.14.x */
-#undef GLIBC_2_14
-
-/* Define to 1 if you're using glibc 2.15.x */
-#undef GLIBC_2_15
-
-/* Define to 1 if you're using glibc 2.16.x */
-#undef GLIBC_2_16
-
-/* Define to 1 if you're using glibc 2.17.x */
-#undef GLIBC_2_17
-
-/* Define to 1 if you're using glibc 2.18.x */
-#undef GLIBC_2_18
-
-/* Define to 1 if you're using glibc 2.19.x */
-#undef GLIBC_2_19
-
-/* Define to 1 if you're using glibc 2.2.x */
-#undef GLIBC_2_2
-
-/* Define to 1 if you're using glibc 2.20.x */
-#undef GLIBC_2_20
-
-/* Define to 1 if you're using glibc 2.3.x */
-#undef GLIBC_2_3
-
-/* Define to 1 if you're using glibc 2.4.x */
-#undef GLIBC_2_4
-
-/* Define to 1 if you're using glibc 2.5.x */
-#undef GLIBC_2_5
-
-/* Define to 1 if you're using glibc 2.6.x */
-#undef GLIBC_2_6
-
-/* Define to 1 if you're using glibc 2.7.x */
-#undef GLIBC_2_7
-
-/* Define to 1 if you're using glibc 2.8.x */
-#undef GLIBC_2_8
-
-/* Define to 1 if you're using glibc 2.9.x */
-#undef GLIBC_2_9
+/* Define to 1 if strlen() has been optimized heavily (amd64 glibc >= 2.10) */
+#undef GLIBC_MANDATORY_STRLEN_REDIRECT
 
 /* Define to 1 if gcc/as can do Altivec. */
 #undef HAS_ALTIVEC
Only in valgrind-3.10.1: config.h.in~
diff -ru valgrind-3.10.1.orig/configure valgrind-3.10.1/configure
--- valgrind-3.10.1.orig/configure	2015-06-03 14:30:23.624171221 +0200
+++ valgrind-3.10.1/configure	2015-06-03 14:40:03.112350132 +0200
@@ -685,6 +685,7 @@
 DWARF4_FALSE
 DWARF4_TRUE
 FLAG_UNLIMITED_INLINE_UNIT_GROWTH
+FLAG_FNO_IPA_ICF
 FLAG_FNO_STACK_PROTECTOR
 FLAG_W_EXTRA
 FLAG_W_NO_STATIC_LOCAL_IN_INLINE
@@ -8517,6 +8518,51 @@
   CXXFLAGS="$CXXFLAGS -fno-stack-protector"
 fi
 
+# Does GCC support disabling Identical Code Folding?
+# We want to disabled Identical Code Folding for the
+# tools preload shared objects to get better backraces.
+# For GCC 5.1+ -fipa-icf is enabled by default at -O2.
+# "The optimization reduces code size and may disturb
+#  unwind stacks by replacing a function by equivalent
+#  one with a different name."
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc accepts -fno-ipa-icf" >&5
+$as_echo_n "checking if gcc accepts -fno-ipa-icf... " >&6; }
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-fno-ipa-icf"
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+no_ipa_icf=yes
+FLAG_FNO_IPA_ICF="-fno-ipa-icf"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+
+no_ipa_icf=no
+FLAG_FNO_IPA_ICF=""
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS=$safe_CFLAGS
+
+
 
 # does this compiler support --param inline-unit-growth=... ?
 
diff -ru valgrind-3.10.1.orig/coregrind/Makefile.in valgrind-3.10.1/coregrind/Makefile.in
--- valgrind-3.10.1.orig/coregrind/Makefile.in	2015-06-03 14:30:23.654171541 +0200
+++ valgrind-3.10.1/coregrind/Makefile.in	2015-06-03 14:39:58.470300668 +0200
@@ -811,6 +811,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -951,7 +952,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -963,7 +964,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/docs/Makefile.in valgrind-3.10.1/docs/Makefile.in
--- valgrind-3.10.1.orig/docs/Makefile.in	2015-06-03 14:30:23.669171701 +0200
+++ valgrind-3.10.1/docs/Makefile.in	2015-06-03 14:39:58.515301147 +0200
@@ -99,6 +99,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
diff -ru valgrind-3.10.1.orig/drd/Makefile.in valgrind-3.10.1/drd/Makefile.in
--- valgrind-3.10.1.orig/drd/Makefile.in	2015-06-03 14:30:23.623171210 +0200
+++ valgrind-3.10.1/drd/Makefile.in	2015-06-03 14:39:58.673302831 +0200
@@ -294,6 +294,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -435,7 +436,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -447,7 +448,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/drd/tests/Makefile.in valgrind-3.10.1/drd/tests/Makefile.in
--- valgrind-3.10.1.orig/drd/tests/Makefile.in	2015-06-03 14:30:23.620171178 +0200
+++ valgrind-3.10.1/drd/tests/Makefile.in	2015-06-03 14:39:58.842304631 +0200
@@ -566,6 +566,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -706,7 +707,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -718,7 +719,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/Makefile.in valgrind-3.10.1/exp-bbv/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/Makefile.in	2015-06-03 14:30:23.574170687 +0200
+++ valgrind-3.10.1/exp-bbv/Makefile.in	2015-06-03 14:39:58.915305410 +0200
@@ -184,6 +184,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -325,7 +326,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -337,7 +338,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/amd64-linux/Makefile.in valgrind-3.10.1/exp-bbv/tests/amd64-linux/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/amd64-linux/Makefile.in	2015-06-03 14:30:23.571170655 +0200
+++ valgrind-3.10.1/exp-bbv/tests/amd64-linux/Makefile.in	2015-06-03 14:39:59.035306688 +0200
@@ -162,6 +162,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -302,7 +303,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -314,7 +315,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/arm-linux/Makefile.in valgrind-3.10.1/exp-bbv/tests/arm-linux/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/arm-linux/Makefile.in	2015-06-03 14:30:23.573170676 +0200
+++ valgrind-3.10.1/exp-bbv/tests/arm-linux/Makefile.in	2015-06-03 14:39:59.093307306 +0200
@@ -145,6 +145,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -285,7 +286,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -297,7 +298,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/Makefile.in valgrind-3.10.1/exp-bbv/tests/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/Makefile.in	2015-06-03 14:30:23.573170676 +0200
+++ valgrind-3.10.1/exp-bbv/tests/Makefile.in	2015-06-03 14:39:58.972306017 +0200
@@ -173,6 +173,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -313,7 +314,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -325,7 +326,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/ppc32-linux/Makefile.in valgrind-3.10.1/exp-bbv/tests/ppc32-linux/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/ppc32-linux/Makefile.in	2015-06-03 14:30:23.572170666 +0200
+++ valgrind-3.10.1/exp-bbv/tests/ppc32-linux/Makefile.in	2015-06-03 14:39:59.154307956 +0200
@@ -145,6 +145,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -285,7 +286,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -297,7 +298,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/x86/Makefile.in valgrind-3.10.1/exp-bbv/tests/x86/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/x86/Makefile.in	2015-06-03 14:30:23.569170634 +0200
+++ valgrind-3.10.1/exp-bbv/tests/x86/Makefile.in	2015-06-03 14:39:59.274309235 +0200
@@ -154,6 +154,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -294,7 +295,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -306,7 +307,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-bbv/tests/x86-linux/Makefile.in valgrind-3.10.1/exp-bbv/tests/x86-linux/Makefile.in
--- valgrind-3.10.1.orig/exp-bbv/tests/x86-linux/Makefile.in	2015-06-03 14:30:23.573170676 +0200
+++ valgrind-3.10.1/exp-bbv/tests/x86-linux/Makefile.in	2015-06-03 14:39:59.212308574 +0200
@@ -145,6 +145,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -285,7 +286,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -297,7 +298,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-dhat/Makefile.in valgrind-3.10.1/exp-dhat/Makefile.in
--- valgrind-3.10.1.orig/exp-dhat/Makefile.in	2015-06-03 14:30:23.561170548 +0200
+++ valgrind-3.10.1/exp-dhat/Makefile.in	2015-06-03 14:39:59.347310013 +0200
@@ -208,6 +208,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -349,7 +350,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -361,7 +362,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-dhat/tests/Makefile.in valgrind-3.10.1/exp-dhat/tests/Makefile.in
--- valgrind-3.10.1.orig/exp-dhat/tests/Makefile.in	2015-06-03 14:30:23.561170548 +0200
+++ valgrind-3.10.1/exp-dhat/tests/Makefile.in	2015-06-03 14:39:59.384310407 +0200
@@ -99,6 +99,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
diff -ru valgrind-3.10.1.orig/exp-sgcheck/Makefile.in valgrind-3.10.1/exp-sgcheck/Makefile.in
--- valgrind-3.10.1.orig/exp-sgcheck/Makefile.in	2015-06-03 14:30:23.857173707 +0200
+++ valgrind-3.10.1/exp-sgcheck/Makefile.in	2015-06-03 14:39:59.479311419 +0200
@@ -227,6 +227,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -368,7 +369,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -380,7 +381,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/exp-sgcheck/tests/Makefile.in valgrind-3.10.1/exp-sgcheck/tests/Makefile.in
--- valgrind-3.10.1.orig/exp-sgcheck/tests/Makefile.in	2015-06-03 14:30:23.857173707 +0200
+++ valgrind-3.10.1/exp-sgcheck/tests/Makefile.in	2015-06-03 14:39:59.549312165 +0200
@@ -170,6 +170,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -310,7 +311,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -322,7 +323,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/gdbserver_tests/Makefile.in valgrind-3.10.1/gdbserver_tests/Makefile.in
--- valgrind-3.10.1.orig/gdbserver_tests/Makefile.in	2015-06-03 14:30:23.689171914 +0200
+++ valgrind-3.10.1/gdbserver_tests/Makefile.in	2015-06-03 14:39:59.617312890 +0200
@@ -180,6 +180,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -320,7 +321,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -332,7 +333,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/helgrind/Makefile.in valgrind-3.10.1/helgrind/Makefile.in
--- valgrind-3.10.1.orig/helgrind/Makefile.in	2015-06-03 14:30:23.601170975 +0200
+++ valgrind-3.10.1/helgrind/Makefile.in	2015-06-03 14:39:59.728314073 +0200
@@ -259,6 +259,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -400,7 +401,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -412,7 +413,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/helgrind/tests/Makefile.in valgrind-3.10.1/helgrind/tests/Makefile.in
--- valgrind-3.10.1.orig/helgrind/tests/Makefile.in	2015-06-03 14:30:23.597170933 +0200
+++ valgrind-3.10.1/helgrind/tests/Makefile.in	2015-06-03 14:39:59.839315256 +0200
@@ -396,6 +396,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -536,7 +537,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -548,7 +549,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/include/Makefile.in valgrind-3.10.1/include/Makefile.in
--- valgrind-3.10.1.orig/include/Makefile.in	2015-06-03 14:30:23.631171295 +0200
+++ valgrind-3.10.1/include/Makefile.in	2015-06-03 14:39:59.883315724 +0200
@@ -132,6 +132,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
diff -ru valgrind-3.10.1.orig/lackey/Makefile.in valgrind-3.10.1/lackey/Makefile.in
--- valgrind-3.10.1.orig/lackey/Makefile.in	2015-06-03 14:30:23.602170986 +0200
+++ valgrind-3.10.1/lackey/Makefile.in	2015-06-03 14:39:59.954316481 +0200
@@ -184,6 +184,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -325,7 +326,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -337,7 +338,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/lackey/tests/Makefile.in valgrind-3.10.1/lackey/tests/Makefile.in
--- valgrind-3.10.1.orig/lackey/tests/Makefile.in	2015-06-03 14:30:23.602170986 +0200
+++ valgrind-3.10.1/lackey/tests/Makefile.in	2015-06-03 14:39:59.991316875 +0200
@@ -102,6 +102,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
diff -ru valgrind-3.10.1.orig/Makefile.in valgrind-3.10.1/Makefile.in
--- valgrind-3.10.1.orig/Makefile.in	2015-06-03 14:30:23.855173685 +0200
+++ valgrind-3.10.1/Makefile.in	2015-06-03 14:40:02.788346679 +0200
@@ -210,6 +210,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -351,7 +352,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -363,7 +364,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/Makefile.vex.in valgrind-3.10.1/Makefile.vex.in
--- valgrind-3.10.1.orig/Makefile.vex.in	2015-06-03 14:30:23.565170591 +0200
+++ valgrind-3.10.1/Makefile.vex.in	2015-06-03 14:39:57.216287305 +0200
@@ -283,6 +283,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -423,7 +424,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -435,7 +436,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/massif/Makefile.in valgrind-3.10.1/massif/Makefile.in
--- valgrind-3.10.1.orig/massif/Makefile.in	2015-06-03 14:30:23.638171370 +0200
+++ valgrind-3.10.1/massif/Makefile.in	2015-06-03 14:40:00.072317738 +0200
@@ -239,6 +239,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -380,7 +381,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -392,7 +393,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/massif/tests/Makefile.in valgrind-3.10.1/massif/tests/Makefile.in
--- valgrind-3.10.1.orig/massif/tests/Makefile.in	2015-06-03 14:30:23.637171359 +0200
+++ valgrind-3.10.1/massif/tests/Makefile.in	2015-06-03 14:40:00.148318548 +0200
@@ -223,6 +223,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -363,7 +364,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -375,7 +376,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/Makefile.in valgrind-3.10.1/memcheck/Makefile.in
--- valgrind-3.10.1.orig/memcheck/Makefile.in	2015-06-03 14:30:23.855173685 +0200
+++ valgrind-3.10.1/memcheck/Makefile.in	2015-06-03 14:40:00.251319646 +0200
@@ -257,6 +257,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -398,7 +399,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -410,7 +411,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/amd64/Makefile.in valgrind-3.10.1/memcheck/tests/amd64/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/amd64/Makefile.in	2015-06-03 14:30:23.766172736 +0200
+++ valgrind-3.10.1/memcheck/tests/amd64/Makefile.in	2015-06-03 14:40:00.633323716 +0200
@@ -190,6 +190,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -330,7 +331,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -342,7 +343,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/amd64-linux/Makefile.in valgrind-3.10.1/memcheck/tests/amd64-linux/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/amd64-linux/Makefile.in	2015-06-03 14:30:23.725172298 +0200
+++ valgrind-3.10.1/memcheck/tests/amd64-linux/Makefile.in	2015-06-03 14:40:00.564322981 +0200
@@ -145,6 +145,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -285,7 +286,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -297,7 +298,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/common/Makefile.in valgrind-3.10.1/memcheck/tests/common/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/common/Makefile.in	2015-06-03 14:30:23.696171989 +0200
+++ valgrind-3.10.1/memcheck/tests/common/Makefile.in	2015-06-03 14:40:00.684324260 +0200
@@ -124,6 +124,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -264,7 +265,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -276,7 +277,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/darwin/Makefile.in valgrind-3.10.1/memcheck/tests/darwin/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/darwin/Makefile.in	2015-06-03 14:30:23.730172352 +0200
+++ valgrind-3.10.1/memcheck/tests/darwin/Makefile.in	2015-06-03 14:40:00.746324920 +0200
@@ -165,6 +165,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -305,7 +306,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -317,7 +318,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/linux/Makefile.in valgrind-3.10.1/memcheck/tests/linux/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/linux/Makefile.in	2015-06-03 14:30:23.728172330 +0200
+++ valgrind-3.10.1/memcheck/tests/linux/Makefile.in	2015-06-03 14:40:00.814325645 +0200
@@ -191,6 +191,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -331,7 +332,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -343,7 +344,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/Makefile.in valgrind-3.10.1/memcheck/tests/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/Makefile.in	2015-06-03 14:30:23.780172885 +0200
+++ valgrind-3.10.1/memcheck/tests/Makefile.in	2015-06-03 14:40:00.500322299 +0200
@@ -845,6 +845,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -985,7 +986,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -997,7 +998,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/ppc32/Makefile.in valgrind-3.10.1/memcheck/tests/ppc32/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/ppc32/Makefile.in	2015-06-03 14:30:23.693171957 +0200
+++ valgrind-3.10.1/memcheck/tests/ppc32/Makefile.in	2015-06-03 14:40:00.874326284 +0200
@@ -142,6 +142,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -282,7 +283,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -294,7 +295,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/ppc64/Makefile.in valgrind-3.10.1/memcheck/tests/ppc64/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/ppc64/Makefile.in	2015-06-03 14:30:23.772172800 +0200
+++ valgrind-3.10.1/memcheck/tests/ppc64/Makefile.in	2015-06-03 14:40:00.935326934 +0200
@@ -142,6 +142,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -282,7 +283,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -294,7 +295,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/s390x/Makefile.in valgrind-3.10.1/memcheck/tests/s390x/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/s390x/Makefile.in	2015-06-03 14:30:23.692171946 +0200
+++ valgrind-3.10.1/memcheck/tests/s390x/Makefile.in	2015-06-03 14:40:01.002327648 +0200
@@ -166,6 +166,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -306,7 +307,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -318,7 +319,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/vbit-test/Makefile.in valgrind-3.10.1/memcheck/tests/vbit-test/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/vbit-test/Makefile.in	2015-06-03 14:30:23.698172010 +0200
+++ valgrind-3.10.1/memcheck/tests/vbit-test/Makefile.in	2015-06-03 14:40:01.080328479 +0200
@@ -164,6 +164,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -304,7 +305,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -316,7 +317,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/x86/Makefile.in valgrind-3.10.1/memcheck/tests/x86/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/x86/Makefile.in	2015-06-03 14:30:23.722172267 +0200
+++ valgrind-3.10.1/memcheck/tests/x86/Makefile.in	2015-06-03 14:40:01.223330003 +0200
@@ -192,6 +192,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -332,7 +333,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -344,7 +345,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/memcheck/tests/x86-linux/Makefile.in valgrind-3.10.1/memcheck/tests/x86-linux/Makefile.in
--- valgrind-3.10.1.orig/memcheck/tests/x86-linux/Makefile.in	2015-06-03 14:30:23.777172853 +0200
+++ valgrind-3.10.1/memcheck/tests/x86-linux/Makefile.in	2015-06-03 14:40:01.144329161 +0200
@@ -165,6 +165,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -305,7 +306,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -317,7 +318,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/mpi/Makefile.in valgrind-3.10.1/mpi/Makefile.in
--- valgrind-3.10.1.orig/mpi/Makefile.in	2015-06-03 14:30:23.858173717 +0200
+++ valgrind-3.10.1/mpi/Makefile.in	2015-06-03 14:40:01.290330717 +0200
@@ -157,6 +157,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -297,7 +298,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -309,7 +310,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/Makefile.in valgrind-3.10.1/none/Makefile.in
--- valgrind-3.10.1.orig/none/Makefile.in	2015-06-03 14:30:24.086176150 +0200
+++ valgrind-3.10.1/none/Makefile.in	2015-06-03 14:40:01.365331516 +0200
@@ -182,6 +182,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -323,7 +324,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -335,7 +336,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/amd64/Makefile.in valgrind-3.10.1/none/tests/amd64/Makefile.in
--- valgrind-3.10.1.orig/none/tests/amd64/Makefile.in	2015-06-03 14:30:24.020175446 +0200
+++ valgrind-3.10.1/none/tests/amd64/Makefile.in	2015-06-03 14:40:01.616334191 +0200
@@ -389,6 +389,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -529,7 +530,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -541,7 +542,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/arm/Makefile.in valgrind-3.10.1/none/tests/arm/Makefile.in
--- valgrind-3.10.1.orig/none/tests/arm/Makefile.in	2015-06-03 14:30:24.073176012 +0200
+++ valgrind-3.10.1/none/tests/arm/Makefile.in	2015-06-03 14:40:01.707335160 +0200
@@ -202,6 +202,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -342,7 +343,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -354,7 +355,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/arm64/Makefile.in valgrind-3.10.1/none/tests/arm64/Makefile.in
--- valgrind-3.10.1.orig/none/tests/arm64/Makefile.in	2015-06-03 14:30:24.000175233 +0200
+++ valgrind-3.10.1/none/tests/arm64/Makefile.in	2015-06-03 14:40:01.771335843 +0200
@@ -154,6 +154,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -294,7 +295,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -306,7 +307,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/darwin/Makefile.in valgrind-3.10.1/none/tests/darwin/Makefile.in
--- valgrind-3.10.1.orig/none/tests/darwin/Makefile.in	2015-06-03 14:30:24.008175318 +0200
+++ valgrind-3.10.1/none/tests/darwin/Makefile.in	2015-06-03 14:40:01.829336460 +0200
@@ -147,6 +147,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -287,7 +288,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -299,7 +300,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/linux/Makefile.in valgrind-3.10.1/none/tests/linux/Makefile.in
--- valgrind-3.10.1.orig/none/tests/linux/Makefile.in	2015-06-03 14:30:24.005175286 +0200
+++ valgrind-3.10.1/none/tests/linux/Makefile.in	2015-06-03 14:40:01.888337089 +0200
@@ -150,6 +150,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -290,7 +291,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -302,7 +303,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/Makefile.in valgrind-3.10.1/none/tests/Makefile.in
--- valgrind-3.10.1.orig/none/tests/Makefile.in	2015-06-03 14:30:24.084176129 +0200
+++ valgrind-3.10.1/none/tests/Makefile.in	2015-06-03 14:40:01.506333019 +0200
@@ -535,6 +535,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -675,7 +676,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -687,7 +688,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/mips32/Makefile.in valgrind-3.10.1/none/tests/mips32/Makefile.in
--- valgrind-3.10.1.orig/none/tests/mips32/Makefile.in	2015-06-03 14:30:24.047175734 +0200
+++ valgrind-3.10.1/none/tests/mips32/Makefile.in	2015-06-03 14:40:01.962337878 +0200
@@ -221,6 +221,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -361,7 +362,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -373,7 +374,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/mips64/Makefile.in valgrind-3.10.1/none/tests/mips64/Makefile.in
--- valgrind-3.10.1.orig/none/tests/mips64/Makefile.in	2015-06-03 14:30:24.039175649 +0200
+++ valgrind-3.10.1/none/tests/mips64/Makefile.in	2015-06-03 14:40:02.055338869 +0200
@@ -276,6 +276,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -416,7 +417,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -428,7 +429,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/ppc32/Makefile.in valgrind-3.10.1/none/tests/ppc32/Makefile.in
--- valgrind-3.10.1.orig/none/tests/ppc32/Makefile.in	2015-06-03 14:30:23.911174283 +0200
+++ valgrind-3.10.1/none/tests/ppc32/Makefile.in	2015-06-03 14:40:02.165340041 +0200
@@ -291,6 +291,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -431,7 +432,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -443,7 +444,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/ppc64/Makefile.in valgrind-3.10.1/none/tests/ppc64/Makefile.in
--- valgrind-3.10.1.orig/none/tests/ppc64/Makefile.in	2015-06-03 14:30:24.080176086 +0200
+++ valgrind-3.10.1/none/tests/ppc64/Makefile.in	2015-06-03 14:40:02.267341128 +0200
@@ -260,6 +260,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -400,7 +401,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -412,7 +413,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/s390x/Makefile.in valgrind-3.10.1/none/tests/s390x/Makefile.in
--- valgrind-3.10.1.orig/none/tests/s390x/Makefile.in	2015-06-03 14:30:23.895174113 +0200
+++ valgrind-3.10.1/none/tests/s390x/Makefile.in	2015-06-03 14:40:02.407342619 +0200
@@ -589,6 +589,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -729,7 +730,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -741,7 +742,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/x86/Makefile.in valgrind-3.10.1/none/tests/x86/Makefile.in
--- valgrind-3.10.1.orig/none/tests/x86/Makefile.in	2015-06-03 14:30:23.964174849 +0200
+++ valgrind-3.10.1/none/tests/x86/Makefile.in	2015-06-03 14:40:02.565344303 +0200
@@ -338,6 +338,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -478,7 +479,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -490,7 +491,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/none/tests/x86-linux/Makefile.in valgrind-3.10.1/none/tests/x86-linux/Makefile.in
--- valgrind-3.10.1.orig/none/tests/x86-linux/Makefile.in	2015-06-03 14:30:24.082176108 +0200
+++ valgrind-3.10.1/none/tests/x86-linux/Makefile.in	2015-06-03 14:40:02.463343216 +0200
@@ -143,6 +143,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -283,7 +284,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -295,7 +296,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/perf/Makefile.in valgrind-3.10.1/perf/Makefile.in
--- valgrind-3.10.1.orig/perf/Makefile.in	2015-06-03 14:30:24.087176161 +0200
+++ valgrind-3.10.1/perf/Makefile.in	2015-06-03 14:40:02.631345006 +0200
@@ -176,6 +176,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -316,7 +317,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -328,7 +329,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.
diff -ru valgrind-3.10.1.orig/shared/Makefile.in valgrind-3.10.1/shared/Makefile.in
--- valgrind-3.10.1.orig/shared/Makefile.in	2015-06-03 14:30:23.564170581 +0200
+++ valgrind-3.10.1/shared/Makefile.in	2015-06-03 14:40:02.665345369 +0200
@@ -99,6 +99,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
diff -ru valgrind-3.10.1.orig/tests/Makefile.in valgrind-3.10.1/tests/Makefile.in
--- valgrind-3.10.1.orig/tests/Makefile.in	2015-06-03 14:30:23.626171242 +0200
+++ valgrind-3.10.1/tests/Makefile.in	2015-06-03 14:40:02.728346040 +0200
@@ -174,6 +174,7 @@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
 EXEEXT = @EXEEXT@
+FLAG_FNO_IPA_ICF = @FLAG_FNO_IPA_ICF@
 FLAG_FNO_STACK_PROTECTOR = @FLAG_FNO_STACK_PROTECTOR@
 FLAG_M32 = @FLAG_M32@
 FLAG_M64 = @FLAG_M64@
@@ -314,7 +315,7 @@
 	-fno-builtin
 
 @VGCONF_OS_IS_DARWIN_FALSE@AM_CFLAGS_PSO_BASE = -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin
+@VGCONF_OS_IS_DARWIN_FALSE@		     -fpic -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # These flags are used for building the preload shared objects (PSOs).
@@ -326,7 +327,7 @@
 # results in segfaults like (eg) #324050.
 @VGCONF_OS_IS_DARWIN_TRUE@AM_CFLAGS_PSO_BASE = -dynamic \
 @VGCONF_OS_IS_DARWIN_TRUE@		     -O -g -fno-omit-frame-pointer -fno-strict-aliasing \
-@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin
+@VGCONF_OS_IS_DARWIN_TRUE@		     -fpic -fPIC -fno-builtin @FLAG_FNO_IPA_ICF@
 
 
 # Flags for specific targets.