~angelsl/ubuntu/wily/gcc-5/mips-cross

« back to all changes in this revision

Viewing changes to debian/patches/libjava-jnipath.diff

  • Committer: angelsl
  • Date: 2015-10-30 03:30:35 UTC
  • Revision ID: angelsl-20151030033035-rmug41zm8hyjgisg
Original import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: - Add /usr/lib/jni and /usr/lib/<multiarch>/jni to java.library.path.
 
2
# DP: - When running the i386 binaries on amd64, look in
 
3
# DP: - /usr/lib32/gcj-x.y and /usr/lib32/jni instead.
 
4
 
 
5
Index: b/src/libjava/configure.ac
 
6
===================================================================
 
7
--- a/src/libjava/configure.ac
 
8
+++ b/src/libjava/configure.ac
 
9
@@ -1520,6 +1520,9 @@ AC_CHECK_SIZEOF(void *)
 
10
 
 
11
 AC_C_BIGENDIAN
 
12
 
 
13
+MULTIARCH_DIR=$(dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true)
 
14
+AC_SUBST(MULTIARCH_DIR)
 
15
+
 
16
 ZLIBS=
 
17
 SYS_ZLIBS=
 
18
 ZINCS=
 
19
Index: b/src/libjava/Makefile.am
 
20
===================================================================
 
21
--- a/src/libjava/Makefile.am
 
22
+++ b/src/libjava/Makefile.am
 
23
@@ -364,6 +364,7 @@ AM_CXXFLAGS = \
 
24
        $(WARNINGS) \
 
25
        -D_GNU_SOURCE \
 
26
        -DPREFIX="\"$(prefix)\"" \
 
27
+       -DMULTIARCH_DIR="\"$(MULTIARCH_DIR)\"" \
 
28
        -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\"" \
 
29
         -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
 
30
         -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
 
31
Index: b/src/libjava/Makefile.in
 
32
===================================================================
 
33
--- a/src/libjava/Makefile.in
 
34
+++ b/src/libjava/Makefile.in
 
35
@@ -639,6 +639,7 @@ MAINT = @MAINT@
 
36
 MAKE = @MAKE@
 
37
 MAKEINFO = @MAKEINFO@
 
38
 MKDIR_P = @MKDIR_P@
 
39
+MULTIARCH_DIR = @MULTIARCH_DIR@
 
40
 NM = nm
 
41
 NMEDIT = @NMEDIT@
 
42
 OBJDUMP = @OBJDUMP@
 
43
@@ -1022,6 +1023,7 @@ AM_CXXFLAGS = \
 
44
        $(WARNINGS) \
 
45
        -D_GNU_SOURCE \
 
46
        -DPREFIX="\"$(prefix)\"" \
 
47
+       -DMULTIARCH_DIR="\"$(MULTIARCH_DIR)\"" \
 
48
        -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\"" \
 
49
         -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
 
50
         -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
 
51
Index: b/src/libjava/gnu/classpath/natSystemProperties.cc
 
52
===================================================================
 
53
--- a/src/libjava/gnu/classpath/natSystemProperties.cc
 
54
+++ b/src/libjava/gnu/classpath/natSystemProperties.cc
 
55
@@ -141,6 +141,44 @@ PrependVersionedLibdir (::java::lang::St
 
56
   return retval;
 
57
 }
 
58
 
 
59
+static char*
 
60
+AppendJniLibdir (char *path, struct utsname *u)
 
61
+{
 
62
+  char* retval;
 
63
+  const char* jnilibdir = "/usr/lib/jni";
 
64
+#ifdef MULTIARCH_DIR
 
65
+  const char* jnilibdir2 = "/usr/lib/" MULTIARCH_DIR "/jni";
 
66
+  jsize len2 = strlen (jnilibdir2) + 2;
 
67
+#else
 
68
+  jsize len2 = 0;
 
69
+#endif
 
70
+
 
71
+#if defined(__linux__) && defined (__i386__)
 
72
+  if (! strcmp ("x86_64", u->machine))
 
73
+    jnilibdir = "/usr/lib32/jni";
 
74
+#endif
 
75
+
 
76
+  if (path)
 
77
+    {
 
78
+      jsize total = strlen (path)
 
79
+       + (sizeof (PATH_SEPARATOR) - 1) + strlen (jnilibdir) +len2 + 1;
 
80
+      retval = (char*) _Jv_Malloc (total);
 
81
+      strcpy (retval, path);
 
82
+      strcat (retval, PATH_SEPARATOR);
 
83
+      strcat (retval, jnilibdir);
 
84
+    }
 
85
+  else
 
86
+    {
 
87
+      retval = (char*) _Jv_Malloc (strlen (jnilibdir) + len2 + 1);
 
88
+      strcpy (retval, jnilibdir);
 
89
+    }
 
90
+#ifdef MULTIARCH_DIR
 
91
+  strcat (retval, PATH_SEPARATOR);
 
92
+  strcat (retval, jnilibdir2);
 
93
+#endif
 
94
+  return retval;
 
95
+}
 
96
+
 
97
 void
 
98
 gnu::classpath::SystemProperties::insertSystemProperties (::java::util::Properties *newprops)
 
99
 {
 
100
@@ -373,8 +411,13 @@ gnu::classpath::SystemProperties::insert
 
101
       // Prepend GCJ_VERSIONED_LIBDIR to the module load path so that
 
102
       // libgcj will find its own JNI libraries, like libgtkpeer.so.
 
103
       char* val = PrependVersionedLibdir (path);
 
104
-      _Jv_SetDLLSearchPath (val);
 
105
+
 
106
+      // Append jnilibdir
 
107
+      char* val2 = AppendJniLibdir (val, &u);
 
108
+
 
109
+      _Jv_SetDLLSearchPath (val2);
 
110
       _Jv_Free (val);
 
111
+      _Jv_Free (val2);
 
112
     }
 
113
   else
 
114
     {
 
115
@@ -382,9 +425,12 @@ gnu::classpath::SystemProperties::insert
 
116
 #ifdef USE_LTDL
 
117
       char *libpath = getenv (LTDL_SHLIBPATH_VAR);
 
118
       char* val = _Jv_PrependVersionedLibdir (libpath);
 
119
-      SET ("java.library.path", val);
 
120
-      _Jv_SetDLLSearchPath (val);
 
121
+      // Append jnilibdir
 
122
+      char* val2 = AppendJniLibdir (val, &u);
 
123
+      SET ("java.library.path", val2);
 
124
+      _Jv_SetDLLSearchPath (val2);
 
125
       _Jv_Free (val);
 
126
+      _Jv_Free (val2);
 
127
 #else
 
128
       SET ("java.library.path", "");
 
129
 #endif