%rename lib liborig
*lib: -lgcj -lm @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(liborig)
-%rename cc1 cc1orig
-*cc1: @DIVIDESPEC@ %(cc1orig)
+*jc1: @DIVIDESPEC@ @EXCEPTIONSPEC@ @JC1GCSPEC@ -fasynchronous-exceptions
+
+#
+# libgcc should really be a shared library. This is a design flaw
+# that causes no end of mysterious problems. If we are using the
+# GNU linker, force parts of libgcc into the program file rather
+# than picking bits up from various shared libraries.
+#
+%rename startfile startfileorig
+*startfile: %(startfileorig) @LIBDATASTARTSPEC@ @FORCELIBGCCSPEC@