diff options
Diffstat (limited to 'recipes/gcc/gcc-4.4.2/debian/libjava-jnipath.dpatch')
-rw-r--r-- | recipes/gcc/gcc-4.4.2/debian/libjava-jnipath.dpatch | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.4.2/debian/libjava-jnipath.dpatch b/recipes/gcc/gcc-4.4.2/debian/libjava-jnipath.dpatch new file mode 100644 index 0000000000..a33888bf14 --- /dev/null +++ b/recipes/gcc/gcc-4.4.2/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 |