aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog7
-rw-r--r--libjava/include/jvm.h3
-rw-r--r--libjava/name-finder.cc6
3 files changed, 12 insertions, 4 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 9bb268d..0486f6b 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-09 Bryce McKinlay <bryce@albatross.co.nz>
+
+ * include/jvm.h: Enable __builtin_expect().
+
+ * name-finder.cc (lookup): Don't trust dladdr() if the address is from
+ the main program. Fix for PR libgcj/341.
+
2000-10-07 Tom Tromey <tromey@cygnus.com>
* java/util/Properties.java: Merged with Classpath version.
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index f453c9c..006f1d9 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -11,9 +11,6 @@ details. */
#ifndef __JAVA_JVM_H__
#define __JAVA_JVM_H__
-// FIXME: __builtin_expect doesn't work yet.
-#define __builtin_expect(A,B) (A)
-
#include <gcj/javaprims.h>
#include <java-assert.h>
diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc
index 0085793..a29f5bd 100644
--- a/libjava/name-finder.cc
+++ b/libjava/name-finder.cc
@@ -136,6 +136,7 @@ _Jv_name_finder::toHex (void *p)
bool
_Jv_name_finder::lookup (void *p)
{
+ extern char **_Jv_argv;
toHex (p);
#if defined (HAVE_DLFCN_H) && defined (HAVE_DLADDR)
@@ -146,7 +147,10 @@ _Jv_name_finder::lookup (void *p)
{
strncpy (file_name, dl_info.dli_fname, sizeof file_name);
strncpy (method_name, dl_info.dli_sname, sizeof method_name);
- return true;
+
+ /* Don't trust dladdr() if the address is from the main program. */
+ if (strcmp (file_name, _Jv_argv[0]) != 0)
+ return true;
}
}
#endif