diff -r 33d9b7330d20 cppu/inc/uno/lbnames.h
--- a/cppu/inc/uno/lbnames.h	Thu May 20 16:10:52 2010 +0100
+++ b/cppu/inc/uno/lbnames.h	Thu May 20 16:28:58 2010 +0100
@@ -49,22 +49,12 @@
 #error "sunpro cc version must be 5.x"
 provoking error here, because PP ignores #error
 #endif /* defined (__SUNPRO_CC) */
-/* g++ 2.x, 3.0 */
+/* g++ 2.x, 3.x, etc. */
 #elif defined (__GNUC__)
-#if (__GNUC__ == 2 && __GNUC_MINOR__ == 91)
+#if (__GNUC__ <= 2)
 #define	TMP_CPPU_ENV gcc2
-#elif (__GNUC__ == 2 && __GNUC_MINOR__ == 95)
-#define	TMP_CPPU_ENV gcc2
-#elif (__GNUC__ == 2)
-#error "Tested gcc 2 versions are 2.91 and 2.95.  Patch uno/lbnames.h to try your gcc 2 version."
-#elif (__GNUC__ == 3 && __GNUC_MINOR__ <= 4)
-#define __CPPU_ENV gcc3
-#elif (__GNUC__ == 4 && __GNUC_MINOR__ <= 4)
-#define __CPPU_ENV gcc3
-#elif (__GNUC__ == 3)
-#error "Tested gcc 3 version is <= 3.4.  Patch uno/lbnames.h to try your gcc 3 version."
 #else
-#error "Supported gcc majors are 2 , 3 and 4 <= 4.4.  Unsupported gcc major version."
+#define TMP_CPPU_ENV gcc3
 #endif /* defined (__GNUC__) */
 #endif /* defined (_MSC_VER) */
 
diff -r 33d9b7330d20 sal/cpprt/makefile.mk
--- a/sal/cpprt/makefile.mk	Thu May 20 16:10:52 2010 +0100
+++ b/sal/cpprt/makefile.mk	Thu May 20 16:28:58 2010 +0100
@@ -39,6 +39,11 @@
 CFLAGS+= $(LFS_CFLAGS)
 CXXFLAGS+= $(LFS_CFLAGS)
 
+#http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43257
+.IF "$(COM)"=="GCC" && "$(CCNUMVER)" >= "000400050000" && "$(CCNUMVER)" < "000400060000"
+CFLAGSCXX+=-fno-ipa-sra
+.ENDIF 
+
 # --- Files --------------------------------------------------------
 
 SLOFILES =	\
