changeset 1537:a49652af5b92

* pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld so that -nostdlib works in all cases, so place it at the end. Add -finline-limit hack to preserve behaviour with newer GCC. Treat -frtti like -fno-rtti.
author jlarmour
date Mon, 15 Mar 2004 15:19:46 +0000
parents 748c09136e09
children a7550c330045
files packages/ChangeLog packages/pkgconf/rules.mak
diffstat 2 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/ChangeLog
+++ b/packages/ChangeLog
@@ -1,3 +1,10 @@
+2004-03-12  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* pkgconf/rules.mak: When linking, $LDFLAGS must be after target.ld
+	so that -nostdlib works in all cases, so place it at the end.
+	Add -finline-limit hack to preserve behaviour with newer GCC.
+	Treat -frtti like -fno-rtti.
+
 2004-02-27  Iztok Zupet  <iz@elsis.si>
 
         * ecos.db: Added the LANCEPCI packages and support for the vmWare
--- a/packages/pkgconf/rules.mak
+++ b/packages/pkgconf/rules.mak
@@ -61,11 +61,22 @@ endif
 
 # GCC since 2.95 does -finit-priority by default so remove it from old HALs
 CFLAGS := $(subst -finit-priority,,$(CFLAGS))
+
+# -fvtable-gc is known to be broken in all recent GCC.
 CFLAGS := $(subst -fvtable-gc,,$(CFLAGS))
 
+# To support more recent GCC whilst preserving existing behaviour, we need
+# to increase the inlining limit globally from the default 600. Note this
+# will break GCC 2.95 based tools and earlier. You must use "make OLDGCC=1"
+# to avoid this.
+ifneq ($(OLDGCC),1)
+CFLAGS := -finline-limit=7000 $(CFLAGS)
+endif
+
 # Separate C++ flags out from C flags.
 ACTUAL_CFLAGS = $(CFLAGS)
 ACTUAL_CFLAGS := $(subst -fno-rtti,,$(ACTUAL_CFLAGS))
+ACTUAL_CFLAGS := $(subst -frtti,,$(ACTUAL_CFLAGS))
 ACTUAL_CFLAGS := $(subst -Woverloaded-virtual,,$(ACTUAL_CFLAGS))
 ACTUAL_CFLAGS := $(subst -fvtable-gc,,$(ACTUAL_CFLAGS))
 
@@ -165,9 +176,9 @@ else
 	@mkdir -p $(dir $@)
 endif	
 ifneq ($(IGNORE_LINK_ERRORS),)
-	-$(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o)
+	-$(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS)
 else
-	$(CC) $(LDFLAGS) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o)
+	$(CC) -L$(PREFIX)/lib -Ttarget.ld -o $@ $(<:.d=.o) $(LDFLAGS) 
 endif
 
 # rule to generate all tests and create a dependency file "tests.deps" by