2006-06-07 Andrew Haley <aph@redhat.com>
* include/jvm.h (_Jv_Linker::maybe_adjust_signature): New.
(_Jv_Linker::uaddr): New.
* link.cc (resolve_pool_entry): Call search_method_in_superclasses
instead of an open-coded loop around search_method_in_class.
(search_method_in_class): Add a new arg, check_perms.
(search_method_in_superclasses): New.
(link_symbol_table): Call maybe_adjust_signature() to extract the
least significnt bit of the signature pointer. Do this three
times, for instace method calls, static methods, and interfaces.
Call search_method_in_superclasses() instead of
_Jv_LookupDeclaredMethod.
(typedef uaddr): Delete.
From-SVN: r114486
2006-06-05 David Daney <ddaney@avtrex.com>
* gcj.texi (libgcj Runtime Properties): Document
gnu.gcj.runtime.NameFinder.show_raw and
gnu.gcj.runtime.NameFinder.remove_unknown.
2006-06-05 David Daney <ddaney@avtrex.com>
* gnu/gcj/runtime/NameFinder.java (show_raw): New field.
(showRaw): New method.
* stacktrace.cc : Include gnu/gcj/runtime/StringBuffer.h.
(getLineNumberForFrame): Show IP offset in trace if line number
not available and show_raw true.
From-SVN: r114437
gcc:
2006-06-01 Paolo Bonzini <bonzini@gnu.org>
* doc/install.texi: Document that InfoZIP can replace jar.
libjava:
2006-06-01 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (ZIP, UNZIP): New programs.
(JAR): Fall back to bash script. Generate it.
(BASH_JAR): New conditional.
* Makefile.am (bin_SCRIPTS): New.
* jar.in: New file.
From-SVN: r114304
2006-05-31 Bryce McKinlay <mckinlay@redhat.com>
* prims.cc (_Jv_RunMain): Use JvNewStringUTF for command-line class
name, not Latin1.
* gnu/java/lang/MainThread.java (run): Allow file separator char to
be used in place of '.' as class-name separator. Don't chain
ClassNotFoundException.
From-SVN: r114300
2006-05-31 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/lang/VMClassLoader.java (initialize): Set default library
control to LIB_NEVER.
From-SVN: r114277
2006-05-30 Thomas Fitzsimmons <fitzsim@redhat.com>
* scripts/makemake.tcl (emit_bc_rule): Do not skip
gnu-java-awt-peer-gtk.lo.
Include gnu/java/awt/peer/gtk Java objects in libgcj.so. Use C++
ABI for gnu/java/awt/peer/gtk package.
* gnu/classpath/natSystemProperties.cc (PrependVersionedLibdir):
New function.
(insertSystemProperties): Only set java.ext.dirs if it is not
already defined. Prepend GCJ_VERSIONED_LIBDIR to module search
path where necessary.
* configure.ac (GTK_AWT): Remove automake conditional.
* include/jvm.h (_Jv_PrependVersionedLibdir): New function
declaration.
* gij.cc (main): Prepend LD_LIBRARY_PATH with GCJ_VERSIONED_LIBDIR
and re-exec self.
* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR,
GIJ_EXECUTABLE and PATH_SEPARATOR macros.
Remove lib-gnu-java-awt-peer-gtk.la and libgcjawt.la build logic.
* prims.cc (_Jv_PrependVersionedLibdir): New function.
2006-05-30 Thomas Fitzsimmons <fitzsim@redhat.com>
* native/jni/gtk-peer/Makefile.am (gcc_version): New variable.
(gcjversionedlibdir): Likewise.
(libgtkpeer_la_LDFLAGS): Likewise.
Install libgtkpeer.so in GCJ versioned library directory.
* native/jawt/Makefile.am (gcc_version): New variable.
(gcjversionedlibdir): Likewise.
(libjawt_la_LDFLAGS): Likewise.
Rename libjawtgnu.so libjawt.so. Install libjawt.so in GCJ
versioned library directory.
* gnu/java/awt/peer/gtk/GdkFontPeer.java (static): Call
System.loadLibrary unconditionally.
* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Likewise.
* gnu/java/awt/peer/gtk/GdkGraphics2D.java: Likewise.
* gnu/java/awt/peer/gtk/GdkGraphics.java: Likewise.
* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
* gnu/java/awt/peer/gtk/GdkTextLayout.java: Likewise.
From-SVN: r114247
* sources.am, Makefile.in: Rebuilt.
* scripts/makemake.tcl: Accept -verbose command-line option.
(is_verbose): New global.
(verbose): Use it.
(classify_source_file): Don't special case '.' for 'package'
type.
From-SVN: r114051
2006-05-21 Andreas Tobler <a.tobler@schweiz.ch>
* java/lang/natClass.cc (_Jv_FindMethodInCache): Mark klass, name and
signature as MAYBE_UNUSED for HAVE_TLS == 0.
(_Jv_AddMethodToCache): Mark klass and method as MAYBE_UNUSED for
HAVE_TLS == 0.
From-SVN: r113940
2006-05-21 Andreas Tobler <a.tobler@schweiz.ch>
* java/lang/natClass.cc (_Jv_FindMethodInCache): Mark klass, name and
signature as MAYBE_UNUSED for HAVE_TLS == 0.
(_Jv_AddMethodToCache): Mark klass and method as MAYBE_UNUSED for
HAVE_TLS == 0.
From-SVN: r113939
2006-05-20 Andreas Tobler <a.tobler@schweiz.ch>
John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* configure.ac: Add the POSIX thread libs to the HP-UX PA
configuration. Add signal specification for HP-UX PA.
* configure: Rebuilt.
* configure.host: Add defaults for the HP-UX PA architecture.
Add descriptor files for HP-UX PA 32-bit and 64-bit.
* include/hppa-signal.h: New file.
* include/posix.h: Add shared library suffix for HP-UX.
* sysdep/pa/descriptor-pa32-hpux.h: New file.
* sysdep/pa/descriptor-pa64-hpux.h: Likewise.
Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
From-SVN: r113937
2006-05-15 Andreas Tobler <a.tobler@schweiz.ch>
* stacktrace.cc (StackTrace::FillInFrameInfo): Use
UNWRAP_FUNCTION_DESCRIPTOR to compare frame->start_ip against the
klass->methods[j].ncode.
From-SVN: r113801
2006-05-11 Bryce McKinlay <mckinlay@redhat.com>
* gnu/gcj/runtime/NameFinder.java (blacklist): New static field.
(lookup): If addr2line fails to find an address, flag the binary as
having no debug info and avoid calling addr2line on it again.
From-SVN: r113711
2006-05-06 Andreas Tobler <a.tobler@schweiz.ch>
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Add check for
HP-UX and add appropriate extension for shared libraries, sl.
(gcj_jni_test_one): Likewise.
* testsuite/lib/libjava.exp (libjava_find_lib): Add sl to the shared
library extensions.
From-SVN: r113587
2006-05-01 Andreas Tobler <a.tobler@schweiz.ch>
* configure.ac: Simplify the mmap check a bit more.
* configure: Rebuilt.
* include/config.h.in: Likewise.
From-SVN: r113426
* boehm.cc (_Jv_InitGC): Check both HAVE_DLFCN_H and HAVE_DLADDR
before calling GC_register_has_static_roots_callback.
(_Jv_RegisterLibForGc): Likewise, test for both HAVE_DLFCN_H and
HAVE_DLADDR before calling dladdr.
Co-Authored-By: Andrew Haley <aph@redhat.com>
From-SVN: r113417
2006-04-28 Bryce McKinlay <mckinlay@redhat.com>
* link.cc (_Jv_Linker::resolve_pool_entry): Don't pass vtable_index
to resolve_method.
* interpret.cc (insn_invokevirtual): Use method->index, not
vtable_index. Check accflag FINAL to determine finals. Only do
explicit null check if calling a final method. Use
throw_null_pointer_exception.
(invokevirtual_resolved): Likewise.
(null_pointer_exc): Remove static field.
(throw_null_pointer_exception): Always define. Throw a new
NullPointerException every time.
* include/java-interp.h (_Jv_ResolvedMethod): Remove vtable_index
field.
* include/execution.h (resolve_method): Remove vtable_index argument.
From-SVN: r113370
2006-04-28 Andreas Tobler <a.tobler@schweiz.ch>
* configure.ac: Add an additional checks for dladdr and dlopen on dld.
* configure: Rebuilt.
From-SVN: r113323
2006-04-25 Andrew Haley <aph@redhat.com>
* java/lang/natClassLoader.cc: Don't include link.h or dladdr.h.
* boehm.cc: Don't include link.h.
(_Jv_RegisterLibForGc): Cast away const when calling dladdr().
From-SVN: r113246
2006-04-21 Andrew Haley <aph@redhat.com>
* lang.c (java_init): Handle flag_indirect_classes.
* jvgenmain.c: Use "class$$" instead of "class$".
* mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as
DECLs.
(mangle_class_field): Special case "class$$" as well as "class$".
* constants.c (build_ref_from_constant_pool): If
flag_indirect_classes, generate a ref into the heap.
* decl.c (constants_field_decl_node,
constants_data_field_decl_node): New.
* class.c (build_static_class_ref): New.
(build_classdollar_field): Factor out from build_class_ref().
(make_field_value): Handle static fields in heap.
(make_class_data): Make sure we get a static ref to class.
Make class initializer const if flag_indirect_classes.
(register_class): Build a class_ref for initialization if
flag_indirect_classes.
(emit_indirect_register_classes): New.
2006-04-21 Andrew Haley <aph@redhat.com>
* include/execution.h (struct _Jv_CompiledEngine): Define for
compiled classes.
* java/lang/natClassLoader.cc (_Jv_RegisterClasses): Call
_Jv_RegisterLibForGc.
(_Jv_RegisterClasses_Counted): Likewise.
(_Jv_NewClassFromInitializer): New.
(_Jv_RegisterNewClasses): New.
* sources.am: Regenerate.
* boehm.cc (_Jv_GC_has_static_roots): new.
(_Jv_InitGC): Call GC_register_has_static_roots_callback.
(filename_node, find_file, _Jv_print_gc_store, new_node,
_Jv_GC_has_static_roots, _Jv_RegisterLibForGc): New.
* scripts/makemake.tcl: Add -fno-indirect-classes.
* Makefile.in: Regenerate.
* link.cc (resolve_pool_entry): Allocate constant pool.
Allocate fields.
From-SVN: r113224
PR libgcj/27171:
* testsuite/libjava.lang/pr27171.java: New file.
* testsuite/libjava.lang/pr27171.out: New file.
* gnu/gcj/convert/Output_UTF8.java (havePendingBytes): Return
true if we've seen a high surrogate.
(write): Handle high surrogates at the end of the stream.
Properly emit isolated low surrogates.
From-SVN: r113013
* gnu/gcj/runtime/SystemClassLoader.java (addClass): Get the value
of package-private field "loadedClasses" using reflection.
* java/lang/VMCompiler.java (compileClass): Remove unreachable catch
block.
From-SVN: r112858
2006-04-06 Andreas Tobler <a.tobler@schweiz.ch>
* acinclude.m4 (AC_LTDL_SHLIBEXT): Add GCJ LOCAL marker to indicate
GCJ specific stuff.
From-SVN: r112736
* configure.host: Add -fno-omit-frame-pointer to libgcj_flags for
MinGW since EBP is used for backtracking through call frames on this
platform.
From-SVN: r112708
2006-03-29 Andreas Tobler <a.tobler@schweiz.ch>
* acinclude.m4: Restore the situation that we don't build modules on
darwin.
* configure: Regenerated.
From-SVN: r112503
gcc/java
* jcf-write.c (generate_bytecode_insns): Use qualifying type for
non-static method calls.
libjava
* testsuite/libjava.jacks/jacks.xfail: Removed
13.1-runtime-method-5.
From-SVN: r112102
PR libgcj/26103:
* java/lang/ClassLoader.java (loadClass): Don't throw
StringIndexOutOfBoundsException if name is empty.
* java/lang/natClassLoader.cc (loadClassFromSig): Throw exception
if class not found.
From-SVN: r111820
2006-02-21 Robert Schuster <robertschuster@fsfe.org>
* link.cc: Added variant of create_error_method that
will not complain about unused parameter if compiled with
USE_LIBFFI not being defined.
(_Jv_Linker::find_field_helper): Fixed indentation.
(_Jv_Linker::create_error_method): Fixed indentation.
(_Jv_Linker::link_symbol_table): Fixed indentation.
From-SVN: r111331
2006-02-16 Andrew Haley <aph@redhat.com>
* stacktrace.cc (GetStackTraceElements): Call
gnu::gcj::runtime::NameFinder::removeUnknown() to determine if
non-Java frames should be removed from a printed stack trace.
Pass methodName to getLineNumberForFrame().
(getLineNumberForFrame): Set method_name from info.dli_sname.
* gnu/gcj/runtime/NameFinder.java (removeUnknown): New method.
(remove_unknown): New variable.
* include/java-stack.h (_Jv_StackTrace::getLineNumberForFrame):
Add methodName arg.
From-SVN: r111181
2006-02-09 Bryce McKinlay <mckinlay@redhat.com>
* java/lang/Class.h (_Jv_IDispatchTable): Make it a struct. Put
'itable' inline, instead of as a pointer.
(java::lang::Class): Put 'idt' in anonymous union with 'ioffsets'.
* link.cc (null_idt): Update definition.
(_Jv_Linker::prepare_constant_time_tables): Allocate klass->idt
as a single struct. Use _Jv_AllocBytes, not _Jv_AllocRawObj.
(_Jv_Linker::generate_itable): Update to use 'ioffsets'.
(_Jv_Linker::find_iindex): Likewise. Update comment.
* java/lang/natClass.cc (_Jv_LookupInterfaceMethodIdx): Update for
_Jv_IDispatchTable change.
(_Jv_IsAssignableFrom): Likewise.
From-SVN: r110818
2006-02-08 Bryce McKinlay <mckinlay@redhat.com>
PR libgcj/25187:
* gnu/gcj/io/natSimpleSHSStream.cc
(gnu::gcj::io::SimpleSHSStream::shsFinal): Remove bogus cast.
* interpret.cc (_Jv_InterpMethod::run): Simplify arguments to
_Jv_InterpFrame().
* boehm.cc: #undef some autoconf macros before including gc-config.h.
(_Jv_MarkObject): Don't mark the class, it is reachable via the vtable.
(_Jv_MarkArray): Likewise.
* java/lang/ref/natReference.cc (java::lang::ref::Reference::create):
Simplify _Jv_GCRegisterDisappearingLink() call.
* java/lang/Class.h (getComponentType): Use element_type.
(element_type): New field declaration, as a union with "methods".
* java/lang/natClassLoader.cc (_Jv_NewArrayClass): Use "element_type".
* java/net/natVMNetworkInterfacePosix.cc
(java::net::VMNetworkInterface::getInterfaces): Add "int" cast to
avoid sign comparison warning.
* include/java-interp.h (_Jv_InterpFrame): Take thread as second
argument, not parent call frame.
* include/x86_64-signal.h (MAKE_THROW_FRAME): Use "gregs" directly,
without a cast.
(restore_rt): Declare with hidden visibility, not "static".
* posix.cc (_Jv_platform_initProperties): Make "tmpdir" a string
constant.
* jni.cc (_Jv_JNI_DestroyJavaVM): Use a union to avoid strict alias
warning
From-SVN: r110783
* defineclass.cc (parse): Use _Jv_AllocRawObj.
(read_constpool): Likewise.
(read_one_code_attribute): Use internal function name.
(handleConstantPool): Use _Jv_AllocRawObj.
(handleInterfacesBegin): Likewise.
(handleFieldsBegin): Likewise.
(handleMethodsBegin): Likewise.
(handleCodeAttribute): Likewise.
(handleMethodsEnd): Likewise.
* include/jvm.h (new_vtable): Use _Jv_AllocRawObj.
* interpret.cc (do_allocate_static_fields): Use _Jv_AllocRawObj.
Allocate reference fields separately.
* link.cc (prepare_constant_time_tables): Use _Jv_AllocRawObj.
(add_miranda_methods): Likewise.
(generate_itable): Use _Jv_AllocBytes.
(find_iindex): Likewise.
(struct method_closure): New structure.
(create_error_method): Use struct method_closure; allocate with
_Jv_AllocBytes.
(ensure_fields_laid_out): Separate reference fields from
non-reference fields.
* boehm.cc (_Jv_MarkObj): Mark vtable. Only mark direct fields
of Class.
(_Jv_MarkArray): Mark vtable.
(_Jv_AllocRawObj): Don't allocate objects of size 0.
* include/execution.h
(_Jv_ExecutionEngine::allocate_static_fields): Added 'int'
parameter.
(struct _Jv_CompiledEngine): Updated.
(class _Jv_InterpreterEngine): Updated.
From-SVN: r110763
Fixes PR #26073.
2006-02-03 Robert Schuster <robertschuster@fsfe.org>
* include/jvm.h:
(_Jv_Linker::create_error_method): New method declaration.
* link.cc:
(_Jv_Linker::create_error_method): New method.
(_Jv_Linker::link_symbol_table): Use new method above.
From-SVN: r110543
* link.cc:
(_Jv_Linker::find_field_helper): Added checks.
(_Jv_Linker::find_field): Use exception swallowing class resolution
and added early return.
(_Jv_ThrowNoClassDefFoundErrorTrampoline): New function.
(_Jv_Linker::link_symbol_table): Use exception swallowing class
resolution, added ffi_closure installation routine, use
_Jv_ThrowNoClassDefFoundError for missing static method.
(_Jv_Linker::ensure_class_linked): Added string check which does
not trigger class resolution.
* java/lang/natClassLoader.cc:
(_Jv_FindClassNoException): New method.
* java/lang/Class.h:
(_Jv_FindClassNoException): New method declaration.
* include/jvm.h:
(_Jv_FindClassNoException): New method declaration.
(_Jv_FindClassFromSignatureNoException): New method declaration.
* prims.cc:
(_Jv_FindClassFromSignatureNoException): New method.
* gcj/javaprims.h:
(_Jv_equalsUtf8Classname): New method declaration.
(_Jv_isPrimitiveOrDerived): Dito.
* prims.cc:
(_Jv_equalsUtf8Classnames): New method.
(_Jv_isPrimitiveOrDerived): New method.
* verify.cc:
(ref_intersection::equals): Use new classname comparison method.
(type::compatible): Use new classname comparison method. Added
check whether LHS' type is java.lang.Object .
(type::resolve): Added new optional debug message and simplified
if-expression.
(type::to_array): Added codepath that generates an array type
without resolving the element type.
From-SVN: r110474
* include/java-interp.h (insn_index): New declaration.
(num_insn_slots): New private variable.
(get_line_table): New declaration.
* interpret.cc (insn_index): New function.
(get_line_table): New function.
From-SVN: r110411
* prims.cc (next_property_value): Never return NULL.
(process_gcj_properties): Copy 'props' before using it.
Co-Authored-By: Tom Tromey <tromey@redhat.com>
From-SVN: r110177
* configure.host (disable_dladdr): Remove variable and its
documentation.
* configure.ac: Do not test for disable_dladdr.
* configure: Regenerate.
* include/config.h.in: Regenerate.
From-SVN: r110139
* configure.host (disable_dladdr): Remove variable and its
documentation.
* configure.ac: Do not test for disable_dladdr.
* configure: Regenerate.
From-SVN: r110137
* include/java-interp.h (_Jv_CompileMethod): Add declaration.
(class _Jv_InterpMethod): Add _Jv_CompileMethod as a friend.
* interpret.cc (_Jv_CompileMethod): New function.
(run): Massage code to allow for NULL args.
Update comments to explain NULL args.
Return if compiling the method and args is NULL.
From-SVN: r109918