diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 08d8ef9a6a700cf9a7a8808e8a13750823bcef3c..fa9245dba112cd6bcce120b735f6a299de07fdbd 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* shared-object.mk (c_flags-$o): Save c_flags.
+	($(base)$(objext)): Use it.
+	($(base)_s$(objext)): Likewise.
+
 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
 
 	* Makefile.in (lib2funcs): Add _clrsbsi2 and _clrsbdi2.
diff --git a/libgcc/shared-object.mk b/libgcc/shared-object.mk
index 65171b6aa320ea59dd8f5461541815617f54bda3..d9ee922c96b01ba054f5654bf940973b5d47665e 100644
--- a/libgcc/shared-object.mk
+++ b/libgcc/shared-object.mk
@@ -6,13 +6,15 @@ iter-items := $(filter-out $o,$(iter-items))
 
 base := $(basename $(notdir $o))
 
+c_flags-$o := $(c_flags)
+
 ifeq ($(suffix $o),.c)
 
 $(base)$(objext): $o
-	$(gcc_compile) $(c_flags) -c $< $(vis_hide)
+	$(gcc_compile) $(c_flags-$<) -c $< $(vis_hide)
 
 $(base)_s$(objext): $o
-	$(gcc_s_compile) $(c_flags) -c $<
+	$(gcc_s_compile) $(c_flags-$<) -c $<
 
 else