--- gcc-4.8.2/libjava/gnu/classpath/natSystemProperties.cc.orig 2014-02-18 10:55:08.617678779 +0200 +++ gcc-4.8.2/libjava/gnu/classpath/natSystemProperties.cc 2014-02-18 10:56:31.927227453 +0200 @@ -289,7 +289,7 @@ // just default to `en_US'. setlocale (LC_ALL, ""); char *locale = setlocale (LC_MESSAGES, ""); - if (locale && strlen (locale) >= 2) + if (locale && strlen (locale) >= 2 && (locale[2] == '\0' || locale[2] == '_')) { char buf[3]; buf[2] = '\0'; --- gcc-4.8.2/libjava/posix-threads.cc.orig 2014-02-18 13:22:01.789933726 +0200 +++ gcc-4.8.2/libjava/posix-threads.cc 2014-02-18 13:29:50.924058875 +0200 @@ -657,6 +657,7 @@ struct sched_param param; pthread_attr_t attr; struct starter *info; + size_t ss; if (data->flags & FLAG_START) return; @@ -675,8 +676,25 @@ // Set stack size if -Xss option was given. if (gcj::stack_size > 0) { - int e = pthread_attr_setstacksize (&attr, gcj::stack_size); + ss = gcj::stack_size; + } + else + { + int e = pthread_attr_getstacksize (&attr, &ss); + if (e != 0) + JvFail (strerror (e)); + + // Request at least 1meg of stack + if (ss >= 1024 * 1024) + ss = 0; + else + ss = 1024 * 1024; + } + + if (ss) + { + int e = pthread_attr_setstacksize (&attr, ss); if (e != 0) JvFail (strerror (e)); } info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter));