about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--Makeconfig6
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 063ae54d98..81a714abce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-11-25  Ulrich Drepper  <drepper@redhat.com>
 
+	* Makeconfig (+cflags): Add -fmerge-all-constants by default.
+
 	[BZ #1912]
 	* nss/function.def: Add entry to use gethostbyname2 for files.
 
diff --git a/Makeconfig b/Makeconfig
index 97f74f7e1f..01ca7097e6 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -557,6 +557,10 @@ else
 +gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes
 endif
 
+# We do not depend on the address of constants in different files to be
+# actually different, so allow the compiler to merge them all.
++merge-constants = -fmerge-all-constants
+
 # This is the program that generates makefile dependencies from C source files.
 # The -MP flag tells GCC >= 3.2 (which we now require) to produce dummy
 # targets for headers so that removed headers don't break the build.
@@ -611,7 +615,7 @@ ifeq	"$(strip $(+cflags))" ""
 +cflags	:= $(default_cflags)
 endif	# $(+cflags) == ""
 
-+cflags := $(+cflags) $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn)
++cflags += $(addprefix -mcpu=,$(with-cpu)) $(+gccwarn) $(+merge-constants)
 +gcc-nowarn := -w
 
 # Don't duplicate options if we inherited variables from the parent.