diff options
author | Richard Purdie <richard@openedhand.com> | 2008-05-16 09:06:00 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-05-16 09:06:00 +0000 |
commit | 3c35b00196661077b6f5a6e996c34c9b5d8c244f (patch) | |
tree | 99627e360537a116bc097b2d503bebe80c04e60d /meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch | |
parent | 4c664f698ca1fe0d0e04f581d01d024757fdad8a (diff) | |
download | openembedded-core-3c35b00196661077b6f5a6e996c34c9b5d8c244f.tar.gz openembedded-core-3c35b00196661077b6f5a6e996c34c9b5d8c244f.tar.bz2 openembedded-core-3c35b00196661077b6f5a6e996c34c9b5d8c244f.tar.xz openembedded-core-3c35b00196661077b6f5a6e996c34c9b5d8c244f.zip |
gcc: Sync with OE.dev
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4485 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch')
-rw-r--r-- | meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch b/meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch new file mode 100644 index 000000000..9ace9dfb2 --- /dev/null +++ b/meta/packages/gcc/gcc-4.3.0/debian/libjava-stacktrace.dpatch @@ -0,0 +1,70 @@ +#! /bin/sh -e + +# DP: libgcj: Lookup source file name and line number in separated +# DP: debug files found in /usr/lib/debug + +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/stacktrace.cc.orig 2006-06-16 13:54:07.078577632 +0200 ++++ libjava/stacktrace.cc 2006-06-16 13:56:08.032189888 +0200 +@@ -20,6 +20,11 @@ + #endif + + #include <stdio.h> ++#include <stdlib.h> ++#include <string.h> ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif + + #include <java/lang/Class.h> + #include <java/lang/Long.h> +@@ -222,6 +227,28 @@ + finder->lookup (binaryName, (jlong) offset); + *sourceFileName = finder->getSourceFile(); + *lineNum = finder->getLineNum(); ++ if (*lineNum == -1 && info.file_name[0] == '/') ++ { ++ const char *debugPrefix = "/usr/lib/debug"; ++ char *debugPath = (char *) malloc (strlen(debugPrefix) ++ + strlen(info.file_name) ++ + 2); ++ ++ if (debugPath) ++ { ++ strcpy (debugPath, debugPrefix); ++ strcat (debugPath, info.file_name); ++ //printf ("%s: 0x%x\n", debugPath, offset); ++ if (!access (debugPath, R_OK)) ++ { ++ binaryName = JvNewStringUTF (debugPath); ++ finder->lookup (binaryName, (jlong) offset); ++ *sourceFileName = finder->getSourceFile(); ++ *lineNum = finder->getLineNum(); ++ } ++ free (debugPath); ++ } ++ } + if (*lineNum == -1 && NameFinder::showRaw()) + { + gnu::gcj::runtime::StringBuffer *t = |