* java/lang/natThread.cc: Include JVMPI headers if necessary.
(finish_): Generate JVMPI thread end events.
(run_): Generate JVMPI thread start events.
* gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
preloaded JNI library.
Include JVMPI headers if necessary.
(run): Generate JVMPI thread start events.
* boehm.cc: Define GC_disable and GC_enable.
(_Jv_DisableGC): New function.
(_Jv_EnableGC): New function.
(disable_gc_mutex): Declare.
* nogc.cc (_Jv_DisableGC): New function.
(_Jv_EnableGC): New function.
Neil Booth [Sun, 2 Apr 2000 08:27:23 +0000 (08:27 +0000)]
cppexp.c: New FINISHED dummy token.
* cppexp.c: New FINISHED dummy token. Combine operator initial
flags and initial priority into a single constant. New
EQUALITY macro. New operator flag SHORT_CIRCUIT.
(_parse_cpp_expr): Implement new constants. Take left operand
checks out of reduction loop. Handle SHORT_CIRCUIT. End of
parse indicated by reducing FINISHED token. Remove new lines
from cpp_error messages.
Neil Booth [Sun, 2 Apr 2000 07:20:26 +0000 (07:20 +0000)]
2000-04-02 Neil Booth <NeilB@earthling.net>
* gcc.dg/cpp-cond.c New tests.
* gcc.dg/cpp-ifparen.c New tests. Amend existing tests to make
accidental success less likely.
* gcc.dg/cpp-missingop.c New tests.
* gcc.dg/cpp-missingparen.c New tests.
* gcc.dg/cpp-shift.c New tests.
* gcc.dg/cpp-shortcircuit.c New tests.
* gcc.dg/cpp-unary.c New tests.
* cpplib.c: Include symcat.h. Add 'origin' field to struct
directive. Add origin values to DIRECTIVE_TABLE. Generate
the strings and function names on the fly. Take the #sccs
entry out of the table if SCCS_DIRECTIVE is not defined.
(_cpp_handle_directive): Decide if the # was at the beginning
of the line here. Issue -pedantic warnings for extended
directives here. Warn about K+R directives with the #
indented, and C89/extended directives with the # not indented,
here.
(do_import, do_include_next, do_warning, do_ident, do_sccs,
do_assert, do_unassert): Don't issue pedantic warning here.
* cpphash.h: Add CPP_WTRADITIONAL macro.
* cpplib.h (struct cpp_options): Rename warn_stringify to
warn_traditional; update comments.
* cppinit.c (handle_option): Set warn_traditional not
warn_stringify.
* cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
CPP_WTRADITIONAL (pfile).
* cpplex.c (_cpp_lex_token): Don't decide if directives should
be ignored in -traditional mode here.
* cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
to initialize speccase[] and trigraph_map[]. Delete all
references to pfile->input_speccase. Always treat '?' as a
special character. Remove table-initialization code from
_cpp_init_input_buffer.
* cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
to initialize speccase[] and trigraph_map[]. Delete all
references to pfile->input_speccase. Always treat '?' as a
special character. Remove table-initialization code from
_cpp_init_input_buffer.
Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
* Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
(mostlyclean): Likewise.
* toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
(struct dump_file_info, enum dump_file_index, dump_file): New.
(open_dump_file): Take a dump_file_index not a suffix, and a decl
not a string. Clean out file if we havn't yet done so. Do nothing
if the dump isn't enabled.
(close_dump_file): Do nothing if the dump isn't open. Dump
graph data if requested.
(dump_rtl, clean_dump_file): Remove.
(compile_file): Don't clean the dump files. Only finalize .bp dump
if flag_test_coverage or flag_branch_probabilities. Only finalize
.combine dump if optimizing. Iterate over dump_file to finalize the
graph dumps.
(rest_of_compilation): Update for open_dump_file/close_dump_file.
Convert all uses of dump_rtl.
(decode_d_option): Iterate over dump_file to implement 'a' and to
locate pass-specific dumps.
Neil Booth [Sat, 1 Apr 2000 07:48:59 +0000 (07:48 +0000)]
cppexp.c: Redefine priority constants.
* cppexp.c: Redefine priority constants.
(_cpp_parse_expr): Replace left and right priority scheme with
single priority logic. Move LOGICAL to same place as COMPARE.
Remove bogus check for multiple unary +/- operators.
Neil Booth [Sat, 1 Apr 2000 07:42:37 +0000 (07:42 +0000)]
cppexp.c: (_cpp_parse_expr): Numerical constants are pushed within the switch statement.
* cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
within the switch statement. Binary operations break out of
the switch naturally. '(' tokens handled by forcing
immediate shift. ')' handled by forcing immediate reduce to
the previous '('. New error messages.
rs6000.c (print_operand): Don't use %l for 'low part', it's already in use.
* config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
part', it's already in use. Use %K instead. Add a return at the
end of what is now %K.
* config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
Jan Hubicka [Sat, 1 Apr 2000 00:09:22 +0000 (00:09 +0000)]
builtins.c (expand_builtin_apply): Pass proper parameters to allocate_dynamic_stack_space.
* builtins.c (expand_builtin_apply): Pass proper parameters to
allocate_dynamic_stack_space.
* calls.c (emit_call_1): Do not adjust stack pointer for SIB,
update stack_pointer_delta; do not update arg_size_so_far.
(compute_argument_block_size): Use stack_delta instead of
stack_pointer_pending and arg_size_so_far.
(expand_call): Add sanity checking for stack_pointer_delta;
save and restore stack_pointer_delta for SIB, use
stack_pointer_delta for alignment; do not update arg_space_so_far.
(emit_library_call_value): Use stack_pointer_delta for alignment.
(store_one_arg): Do not update arg_space_so_far.
* explow.c (adjust_stack, anti_adjust_stack): Update
stack_pointer_delta.
(allocate_dynamic_stack_space): Add sanity checking for
stack_pointer_delta.
* expr.c (init_expr, clear_pending_stack_adjust): Clear
stack_pointer_delta.
(emit_push_insn): Update stack_pointer_delta.
* function.h (struct expr_status): Add x_stack_pointer_delta;
remove x_arg_space_so_far.
(arg_space_so_far): Remove.
(stack_pointer_delta): New macro.
Zack Weinberg [Fri, 31 Mar 2000 23:16:11 +0000 (23:16 +0000)]
cpplib.h: Merge struct cpp_options into struct cpp_reader.
* cpplib.h: Merge struct cpp_options into struct cpp_reader.
Reorder struct cpp_options and struct cpp_reader for better
packing. Replace CPP_OPTIONS macro with CPP_OPTION which
takes two args. Change all 'char' flags to 'unsigned char'.
Move show_column flag into struct cpp_options. Don't
prototype cpp_options_init.
* cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
cppinit.c, cpplex.c, cpplib.c:
Replace CPP_OPTIONS (pfile)->whatever with
CPP_OPTION (pfile, whatever), and likewise for
opts = CPP_OPTIONS (pfile); ... opts->whatever;
* cppinit.c (merge_include_chains): Take a cpp_reader *.
Extract CPP_OPTION (pfile, pending) and work with that
directly.
(cpp_options_init): Delete.
(cpp_reader_init): Turn on on-by-default options here.
Allocate the pending structure here.
(cl_options, enum opt_code): Define these from the same table,
kept in a large macro. Add -fshow-column and -fno-show-column
options.
* cpperror.c (v_message): If show_column is off, don't print
the column number.
* cppmain.c: Update for new interface.
* fix-header.c: Likewise.
Geoff Keating [Fri, 31 Mar 2000 22:28:33 +0000 (22:28 +0000)]
t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new definition.
* config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
definition.
* Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
are passed to any invocation of AR_FOR_TARGET.
(AR_CREATE_FOR_TARGET): New macro.
(AR_EXTRACT_FOR_TARGET): New macro.
(ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
AR_EXTRACT_FOR_TARGET.
(many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
`$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
AR_EXTRACT_FOR_TARGET to sub-makes.
Neil Booth [Fri, 31 Mar 2000 22:23:59 +0000 (22:23 +0000)]
cppexp.c: Delete SKIP_OPERAND.
* cppexp.c: Delete SKIP_OPERAND. Correct priority
PAREN_INNER_PRIO.
(_cpp_parse_expr): Check for multiple unary +/- operators.
Correct priorities of ':' and '?'. Treat ')' as having a
value. Ensure conditional expression is not void.
Mark Mitchell [Fri, 31 Mar 2000 08:57:54 +0000 (08:57 +0000)]
Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
* Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
* alias.c (reg_known_value): Add comments.
(init_alias_analysis): Likewise.
* cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
address.
(cse_basic_block): Fix typo in comment.
* emit-rtl.c: Include hashtab.h.
(const_int_htab): New variable.
(const_int_htab_hash): New function.
(const_int_htab_eq): Likewise.
(rtx_htab_mark_1): Likewise.
(rtx_htab_mark): Likewise.
(gen_rtx_CONST_INT): Cache all CONST_INTs.
(unshare_all_rtx): Fix formatting.
(init_emit_once): Initialize const_int_htab.
* rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
address.
* rtl.texi: Document the fact that all CONST_INTs with the same
value are shared.
Richard Kenner [Thu, 30 Mar 2000 13:46:05 +0000 (13:46 +0000)]
calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
* calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
* explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
* function.c (assign_parms): Likewise.
* integrate.c (expand_inline_function): Likewise.
* stmt.c (expand_decl): Likewise.
(copy_rtx_and_substitute): Likewise.
* expr.c (expand_expr, expand_expr_unaligned): Likewise.
(clear_by_pieces): Fix error in last change.
* emit-rtl.c (init_emit): Set known registers alignment in bits.
* function.h (regno_pointer_align): Now unsigned.
* config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
is in bits.
* config/i386/i386.c (aligned_operand): Likewise.
* config/sparc/sparc.c (mem_min_alignment): Likewise.
* config/alpha/alpha.c (aligned_memory_operand): Likewise.
(unaligned_memory_operand): Likewise.
(alpha_expand_block_move, alpha_expand_block_clear): Likewise.
Also make alignments and sizes unsigned and some whitespace cleanup.
(alpha_va_start): Do nothing if VALIST's type is error_mark_node.
Richard Kenner [Thu, 30 Mar 2000 11:47:08 +0000 (11:47 +0000)]
builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
* builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
(expand_builtin_apply): Pass alignment to emit_block_move in bits.
(expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
(expand_builtin_memset): Likewise, but to clear_storage.
* calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
(restore_fixed_argument_area): Likewise.
(store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
(load_register_parameters): Likewise, to emit_group_load.
(expand_call): Likewise, to emit_group_store and emit_block_move.
(emit_library_call_value_1): Likewise, to emit_block_move.
(store_one_arg): Likewise, and to emit_push_insn.
* expmed.c (extract_bit_field): Alignment is in bits, not bytes.
(extract_fixed_bit_field, extract_split_bit_field): Likewise.
* expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
(emit_block_move, emit_group_load, emit_group_store): Likewise.
(clear_by_pieces, clear_storage, emit_push_insn): Likewise.
(expand_assigment, store_expr, store_constructor_field): Likewise.
(expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
(store_constructor, store_field, get_inner_reference): Likewise.
Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
(expand_expr, case COMPONENT_REF): Likewise.
(copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
and positions; reindent code.
* expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
* function.c (purge_addressof_1): Pass bit align to store_bit_field.
(assign_parms): Likewise to emit_group_store.
* optbas.c (prepare_cmp_insn): Alignment is in bits.
(emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
* stmt.c (expand_value_return): Pass align in bits to emit_group_load.
(expand_return): Likewise to {extract,store}_bit_field.
* stor-layout.c (get_mode_alignment): Minor cleanup.
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
* config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
* ch/expr.c (chill_expand_expr): Pass bit alignment to emit_block_move.
Geoff Keating [Thu, 30 Mar 2000 00:03:14 +0000 (00:03 +0000)]
c-common.c (c_common_nodes_and_builtins): The first parameter to __builtin_va_start and __builtin_va_copy is now either a...
* c-common.c (c_common_nodes_and_builtins): The first parameter to
__builtin_va_start and __builtin_va_copy is now either a 'va_list'
or a reference to a va_list.
* builtins.c (stabilize_va_list): Simplify now we don't have to
work around C array address decay.
* c-typeck.c (convert_for_assignment): Handle assignment to
a reference parameter by taking the address of the RHS.
* ginclude/stdarg.h (va_start): Don't take address of first parameter.
(va_copy): Likewise.
(__va_copy): Likewise.
* ginclude/varargs.h (va_start): Likewise.
(__va_copy): Likewise.
Zack Weinberg [Wed, 29 Mar 2000 19:04:54 +0000 (19:04 +0000)]
hashtab.c (htab_find_with_hash): Avoid calculating hash2 unless it will be used.
* hashtab.c (htab_find_with_hash): Avoid calculating hash2
unless it will be used. Rearrange loop for better
optimization.
(higher_prime_number): Add static prototype.
Nathan Sidwell [Wed, 29 Mar 2000 08:22:21 +0000 (08:22 +0000)]
except.c (add_eh_table_entry): Mark type_info's as referenced.
gcc:
* except.c (add_eh_table_entry): Mark type_info's as referenced.
gcc/cp:
* rtti.c (get_tinfo_decl): Mark used.
(emit_tinfo_decl): Don't optimize polymorphic type_info. Only
mark as dealt with, if we output it.
Zack Weinberg [Tue, 28 Mar 2000 21:45:02 +0000 (21:45 +0000)]
cppfiles.c (hash_IHASH): Just return i->hash.
2000-03-28 Zack Weinberg <zack@wolery.cumb.org>
* cppfiles.c (hash_IHASH): Just return i->hash.
(cpp_included): Set dummy.hash using _cpp_calc_hash. Use
htab_find_with_hash.
(cpp_read_file): Likewise.
(find_include_file): Likewise. Properly initialize
ih->nshort. Share ih->name and ih->nshort if possible.
* cpphash.c (_cpp_calc_hash): New function.
(hash_HASHNODE): Just return h->hash.
(_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use
htab_find_with_hash.
* cpphash.h: Prototype _cpp_calc_hash.
* cppinit.c (initialize_builtins): Provide a valid hash
to _cpp_make_hashnode, using _cpp_calc_hash.
* cpphash.c (collect_expansion): # is not a special character
in object-like macros. In -traditional mode, /**/ is not
token paste at the beginning or end of the line.
* cpplib.c (do_include, do_import, do_include_next): If
parse_include fails, return immediately.
Jason Merrill [Tue, 28 Mar 2000 19:42:28 +0000 (19:42 +0000)]
arm.md (return peepholes): Update to reflect the new call insn patterns.
* config/arm/arm.md (return peepholes): Update to reflect the new
call insn patterns.
* config/arm/arm.c (arm_volatile_func): Also check
current_function_nothrow.
(output_return_instruction, output_func_prologue): Use it.
(arm_output_epilogue, arm_expand_prologue): Likewise.
Mark Mitchell [Tue, 28 Mar 2000 19:27:15 +0000 (19:27 +0000)]
Put RTTI entries at negative offsets in new ABI.
* class.c (dfs_build_vbase_offset_vtbl_entries): Put the first
vbase offset at index -3, not -1.
(build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not
dfs_vtable_path_unmarked_real_bases_queue_p to walk bases.
(dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff.
(build_rtti_vtbl_entries): New function.
(set_rtti_entry): Remove.
(build_primary_vtable): Don't use it.
(build_secondary_vtable): Likewise.
(start_vtable): Remove.
(first_vfun_index): New function.
(set_vindex): Likewise.
(add_virtual_function): Don't call start_vtable. Do call
set_vindex.
(set_primary_base): Rename parameter.
(determine_primary_base): Likewise.
(num_vfun_entries): Don't use skip_rtti_stuff.
(num_extra_vtbl_entries): Include RTTI information.
(build_vtbl_initializer): Use build_rtti_vtbl_entries.
(skip_rtti_stuff): Remove.
(dfs_modify_vtables): Don't use it.
(modify_all_vtables): Don't use start_vtable. Do use set_vindex.
(layout_nonempty_base_or_field): Update size handling.
(create_vtable_ptr): Tweak.
(layout_class_type): Adjust parameter names.
(finish_struct_1): Simplify.
* cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation.
(skip_rtti_stuff): Remove.
(first_vfun_index): New function.
(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
(dfs_vtable_path_marked_real_bases_queue_p): Remove.
(marked_vtable_pathp): Declare.
(unmarked_vtable_pathp): Likewise.
* error.c (dump_expr): Use first_vfun_index to calculate vtable
offsets.
* rtti.c (build_headof): Look for RTTI at negative offsets.
(get_tinfo_decl_dynamic): Likewise.
(tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL
here.
(create_pseudo_type_info): Do it here instead. Adjust so that
vptr points at first virtual function.
* search.c (marked_vtable_pathp): Make it global.
(unmarked_vtable_pathp): Likewise.
(dfs_vtable_path_unmarked_real_bases_queue_p): Remove.
(dfs_vtable_path_marked_real_bases_queue_p): Likewise.
(dfs_get_pure_virtuals): Don't use skip_rtti_stuff.
(get_pure_virtuals): Likewise.
(expand_upcast_fixups): Likewise.
* tree.c (debug_binfo): Likewise.
* tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate
negative offset.
Richard Kenner [Tue, 28 Mar 2000 17:01:49 +0000 (17:01 +0000)]
expr.c (store_constructor): SIZE now signed.
* expr.c (store_constructor): SIZE now signed.
For EXPR_SIZE, don't evaluate size; just needed if constant.
* fold-const.c (fold): Fix a number of cases when folded tree is
wrong type.
* function.c (flush_addressof): Reenable.
* tree.h (flush_addressof): Likewise.
* toplev.c (independent_decode_option): Look at strings_processed.
* config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
Jan Hubicka [Tue, 28 Mar 2000 15:41:40 +0000 (17:41 +0200)]
regmove.c (struct csa_memlist): Make mem field rtx *.
* regmove.c (struct csa_memlist): Make mem field rtx *.
(record_one_stack_ref): Accept rtx * instead of rtx as parameter.
(try_apply_stack_adjustment): Replace whole MEM rtx.
(combine_stack_adjustments_for_block): Update calls
to record_one_stack_ref.
Neil Booth [Tue, 28 Mar 2000 12:00:39 +0000 (12:00 +0000)]
2000-03-28 Neil Booth <NeilB@earthling.net>
* (cpplex.c) _cpp_read_and_prescan. Mark end of input buffer with
'\\' rather than a null character, so nulls are not special. Fix
"\\\n" handling in end-of-buffer conditions. Use trigraph map to
speed trigraph conversion.
(_cpp_init_input_buffer) Initialize trigraph map.
* jcf-parse.c (get_constant): Properly cast `num' during the
invocation of `add_double call'.
* jcf-write.c (push_long_const): Properly cast `lo' before
comparing it to short bounds.
* parse-scan.y (interface_declaration:): Rule re-arrange so that
`interface_body:' is reduced after the current interface is
pushed.
* parse-scan.y (inner_qualifier, inner_qualifier_length): New
static globals.
(push_class_context, pop_class_context): New function.
(class_body:): Call pop_class_context.
(interface_body:): Likewise.
(INNER_QUALIFIER): New macro.
(report_class_declaration): Changed output format and use
INNER_QUALIFIER. Call push_class_context.
Bryce McKinlay [Tue, 28 Mar 2000 02:22:24 +0000 (02:22 +0000)]
Makefile.in: New #defines and friends for Thread.h.
* Makefile.in: New #defines and friends for Thread.h.
* posix-threads.cc: (struct starter): Remove `object'.
(_Jv_CondWait): Use interruptable condition variables and new
recursive mutexes. New return codes on interrupt or non-ownership
of mutex.
(_Jv_CondNotify): Ditto.
(_Jv_CondNotifyAll): Ditto.
(_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
the target thread by signaling its wait condition.
(_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
not the starter struct. Initialize wait_mutex and wait_cond.
(_Jv_MutexLock): New recursive mutex implementation. Moved from
posix-threads.h.
(_Jv_MutexUnlock): Ditto.
(really_start): Set info->data->thread from pthread_self() to work
around a race condition. Destroy wait_mutex and wait_cond when run()
returns.
* java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
`isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
set.
startable_flag: New private field.
(Thread): Initialize `startable_flag'.
(toString): Check for null thread group.
* java/lang/natThread.cc: (struct natThread): New fields
`join_mutex', `join_cond'. Removed fields `joiner', `next'.
(class locker): Removed.
(initialize_native): Initialize `join_cond' and `join_mutex'.
(interrupt): Now just calls _Jv_ThreadInterrupt().
(join): Simplified. Just wait on the target thread's join condition.
(finish_): Remove join list code. Unset thread group. Signal
potential joiners by notifying the dying threads join_cond.
(start): Check for illegal restarts.
* java/lang/natObject.cc: Check for return value of _Jv_CondWait and
act appropriatly.
* include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
#defines and #ifdefs.
(struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
`wait_mutex', `next'.
(struct _Jv_ConditionVariable_t): Define as a struct instead of
directly mapping to pthread_cond_t.
(struct _Jv_Mutex_t): New recursive implementation.
(_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
_Jv_HaveCondDestroy: Never define this for posix-threads.
(_Jv_CondNotify): Remove inline implementation(s), prototype instead.
(_Jv_CondNotifyAll): Ditto.
(_Jv_MutexLock): Ditto.
(_Jv_MutexUnlock): Ditto.
(_Jv_MutexInit): Changed to reflect new mutex implementation.
(_Jv_MutexDestroy): Ditto.
(_Jv_CondDestroy): Removed.
(_Jv_PthreadGetMutex): Removed.
* include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an
error. Add a FIXME about this.
(_Jv_CondNotifyAll): Ditto.
* win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess
_JV_NOT_OWNER on other errors. Add FIXME.