diff options
| author | Khem Raj <raj.khem@gmail.com> | 2009-10-22 16:46:31 -0700 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2009-10-22 16:49:13 -0700 |
| commit | 077f07332ce734c13cf53a59b69c4664e50458ba (patch) | |
| tree | f49a6b06faca058a02045185019178ce573e28bc /recipes/gcc/gcc-4.4.2/debian/libjava-stacktrace.dpatch | |
| parent | ba8ce6a3fdb2e5af2d73857cadab99895d734240 (diff) | |
gcc-4.4.2: Add new recipes for gcc 4.2.2
* Switch default gcc to 4.4.2 for sane toolchain
* Switch binutils to 2.20
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc/gcc-4.4.2/debian/libjava-stacktrace.dpatch')
| -rw-r--r-- | recipes/gcc/gcc-4.4.2/debian/libjava-stacktrace.dpatch | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-4.4.2/debian/libjava-stacktrace.dpatch b/recipes/gcc/gcc-4.4.2/debian/libjava-stacktrace.dpatch new file mode 100644 index 0000000000..9ace9dfb28 --- /dev/null +++ b/recipes/gcc/gcc-4.4.2/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 = |
