summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-07-10 15:59:04 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-07-10 15:59:04 +0000
commitdaca624e4b5f1363dc5ffaf333324e41746bf138 (patch)
tree27239de3f486e0d860293ab6cf83c81f67d41e40
parent826c7fbb7c88eadd21abd948ef30182b6b281d06 (diff)
classpath: Added patch fixing build on newer GCCs (and prevents a bug).
-rw-r--r--packages/classpath/classpath_0.95.bb3
-rw-r--r--packages/classpath/classpath_0.96.1.bb3
-rw-r--r--packages/classpath/classpath_0.97.2.bb3
-rw-r--r--packages/classpath/files/javanet-local.patch37
4 files changed, 43 insertions, 3 deletions
diff --git a/packages/classpath/classpath_0.95.bb b/packages/classpath/classpath_0.95.bb
index 0b2090f72f..45ce04f519 100644
--- a/packages/classpath/classpath_0.95.bb
+++ b/packages/classpath/classpath_0.95.bb
@@ -3,9 +3,10 @@ require classpath.inc
SRC_URI += "\
file://gjar-prefix-patch.diff;patch=1;pnum=0 \
file://xmlstream-fix.patch;patch=1;pnum=0 \
+ file://javanet-local.patch;patch=1;pnum=0 \
"
-PR = "r3"
+PR = "r4"
DEPENDS += "gtk+ gconf libxtst"
diff --git a/packages/classpath/classpath_0.96.1.bb b/packages/classpath/classpath_0.96.1.bb
index 9d347a0303..6952cda72f 100644
--- a/packages/classpath/classpath_0.96.1.bb
+++ b/packages/classpath/classpath_0.96.1.bb
@@ -3,9 +3,10 @@ require classpath.inc
SRC_URI += "\
file://gjar-prefix-patch.diff;patch=1;pnum=0 \
file://xmlstream-fix.patch;patch=1;pnum=0 \
+ file://javanet-local.patch;patch=1;pnum=0 \
"
-PR = "r5"
+PR = "r6"
DEPENDS += "gtk+ gconf libxtst"
diff --git a/packages/classpath/classpath_0.97.2.bb b/packages/classpath/classpath_0.97.2.bb
index 338ebcf0d4..fafe0bbb88 100644
--- a/packages/classpath/classpath_0.97.2.bb
+++ b/packages/classpath/classpath_0.97.2.bb
@@ -3,9 +3,10 @@ require classpath.inc
SRC_URI += "\
file://netif_16.patch;patch=1;pnum=0 \
file://SimpleName.diff;patch=1;pnum=0 \
+ file://javanet-local;patch=1;pnum=0 \
"
-PR = "r0"
+PR = "r1"
DEPENDS += "gtk+ gconf libxtst"
diff --git a/packages/classpath/files/javanet-local.patch b/packages/classpath/files/javanet-local.patch
new file mode 100644
index 0000000000..b8d1584e7c
--- /dev/null
+++ b/packages/classpath/files/javanet-local.patch
@@ -0,0 +1,37 @@
+Index: native/jni/java-net/local.c
+===================================================================
+RCS file: /sources/classpath/classpath/native/jni/java-net/local.c,v
+retrieving revision 1.4
+diff -u -r1.4 local.c
+--- native/jni/java-net/local.c 17 Apr 2007 21:46:27 -0000 1.4
++++ native/jni/java-net/local.c 27 Jun 2008 13:14:40 -0000
+@@ -73,27 +73,18 @@
+ return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
+ }
+
+-static int gcc_sucks = 0;
+-
+ int
+ local_bind (int fd, const char *addr)
+ {
+ struct sockaddr_un saddr;
+
+- /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr'
+- pointer in the CALLER's STACK FRAME after calling this function,
+- but if we add this statement below, it doesn't! */
+- if (gcc_sucks)
+- fprintf (stderr, "bind %p\n", addr);
+-
+- if (strlen (addr) > sizeof (saddr.sun_path))
++ if (strlen (addr) >= sizeof (saddr.sun_path))
+ {
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+- strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path));
+- saddr.sun_path[sizeof (saddr.sun_path)] = '\0';
++ strcpy (saddr.sun_path, addr);
+ saddr.sun_family = AF_LOCAL;
+
+ return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr));