diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 9229d0193fbf07c9842d881c0f7cda96050f6b3c..dad7bcbe0e0c58cc773de69003f48841cdb1b307 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+	* gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable.
+	(GCC_LINK): Use it.
+
 2012-02-01  Tristan Gingold  <gingold@adacore.com>
 
 	* gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 8a6d1908e027d237844bfec04f9ae7c857084cae..f6ca6083bb2965cf55bcbdccaccdc924b398c9b9 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -165,7 +165,10 @@ else
   endif
 endif
 
-GCC_LINK=$(LINKER) $(ALL_LINKERFLAGS) -static-libgcc $(LDFLAGS)
+# Strip -Werror during linking for the LTO bootstrap
+GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS))
+
+GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) -static-libgcc $(LDFLAGS)
 
 # Lists of files for various purposes.