diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c --- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200 +++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c 2007-08-03 14:46:03.000000000 +0200 @@ -251,7 +251,7 @@ #endif /* Make sure to have room for the trailing NULL argument. */ - num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1; + num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1; arglist = xmalloc (num_args * sizeof (char *)); i = 0; @@ -311,7 +311,10 @@ { arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX; if (arglist[j][0] != '-' || arglist[j][1] == 'l') - added_libraries++; + { + arglist[++j] = "-lgcc_eh"; + added_libraries += 2; + } j++; } if (saw_math)