aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/fix-gcj-musl.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2014-02-19 07:47:27 +0000
committerTimo Teräs <timo.teras@iki.fi>2014-02-19 07:50:34 +0000
commit20eae13751573f2ba970f44d16674cbaaf69e101 (patch)
treea1fe0f8ac56566b6147eee9f42c3a76b64611a45 /main/gcc/fix-gcj-musl.patch
parent3a5340eca2273ccb3f8e3b38e40283c56e6cbaf8 (diff)
downloadaports-20eae13751573f2ba970f44d16674cbaaf69e101.tar.bz2
aports-20eae13751573f2ba970f44d16674cbaaf69e101.tar.xz
main/gcc: java/musl fixes
Diffstat (limited to 'main/gcc/fix-gcj-musl.patch')
-rw-r--r--main/gcc/fix-gcj-musl.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/main/gcc/fix-gcj-musl.patch b/main/gcc/fix-gcj-musl.patch
new file mode 100644
index 0000000000..d26f510c0b
--- /dev/null
+++ b/main/gcc/fix-gcj-musl.patch
@@ -0,0 +1,49 @@
+--- 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));