# HG changeset patch # User jlarmour # Date 1079363986 0 # Node ID a49652af5b920b7c11857bbbc57706f8a170b18b # Parent 748c09136e092e034920bc704cc25fdb7f088e42 * 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. diff --git a/packages/ChangeLog b/packages/ChangeLog --- a/packages/ChangeLog +++ b/packages/ChangeLog @@ -1,3 +1,10 @@ +2004-03-12 Jonathan Larmour + + * 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 * ecos.db: Added the LANCEPCI packages and support for the vmWare diff --git a/packages/pkgconf/rules.mak b/packages/pkgconf/rules.mak --- 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