summaryrefslogtreecommitdiff
path: root/meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch')
-rw-r--r--meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch94
1 files changed, 94 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch b/meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch
new file mode 100644
index 0000000000..a33888bf14
--- /dev/null
+++ b/meta/packages/gcc/gcc-4.3.1/debian/libjava-jnipath.dpatch
@@ -0,0 +1,94 @@
+#! /bin/sh -e
+
+# DP: - Add /usr/lib/jni to java.library.path.
+# DP: - When running the i386 binaries on amd64, look in
+# DP: - /usr/lib32/gcj-x.y and /usr/lib32/jni instead.
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+--- libjava/gnu/classpath/natSystemProperties.cc~ 2006-08-02 00:53:40.000000000 +0200
++++ libjava/gnu/classpath/natSystemProperties.cc 2006-08-19 00:41:50.063803000 +0200
+@@ -141,6 +141,34 @@
+ return retval;
+ }
+
++static char*
++AppendJniLibdir (char *path, struct utsname *u)
++{
++ char* retval;
++ const char* jnilibdir = "/usr/lib/jni";
++
++#if defined(__linux__) && defined (__i386__)
++ if (! strcmp ("x86_64", u->machine))
++ jnilibdir = "/usr/lib32/jni";
++#endif
++
++ if (path)
++ {
++ jsize total = strlen (path)
++ + (sizeof (PATH_SEPARATOR) - 1) + strlen (jnilibdir) + 1;
++ retval = (char*) _Jv_Malloc (total);
++ strcpy (retval, path);
++ strcat (retval, PATH_SEPARATOR);
++ strcat (retval, jnilibdir);
++ }
++ else
++ {
++ retval = (char*) _Jv_Malloc (strlen (jnilibdir) + 1);
++ strcpy (retval, jnilibdir);
++ }
++ return retval;
++}
++
+ void
+ gnu::classpath::SystemProperties::insertSystemProperties (java::util::Properties *newprops)
+ {
+@@ -370,8 +398,13 @@
+ // Prepend GCJ_VERSIONED_LIBDIR to the module load path so that
+ // libgcj will find its own JNI libraries, like libgtkpeer.so.
+ char* val = PrependVersionedLibdir (path);
+- _Jv_SetDLLSearchPath (val);
++
++ // Append jnilibdir
++ char* val2 = AppendJniLibdir (val, &u);
++
++ _Jv_SetDLLSearchPath (val2);
+ _Jv_Free (val);
++ _Jv_Free (val2);
+ }
+ else
+ {
+@@ -379,9 +412,12 @@
+ #ifdef USE_LTDL
+ char *libpath = getenv (LTDL_SHLIBPATH_VAR);
+ char* val = _Jv_PrependVersionedLibdir (libpath);
+- SET ("java.library.path", val);
+- _Jv_SetDLLSearchPath (val);
++ // Append jnilibdir
++ char* val2 = AppendJniLibdir (val, &u);
++ SET ("java.library.path", val2);
++ _Jv_SetDLLSearchPath (val2);
+ _Jv_Free (val);
++ _Jv_Free (val2);
+ #else
+ SET ("java.library.path", "");
+ #endif