diff --git a/toolchain/gcc/3.4.5/static-libgcc.patch.conditional b/toolchain/gcc/3.4.5/static-libgcc.patch.conditional new file mode 100644 index 000000000..c8c1d849c --- /dev/null +++ b/toolchain/gcc/3.4.5/static-libgcc.patch.conditional @@ -0,0 +1,11 @@ +--- specs~ 2005-11-21 17:22:08.000000000 +0100 ++++ specs 2005-11-21 17:22:08.000000000 +0100 +@@ -51,7 +51,7 @@ + %{shared: -lc} %{!static:-rpath-link %R/lib:%R/usr/lib} %{!shared: %{pthread:-lpthread} %{profile:-lc_p} %{!profile: -lc}} + + *libgcc: +-%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s%M --no-as-needed}%{shared-libgcc:-lgcc_s%M%{!shared: -lgcc}}}} ++%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared:%{!shared-libgcc:-lgcc -lgcc_eh}%{shared-libgcc:-lgcc_s%M -lgcc}}%{shared:%{shared-libgcc:-lgcc_s%M}%{!shared-libgcc:-lgcc}}}} + + *startfile: + %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} diff --git a/toolchain/gcc/4.0.2/static-libgcc.patch.conditional b/toolchain/gcc/4.0.2/static-libgcc.patch.conditional new file mode 100644 index 000000000..6bb5c5004 --- /dev/null +++ b/toolchain/gcc/4.0.2/static-libgcc.patch.conditional @@ -0,0 +1,11 @@ +--- specs~ 2006-01-27 11:44:50.000000000 +0100 ++++ specs 2006-01-27 12:00:41.000000000 +0100 +@@ -57,7 +57,7 @@ + %{fmudflap|fmudflapth: -export-dynamic} + + *libgcc: +-%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared-libgcc:-lgcc --as-needed -lgcc_s --no-as-needed}%{shared-libgcc:-lgcc_s%{!shared: -lgcc}}}} ++%{static|static-libgcc:-lgcc -lgcc_eh}%{!static:%{!static-libgcc:%{!shared:%{!shared-libgcc:-lgcc -lgcc_eh}%{shared-libgcc:-lgcc_s -lgcc}}%{shared:%{shared-libgcc:-lgcc_s%{!shared-libgcc: -lgcc}}}}} + + *startfile: + %{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 57debe12b..642662e8f 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -194,8 +194,8 @@ endif # to include a reference to libgcc.so.1 in all binaries. For flash space # saving, we change the specs file to link in a static libgcc here. if [ ! -f $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs ] ; then \ - echo staging dir specs file is missing ; \ - /bin/false ; \ + echo staging dir specs file is missing, assuming GCC 4.x ; \ + $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc -dumpspecs > $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs; \ fi; if grep -q as-needed $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/specs; then \ patch -d $(STAGING_DIR)/lib/gcc/$(REAL_GNU_TARGET_NAME)/$(GCC_VERSION)/ -p0 < ./$(GCC_VERSION)/static-libgcc.patch.conditional ; \