diff -Nrcpad gcc-4.3.3/gcc/objc/ChangeLog gcc-4.4.0/gcc/objc/ChangeLog *** gcc-4.3.3/gcc/objc/ChangeLog Sat Jan 24 10:15:05 2009 --- gcc-4.4.0/gcc/objc/ChangeLog Tue Apr 21 08:44:36 2009 *************** *** 1,18 **** ! 2009-01-24 Release Manager ! * GCC 4.3.3 released. ! 2008-08-27 Release Manager ! * GCC 4.3.2 released. ! 2008-06-06 Release Manager ! * GCC 4.3.1 released. ! 2008-03-05 Release Manager ! * GCC 4.3.0 released. 2008-02-06 Kaveh R. Ghazi --- 1,167 ---- ! 2009-04-21 Release Manager ! * GCC 4.4.0 released. ! 2008-12-05 Sebastian Pop ! PR bootstrap/38262 ! * Make-lang.in (cc1obj-dummy, cc1obj): Add BACKENDLIBS, ! remove GMPLIBS. ! 2008-10-06 Aldy Hernandez ! * objc-act.c (objc_build_string_object): Pass location to ! build_unary_op. ! (init_def_list): Same. ! (init_objc_symtab): Same. ! (init_module_descriptor): Same. ! (build_module_initializer_routine): Same. ! (generate_static_references): Same. ! (build_typed_selector_reference): Same. ! (add_objc_string): Same. ! (objc_substitute_decl): Same. ! (objc_build_ivar_assignment): Same. ! (objc_build_global_assignment): Same. ! (objc_build_strong_cast_assignment): Same. ! (generate_protocols): Same. ! (build_protocol_initializer): Same. ! (build_dispatch_table_initializer): Same. ! (generate_protocol_list): Same. ! (build_category_initializer): Same. ! (build_shared_structure_initializer): Same. ! (generate_shared_structures): Same. ! (objc_build_protocol_expr): Same. ! (build_ivar_reference): Same. ! (get_super_receiver): Same. ! 2008-09-23 Aldy Hernandez ! * objc-act.c (next_sjlj_build_enter_and_setjmp): Call ! c_common_truthvalue_conversion with location. ! (next_sjlj_build_catch_list): Same. ! (next_sjlj_build_try_catch_finally): Same. ! ! 2008-09-17 Andrew Pinski ! ! PR objc/37460 ! * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. ! * objc-act.h (objc_get_callee_fndecl): Remove prototype. ! * objc-act.c (objc_get_callee_fndecl): Kill. ! ! 2008-09-17 Jan Hubicka ! ! PR c++/18071 ! * objc/objc-act.c (objc_finish_method_definition): Do not set ! DECL_INLINE. ! ! 2008-09-01 Aldy Hernandez ! ! * objc-act.c (build_typed_selector_reference): Pass input_location to ! build_unary_op calls. ! (build_selector_reference): Same, but to build_array_ref. ! (objc_substitute_decl): Same. ! (build_ivar_reference): Same, but to build_indirect_ref. ! (get_super_receiver): Same. ! ! 2008-07-28 Richard Guenther ! ! Merge from gimple-tuples-branch. ! ! 2008-07-18 Aldy Hernandez ! ! * Make-lang.in (objc-lang.o): Depend on GIMPLE_H. ! (objc-act.o): Rename TREE_GIMPLE_H to GIMPLE_H. ! * objc-act.h: Include gimple.h instead of tree-gimple.h. ! * ipa-reference.c: Same. ! ! 2007-11-10 Aldy Hernandez ! ! * objc-act.c (objc_gimplify_expr): Change pre and post to sequences. ! * objc-act.h (objc_gimplify_expr): Change prototype accordingly. ! ! 2008-07-21 Ralf Wildenhues ! ! * objc-act.c: Fix comment typos. ! ! 2008-07-18 Kaveh R. Ghazi ! ! * objc-act.c (objc_start_class_interface, ! objc_start_category_interface, objc_start_class_implementation, ! objc_start_category_implementation, objc_build_struct, ! generate_static_references, build_private_template, ! lookup_category, objc_add_method, add_category, ! add_instance_variable, objc_is_public, conforms_to_protocol, ! start_class, continue_class, finish_class): Avoid C++ keywords. ! ! 2008-07-14 Jason Merrill ! ! PR objc++/36723 ! * objc-act.c (objc_build_constructor): Update C++ tweak. ! ! 2007-07-14 Rafael Ávila de Espíndola ! ! * objc-act.c (synth_module_prologue): Use TREE_NO_WARNING instead ! of DECL_IN_SYSTEM_HEADER. ! ! 2008-07-11 Ian Lance Taylor ! ! * objc-act.c (objc_is_reserved_word): Always check for RID_CLASS, ! etc., not just when OBJCPLUS is defined. ! ! 2008-06-19 Kaveh R. Ghazi ! ! * objc-act.c (setup_string_decl, objc_build_string_object, ! hash_interface, eq_interface, objc_begin_try_stmt, ! encode_method_prototype, build_ivar_list_initializer, ! objc_build_encode_expr): Fix for -Wc++-compat. ! ! 2008-05-12 Tomas Bily ! ! * objc-act.c (objc_generate_write_barrier, objc_finish_message_expr): ! Use CONVERT_EXPR_P. ! ! 2008-04-23 Paolo Bonzini ! ! * objc-act.c (objc_build_string_object): Don't set TREE_INVARIANT. ! ! 2008-04-03 Tom Tromey ! ! * Make-lang.in (objc_OBJS): New variable. ! ! 2008-03-27 Tom Tromey ! ! * Make-lang.in: Revert automatic dependency patch. ! ! 2008-03-27 Douglas Gregor ! ! PR obj-c++/35704 ! * objc-act.c (objc_build_component_ref): Fix call to ! finish_class_member_access_expr. ! (objc_generate_cxx_ctor_or_dtor): Fix call to ! build_special_member_call. ! ! 2008-03-25 Andrew Pinski ! ! PR objc/29197 ! * objc-act.c (encode_type): Handle when type is error_mark_node. ! (objc_push_parm): Handle when the type of parm is error_mark_node. ! ! 2008-03-25 Tom Tromey ! ! * Make-lang.in (objc_OBJS): New variable. ! (cc1obj-checksum.o, objc/objc-lang.o, objc/objc-act.o): Remove. ! ! 2008-03-21 Andreas Tobler ! ! PR bootstrap/35660 ! * objc-act.c (objc_generate_cxx_ctor_or_dtor): Rename IS_AGGR_TYPE to ! MAYBE_CLASS_TYPE_P. ! (objc_generate_cxx_cdtors): Likewise. ! (add_instance_variable): Likewise. ! ! 2008-02-26 Tom Tromey ! ! * objc-act.c (objc_init): Remove old location code. 2008-02-06 Kaveh R. Ghazi *************** *** 82,88 **** * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and content where we called cp_finish_file. ! 2006-10-23 Rafael Avila de Espindola * objc-act.c (synth_module_prologue): Replace calls to builtin_function with add_builtin_function. --- 231,237 ---- * objc-act.c (objc_finish_file): Remove ifdef clause for OBJCPLUS and content where we called cp_finish_file. ! 2006-10-23 Rafael Ávila de Espíndola * objc-act.c (synth_module_prologue): Replace calls to builtin_function with add_builtin_function. *************** *** 135,141 **** module descriptor. (gen_type_name_0): Fix ICE when issuing warning. ! 2006-02-20 Rafael vila de Espndola * Make-lang.in (OBJC): Remove (OBJECTIVE-C): Remove (objective-c): Remove --- 284,290 ---- module descriptor. (gen_type_name_0): Fix ICE when issuing warning. ! 2006-02-20 Rafael Ávila de Espíndola * Make-lang.in (OBJC): Remove (OBJECTIVE-C): Remove (objective-c): Remove *************** *** 152,162 **** PR objc/25348 * objc-act.c (encode_array): Handle arrays to zero sized types. ! 2005-12-07 Rafael vila de Espndola * Make-lang.in (objc.all.build, objc.install-normal): Remove. ! 2005-12-07 Rafael vila de Espndola * Make-lang.in: Remove all dependencies on s-gtype. --- 301,311 ---- PR objc/25348 * objc-act.c (encode_array): Handle arrays to zero sized types. ! 2005-12-07 Rafael Ávila de Espíndola * Make-lang.in (objc.all.build, objc.install-normal): Remove. ! 2005-12-07 Rafael Ávila de Espíndola * Make-lang.in: Remove all dependencies on s-gtype. diff -Nrcpad gcc-4.3.3/gcc/objc/Make-lang.in gcc-4.4.0/gcc/objc/Make-lang.in *** gcc-4.3.3/gcc/objc/Make-lang.in Wed Feb 6 21:51:24 2008 --- gcc-4.4.0/gcc/objc/Make-lang.in Fri Dec 5 08:01:58 2008 *************** *** 1,6 **** # Top level -*- makefile -*- fragment for GNU Objective-C ! # Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2007 ! # Free Software Foundation, Inc. #This file is part of GCC. --- 1,6 ---- # Top level -*- makefile -*- fragment for GNU Objective-C ! # Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2007, ! # 2008 Free Software Foundation, Inc. #This file is part of GCC. *************** objc-warn = $(STRICT_WARN) *** 49,58 **** # Language-specific object files for Objective C. OBJC_OBJS = objc/objc-lang.o objc/objc-act.o cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \ ! $(BACKEND) $(LIBS) $(GMPLIBS) cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(build_exeext) build/genchecksum$(build_exeext) cc1obj-dummy$(exeext) > $@ --- 49,60 ---- # Language-specific object files for Objective C. OBJC_OBJS = objc/objc-lang.o objc/objc-act.o + objc_OBJS = $(OBJC_OBJS) cc1obj-checksum.o + cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \ ! $(BACKEND) $(LIBS) $(BACKENDLIBS) cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(build_exeext) build/genchecksum$(build_exeext) cc1obj-dummy$(exeext) > $@ *************** cc1obj-checksum.o : cc1obj-checksum.c *** 62,68 **** cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \ ! $(BACKEND) $(LIBS) $(GMPLIBS) # Objective C language specific files. --- 64,70 ---- cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \ ! $(BACKEND) $(LIBS) $(BACKENDLIBS) # Objective C language specific files. *************** objc/objc-lang.o : objc/objc-lang.c \ *** 70,83 **** $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ $(C_TREE_H) $(DIAGNOSTIC_H) \ $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h \ ! c-objc-common.h objc/objc-act.h $(TREE_GIMPLE_H) objc/objc-act.o : objc/objc-act.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \ $(EXPR_H) $(TARGET_H) $(C_TREE_H) $(DIAGNOSTIC_H) toplev.h $(FLAGS_H) \ objc/objc-act.h input.h $(FUNCTION_H) output.h debug.h langhooks.h \ $(LANGHOOKS_DEF_H) $(HASHTAB_H) $(C_PRAGMA_H) gt-objc-objc-act.h \ ! $(TREE_GIMPLE_H) objc.srcextra: --- 72,85 ---- $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ $(C_TREE_H) $(DIAGNOSTIC_H) \ $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h \ ! c-objc-common.h objc/objc-act.h $(GIMPLE_H) objc/objc-act.o : objc/objc-act.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \ $(EXPR_H) $(TARGET_H) $(C_TREE_H) $(DIAGNOSTIC_H) toplev.h $(FLAGS_H) \ objc/objc-act.h input.h $(FUNCTION_H) output.h debug.h langhooks.h \ $(LANGHOOKS_DEF_H) $(HASHTAB_H) $(C_PRAGMA_H) gt-objc-objc-act.h \ ! $(GIMPLE_H) objc.srcextra: diff -Nrcpad gcc-4.3.3/gcc/objc/objc-act.c gcc-4.4.0/gcc/objc/objc-act.c *** gcc-4.3.3/gcc/objc/objc-act.c Thu Aug 2 10:37:36 2007 --- gcc-4.4.0/gcc/objc/objc-act.c Mon Oct 6 21:35:02 2008 *************** *** 1,6 **** /* Implement classes and message passing for Objective C. Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, ! 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. Contributed by Steve Naroff. This file is part of GCC. --- 1,6 ---- /* Implement classes and message passing for Objective C. Copyright (C) 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, ! 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. Contributed by Steve Naroff. This file is part of GCC. *************** objc_init (void) *** 484,496 **** #endif return false; - #ifndef USE_MAPPED_LOCATION - /* Force the line number back to 0; check_newline will have - raised it to 1, which will make the builtin functions appear - not to be built in. */ - input_line = 0; - #endif - /* If gen_declaration desired, open the output file. */ if (flag_gen_declaration) { --- 484,489 ---- *************** lookup_protocol_in_reflist (tree rproto_ *** 624,642 **** } void ! objc_start_class_interface (tree class, tree super_class, tree protos) { objc_interface_context = objc_ivar_context ! = start_class (CLASS_INTERFACE_TYPE, class, super_class, protos); objc_public_flag = 0; } void ! objc_start_category_interface (tree class, tree categ, tree protos) { objc_interface_context ! = start_class (CATEGORY_INTERFACE_TYPE, class, categ, protos); objc_ivar_chain = continue_class (objc_interface_context); } --- 617,635 ---- } void ! objc_start_class_interface (tree klass, tree super_class, tree protos) { objc_interface_context = objc_ivar_context ! = start_class (CLASS_INTERFACE_TYPE, klass, super_class, protos); objc_public_flag = 0; } void ! objc_start_category_interface (tree klass, tree categ, tree protos) { objc_interface_context ! = start_class (CATEGORY_INTERFACE_TYPE, klass, categ, protos); objc_ivar_chain = continue_class (objc_interface_context); } *************** objc_finish_interface (void) *** 663,681 **** } void ! objc_start_class_implementation (tree class, tree super_class) { objc_implementation_context = objc_ivar_context ! = start_class (CLASS_IMPLEMENTATION_TYPE, class, super_class, NULL_TREE); objc_public_flag = 0; } void ! objc_start_category_implementation (tree class, tree categ) { objc_implementation_context ! = start_class (CATEGORY_IMPLEMENTATION_TYPE, class, categ, NULL_TREE); objc_ivar_chain = continue_class (objc_implementation_context); } --- 656,674 ---- } void ! objc_start_class_implementation (tree klass, tree super_class) { objc_implementation_context = objc_ivar_context ! = start_class (CLASS_IMPLEMENTATION_TYPE, klass, super_class, NULL_TREE); objc_public_flag = 0; } void ! objc_start_category_implementation (tree klass, tree categ) { objc_implementation_context ! = start_class (CATEGORY_IMPLEMENTATION_TYPE, klass, categ, NULL_TREE); objc_ivar_chain = continue_class (objc_implementation_context); } *************** objc_is_reserved_word (tree ident) *** 767,778 **** unsigned char code = C_RID_CODE (ident); return (OBJC_IS_AT_KEYWORD (code) - #ifdef OBJCPLUS || code == RID_CLASS || code == RID_PUBLIC || code == RID_PROTECTED || code == RID_PRIVATE ! || code == RID_TRY || code == RID_THROW || code == RID_CATCH ! #endif ! ); } /* Return true if TYPE is 'id'. */ --- 760,768 ---- unsigned char code = C_RID_CODE (ident); return (OBJC_IS_AT_KEYWORD (code) || code == RID_CLASS || code == RID_PUBLIC || code == RID_PROTECTED || code == RID_PRIVATE ! || code == RID_TRY || code == RID_THROW || code == RID_CATCH); } /* Return true if TYPE is 'id'. */ *************** objc_is_class_id (tree type) *** 789,801 **** return OBJC_TYPE_NAME (type) == objc_class_id; } ! /* Construct a C struct with same name as CLASS, a base struct with tag SUPER_NAME (if any), and FIELDS indicated. */ static tree ! objc_build_struct (tree class, tree fields, tree super_name) { ! tree name = CLASS_NAME (class); tree s = start_struct (RECORD_TYPE, name); tree super = (super_name ? xref_tag (RECORD_TYPE, super_name) : NULL_TREE); tree t, objc_info = NULL_TREE; --- 779,791 ---- return OBJC_TYPE_NAME (type) == objc_class_id; } ! /* Construct a C struct with same name as KLASS, a base struct with tag SUPER_NAME (if any), and FIELDS indicated. */ static tree ! objc_build_struct (tree klass, tree fields, tree super_name) { ! tree name = CLASS_NAME (klass); tree s = start_struct (RECORD_TYPE, name); tree super = (super_name ? xref_tag (RECORD_TYPE, super_name) : NULL_TREE); tree t, objc_info = NULL_TREE; *************** objc_build_struct (tree class, tree fiel *** 811,817 **** && TREE_CODE (TREE_CHAIN (field)) == FIELD_DECL) field = TREE_CHAIN (field); ! /* For ObjC ABI purposes, the "packed" size of a base class is the the sum of the offset and the size (in bits) of the last field in the class. */ DECL_SIZE (base) --- 801,807 ---- && TREE_CODE (TREE_CHAIN (field)) == FIELD_DECL) field = TREE_CHAIN (field); ! /* For ObjC ABI purposes, the "packed" size of a base class is the sum of the offset and the size (in bits) of the last field in the class. */ DECL_SIZE (base) *************** objc_build_struct (tree class, tree fiel *** 855,861 **** /* Point the struct at its related Objective-C class. */ INIT_TYPE_OBJC_INFO (s); ! TYPE_OBJC_INTERFACE (s) = class; s = finish_struct (s, fields, NULL_TREE); --- 845,851 ---- /* Point the struct at its related Objective-C class. */ INIT_TYPE_OBJC_INFO (s); ! TYPE_OBJC_INTERFACE (s) = klass; s = finish_struct (s, fields, NULL_TREE); *************** objc_build_struct (tree class, tree fiel *** 864,877 **** { TYPE_OBJC_INFO (t) = TREE_VALUE (objc_info); /* Replace the IDENTIFIER_NODE with an actual @interface. */ ! TYPE_OBJC_INTERFACE (t) = class; } /* Use TYPE_BINFO structures to point at the super class, if any. */ objc_xref_basetypes (s, super); /* Mark this struct as a class template. */ ! CLASS_STATIC_TEMPLATE (class) = s; return s; } --- 854,867 ---- { TYPE_OBJC_INFO (t) = TREE_VALUE (objc_info); /* Replace the IDENTIFIER_NODE with an actual @interface. */ ! TYPE_OBJC_INTERFACE (t) = klass; } /* Use TYPE_BINFO structures to point at the super class, if any. */ objc_xref_basetypes (s, super); /* Mark this struct as a class template. */ ! CLASS_STATIC_TEMPLATE (klass) = s; return s; } *************** objc_build_component_ref (tree datum, tr *** 1262,1268 **** front-end, but 'finish_class_member_access_expr' seems to be a worthy substitute. */ #ifdef OBJCPLUS ! return finish_class_member_access_expr (datum, component, false); #else return build_component_ref (datum, component); #endif --- 1252,1259 ---- front-end, but 'finish_class_member_access_expr' seems to be a worthy substitute. */ #ifdef OBJCPLUS ! return finish_class_member_access_expr (datum, component, false, ! tf_warning_or_error); #else return build_component_ref (datum, component); #endif *************** setup_string_decl (void) *** 1506,1512 **** /* %s in format will provide room for terminating null */ length = strlen (STRING_OBJECT_GLOBAL_FORMAT) + strlen (constant_string_class_name); ! name = xmalloc (length); sprintf (name, STRING_OBJECT_GLOBAL_FORMAT, constant_string_class_name); constant_string_global_id = get_identifier (name); --- 1497,1503 ---- /* %s in format will provide room for terminating null */ length = strlen (STRING_OBJECT_GLOBAL_FORMAT) + strlen (constant_string_class_name); ! name = XNEWVEC (char, length); sprintf (name, STRING_OBJECT_GLOBAL_FORMAT, constant_string_class_name); constant_string_global_id = get_identifier (name); *************** synth_module_prologue (void) *** 1534,1540 **** const struct gcc_debug_hooks *const save_hooks = debug_hooks; /* Suppress outputting debug symbols, because ! dbxout_init hasn'r been called yet. */ write_symbols = NO_DEBUG; debug_hooks = &do_nothing_debug_hooks; --- 1525,1531 ---- const struct gcc_debug_hooks *const save_hooks = debug_hooks; /* Suppress outputting debug symbols, because ! dbxout_init hasn't been called yet. */ write_symbols = NO_DEBUG; debug_hooks = &do_nothing_debug_hooks; *************** synth_module_prologue (void) *** 1561,1571 **** type = lang_hooks.decls.pushdecl (build_decl (TYPE_DECL, objc_object_name, objc_object_type)); ! DECL_IN_SYSTEM_HEADER (type) = 1; type = lang_hooks.decls.pushdecl (build_decl (TYPE_DECL, objc_class_name, objc_class_type)); ! DECL_IN_SYSTEM_HEADER (type) = 1; /* Forward-declare '@interface Protocol'. */ --- 1552,1562 ---- type = lang_hooks.decls.pushdecl (build_decl (TYPE_DECL, objc_object_name, objc_object_type)); ! TREE_NO_WARNING (type) = 1; type = lang_hooks.decls.pushdecl (build_decl (TYPE_DECL, objc_class_name, objc_class_type)); ! TREE_NO_WARNING (type) = 1; /* Forward-declare '@interface Protocol'. */ *************** objc_build_string_object (tree string) *** 1935,1946 **** /* Perhaps we already constructed a constant string just like this one? */ key.literal = string; loc = htab_find_slot (string_htab, &key, INSERT); ! desc = *loc; if (!desc) { tree var; ! *loc = desc = ggc_alloc (sizeof (*desc)); desc->literal = string; /* GNU: (NXConstantString *) & ((__builtin_ObjCString) { NULL, string, length }) */ --- 1926,1937 ---- /* Perhaps we already constructed a constant string just like this one? */ key.literal = string; loc = htab_find_slot (string_htab, &key, INSERT); ! desc = (struct string_descriptor *) *loc; if (!desc) { tree var; ! *loc = desc = GGC_NEW (struct string_descriptor); desc->literal = string; /* GNU: (NXConstantString *) & ((__builtin_ObjCString) { NULL, string, length }) */ *************** objc_build_string_object (tree string) *** 1949,1965 **** initlist = build_tree_list (fields, flag_next_runtime ! ? build_unary_op (ADDR_EXPR, string_class_decl, 0) : build_int_cst (NULL_TREE, 0)); fields = TREE_CHAIN (fields); ! initlist = tree_cons (fields, build_unary_op (ADDR_EXPR, string, 1), initlist); fields = TREE_CHAIN (fields); initlist = tree_cons (fields, build_int_cst (NULL_TREE, length), initlist); constructor = objc_build_constructor (internal_const_str_type, nreverse (initlist)); - TREE_INVARIANT (constructor) = true; if (!flag_next_runtime) constructor --- 1940,1957 ---- initlist = build_tree_list (fields, flag_next_runtime ! ? build_unary_op (input_location, ! ADDR_EXPR, string_class_decl, 0) : build_int_cst (NULL_TREE, 0)); fields = TREE_CHAIN (fields); ! initlist = tree_cons (fields, build_unary_op (input_location, ! ADDR_EXPR, string, 1), initlist); fields = TREE_CHAIN (fields); initlist = tree_cons (fields, build_int_cst (NULL_TREE, length), initlist); constructor = objc_build_constructor (internal_const_str_type, nreverse (initlist)); if (!flag_next_runtime) constructor *************** objc_build_string_object (tree string) *** 1976,1982 **** } addr = convert (build_pointer_type (constant_string_type), ! build_unary_op (ADDR_EXPR, desc->constructor, 1)); return addr; } --- 1968,1975 ---- } addr = convert (build_pointer_type (constant_string_type), ! build_unary_op (input_location, ! ADDR_EXPR, desc->constructor, 1)); return addr; } *************** objc_build_constructor (tree type, tree *** 2038,2045 **** /* Adjust for impedance mismatch. We should figure out how to build CONSTRUCTORs that consistently please both the C and C++ gods. */ if (!TREE_PURPOSE (elts)) ! TREE_TYPE (constructor) = NULL_TREE; ! TREE_HAS_CONSTRUCTOR (constructor) = 1; #endif return constructor; --- 2031,2037 ---- /* Adjust for impedance mismatch. We should figure out how to build CONSTRUCTORs that consistently please both the C and C++ gods. */ if (!TREE_PURPOSE (elts)) ! TREE_TYPE (constructor) = init_list_type_node; #endif return constructor; *************** init_def_list (tree type) *** 2115,2121 **** { if (TREE_CODE (impent->imp_context) == CLASS_IMPLEMENTATION_TYPE) { ! expr = build_unary_op (ADDR_EXPR, impent->class_decl, 0); initlist = tree_cons (NULL_TREE, expr, initlist); } } --- 2107,2114 ---- { if (TREE_CODE (impent->imp_context) == CLASS_IMPLEMENTATION_TYPE) { ! expr = build_unary_op (input_location, ! ADDR_EXPR, impent->class_decl, 0); initlist = tree_cons (NULL_TREE, expr, initlist); } } *************** init_def_list (tree type) *** 2125,2131 **** { if (TREE_CODE (impent->imp_context) == CATEGORY_IMPLEMENTATION_TYPE) { ! expr = build_unary_op (ADDR_EXPR, impent->class_decl, 0); initlist = tree_cons (NULL_TREE, expr, initlist); } } --- 2118,2125 ---- { if (TREE_CODE (impent->imp_context) == CATEGORY_IMPLEMENTATION_TYPE) { ! expr = build_unary_op (input_location, ! ADDR_EXPR, impent->class_decl, 0); initlist = tree_cons (NULL_TREE, expr, initlist); } } *************** init_def_list (tree type) *** 2136,2142 **** tree expr; if (static_instances_decl) ! expr = build_unary_op (ADDR_EXPR, static_instances_decl, 0); else expr = build_int_cst (NULL_TREE, 0); --- 2130,2137 ---- tree expr; if (static_instances_decl) ! expr = build_unary_op (input_location, ! ADDR_EXPR, static_instances_decl, 0); else expr = build_int_cst (NULL_TREE, 0); *************** init_objc_symtab (tree type) *** 2166,2172 **** initlist = tree_cons (NULL_TREE, convert (build_pointer_type (objc_selector_type), ! build_unary_op (ADDR_EXPR, UOBJC_SELECTOR_TABLE_decl, 1)), initlist); --- 2161,2167 ---- initlist = tree_cons (NULL_TREE, convert (build_pointer_type (objc_selector_type), ! build_unary_op (input_location, ADDR_EXPR, UOBJC_SELECTOR_TABLE_decl, 1)), initlist); *************** init_module_descriptor (tree type) *** 2273,2279 **** /* symtab = { ..., _OBJC_SYMBOLS, ... } */ if (UOBJC_SYMBOLS_decl) ! expr = build_unary_op (ADDR_EXPR, UOBJC_SYMBOLS_decl, 0); else expr = build_int_cst (NULL_TREE, 0); initlist = tree_cons (NULL_TREE, expr, initlist); --- 2268,2275 ---- /* symtab = { ..., _OBJC_SYMBOLS, ... } */ if (UOBJC_SYMBOLS_decl) ! expr = build_unary_op (input_location, ! ADDR_EXPR, UOBJC_SYMBOLS_decl, 0); else expr = build_int_cst (NULL_TREE, 0); initlist = tree_cons (NULL_TREE, expr, initlist); *************** build_module_initializer_routine (void) *** 2356,2362 **** (execclass_decl, build_tree_list (NULL_TREE, ! build_unary_op (ADDR_EXPR, UOBJC_MODULES_decl, 0)))); add_stmt (c_end_compound_stmt (body, true)); --- 2352,2358 ---- (execclass_decl, build_tree_list (NULL_TREE, ! build_unary_op (input_location, ADDR_EXPR, UOBJC_MODULES_decl, 0)))); add_stmt (c_end_compound_stmt (body, true)); *************** static void *** 2429,2435 **** generate_static_references (void) { tree decls = NULL_TREE, expr = NULL_TREE; ! tree class_name, class, decl, initlist; tree cl_chain, in_chain, type = build_array_type (build_pointer_type (void_type_node), NULL_TREE); int num_inst, num_class; --- 2425,2431 ---- generate_static_references (void) { tree decls = NULL_TREE, expr = NULL_TREE; ! tree class_name, klass, decl, initlist; tree cl_chain, in_chain, type = build_array_type (build_pointer_type (void_type_node), NULL_TREE); int num_inst, num_class; *************** generate_static_references (void) *** 2448,2463 **** decl = start_var_decl (type, buf); /* Output {class_name, ...}. */ ! class = TREE_VALUE (cl_chain); ! class_name = get_objc_string_decl (OBJC_TYPE_NAME (class), class_names); initlist = build_tree_list (NULL_TREE, ! build_unary_op (ADDR_EXPR, class_name, 1)); /* Output {..., instance, ...}. */ for (in_chain = TREE_PURPOSE (cl_chain); in_chain; in_chain = TREE_CHAIN (in_chain)) { ! expr = build_unary_op (ADDR_EXPR, TREE_VALUE (in_chain), 1); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 2444,2461 ---- decl = start_var_decl (type, buf); /* Output {class_name, ...}. */ ! klass = TREE_VALUE (cl_chain); ! class_name = get_objc_string_decl (OBJC_TYPE_NAME (klass), class_names); initlist = build_tree_list (NULL_TREE, ! build_unary_op (input_location, ! ADDR_EXPR, class_name, 1)); /* Output {..., instance, ...}. */ for (in_chain = TREE_PURPOSE (cl_chain); in_chain; in_chain = TREE_CHAIN (in_chain)) { ! expr = build_unary_op (input_location, ! ADDR_EXPR, TREE_VALUE (in_chain), 1); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** generate_static_references (void) *** 2467,2473 **** expr = objc_build_constructor (TREE_TYPE (decl), nreverse (initlist)); finish_var_decl (decl, expr); decls ! = tree_cons (NULL_TREE, build_unary_op (ADDR_EXPR, decl, 1), decls); } decls = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), decls); --- 2465,2472 ---- expr = objc_build_constructor (TREE_TYPE (decl), nreverse (initlist)); finish_var_decl (decl, expr); decls ! = tree_cons (NULL_TREE, build_unary_op (input_location, ! ADDR_EXPR, decl, 1), decls); } decls = tree_cons (NULL_TREE, build_int_cst (NULL_TREE, 0), decls); *************** build_typed_selector_reference (tree ide *** 2639,2647 **** *chain = tree_cons (prototype, ident, NULL_TREE); return_at_index: ! expr = build_unary_op (ADDR_EXPR, build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index)), 1); return convert (objc_selector_type, expr); } --- 2638,2647 ---- *chain = tree_cons (prototype, ident, NULL_TREE); return_at_index: ! expr = build_unary_op (input_location, ADDR_EXPR, build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index), ! input_location), 1); return convert (objc_selector_type, expr); } *************** build_selector_reference (tree ident) *** 2659,2665 **** return (flag_next_runtime ? TREE_PURPOSE (*chain) : build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index))); index++; chain = &TREE_CHAIN (*chain); --- 2659,2666 ---- return (flag_next_runtime ? TREE_PURPOSE (*chain) : build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index), ! input_location)); index++; chain = &TREE_CHAIN (*chain); *************** build_selector_reference (tree ident) *** 2672,2678 **** return (flag_next_runtime ? expr : build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index))); } static GTY(()) int class_reference_idx; --- 2673,2680 ---- return (flag_next_runtime ? expr : build_array_ref (UOBJC_SELECTOR_TABLE_decl, ! build_int_cst (NULL_TREE, index), ! input_location)); } static GTY(()) int class_reference_idx; *************** add_objc_string (tree ident, enum string *** 2809,2815 **** { if (TREE_VALUE (*chain) == ident) return convert (string_type_node, ! build_unary_op (ADDR_EXPR, TREE_PURPOSE (*chain), 1)); chain = &TREE_CHAIN (*chain); } --- 2811,2818 ---- { if (TREE_VALUE (*chain) == ident) return convert (string_type_node, ! build_unary_op (input_location, ! ADDR_EXPR, TREE_PURPOSE (*chain), 1)); chain = &TREE_CHAIN (*chain); } *************** add_objc_string (tree ident, enum string *** 2828,2834 **** *chain = tree_cons (decl, ident, NULL_TREE); ! return convert (string_type_node, build_unary_op (ADDR_EXPR, decl, 1)); } static GTY(()) int class_names_idx; --- 2831,2838 ---- *chain = tree_cons (decl, ident, NULL_TREE); ! return convert (string_type_node, build_unary_op (input_location, ! ADDR_EXPR, decl, 1)); } static GTY(()) int class_names_idx; *************** objc_substitute_decl (tree expr, tree ol *** 3057,3065 **** return build_array_ref (objc_substitute_decl (TREE_OPERAND (expr, 0), oldexpr, newexpr), ! TREE_OPERAND (expr, 1)); case INDIRECT_REF: ! return build_indirect_ref (objc_substitute_decl (TREE_OPERAND (expr, 0), oldexpr, newexpr), "->"); default: --- 3061,3071 ---- return build_array_ref (objc_substitute_decl (TREE_OPERAND (expr, 0), oldexpr, newexpr), ! TREE_OPERAND (expr, 1), ! input_location); case INDIRECT_REF: ! return build_indirect_ref (input_location, ! objc_substitute_decl (TREE_OPERAND (expr, 0), oldexpr, newexpr), "->"); default: *************** objc_build_ivar_assignment (tree outerva *** 3083,3089 **** ? objc_assign_ivar_fast_decl : objc_assign_ivar_decl); ! offs = convert (integer_type_node, build_unary_op (ADDR_EXPR, offs, 0)); offs = fold (offs); func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), --- 3089,3096 ---- ? objc_assign_ivar_fast_decl : objc_assign_ivar_decl); ! offs = convert (integer_type_node, build_unary_op (input_location, ! ADDR_EXPR, offs, 0)); offs = fold (offs); func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), *************** objc_build_global_assignment (tree lhs, *** 3101,3107 **** tree func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type), ! build_unary_op (ADDR_EXPR, lhs, 0)), NULL_TREE)); assemble_external (objc_assign_global_decl); --- 3108,3114 ---- tree func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type), ! build_unary_op (input_location, ADDR_EXPR, lhs, 0)), NULL_TREE)); assemble_external (objc_assign_global_decl); *************** objc_build_strong_cast_assignment (tree *** 3114,3120 **** tree func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type), ! build_unary_op (ADDR_EXPR, lhs, 0)), NULL_TREE)); assemble_external (objc_assign_strong_cast_decl); --- 3121,3127 ---- tree func_params = tree_cons (NULL_TREE, convert (objc_object_type, rhs), tree_cons (NULL_TREE, convert (build_pointer_type (objc_object_type), ! build_unary_op (input_location, ADDR_EXPR, lhs, 0)), NULL_TREE)); assemble_external (objc_assign_strong_cast_decl); *************** objc_generate_write_barrier (tree lhs, e *** 3171,3178 **** outer = TREE_OPERAND (lhs, 0); while (!strong_cast_p ! && (TREE_CODE (outer) == CONVERT_EXPR ! || TREE_CODE (outer) == NOP_EXPR || TREE_CODE (outer) == NON_LVALUE_EXPR)) { tree lhstype = TREE_TYPE (outer); --- 3178,3184 ---- outer = TREE_OPERAND (lhs, 0); while (!strong_cast_p ! && (CONVERT_EXPR_P (outer) || TREE_CODE (outer) == NON_LVALUE_EXPR)) { tree lhstype = TREE_TYPE (outer); *************** static GTY ((param_is (struct interface_ *** 3298,3311 **** static hashval_t hash_interface (const void *p) { ! const struct interface_tuple *d = p; return IDENTIFIER_HASH_VALUE (d->id); } static int eq_interface (const void *p1, const void *p2) { ! const struct interface_tuple *d = p1; return d->id == p2; } --- 3304,3317 ---- static hashval_t hash_interface (const void *p) { ! const struct interface_tuple *d = (const struct interface_tuple *) p; return IDENTIFIER_HASH_VALUE (d->id); } static int eq_interface (const void *p1, const void *p2) { ! const struct interface_tuple *d = (const struct interface_tuple *) p1; return d->id == p2; } *************** next_sjlj_build_enter_and_setjmp (void) *** 3545,3551 **** sj = build_function_call (objc_setjmp_decl, t); cond = build2 (COMPOUND_EXPR, TREE_TYPE (sj), enter, sj); ! cond = c_common_truthvalue_conversion (cond); return build3 (COND_EXPR, void_type_node, cond, NULL, NULL); } --- 3551,3557 ---- sj = build_function_call (objc_setjmp_decl, t); cond = build2 (COMPOUND_EXPR, TREE_TYPE (sj), enter, sj); ! cond = c_common_truthvalue_conversion (input_location, cond); return build3 (COND_EXPR, void_type_node, cond, NULL, NULL); } *************** next_sjlj_build_catch_list (void) *** 3612,3618 **** t = objc_get_class_reference (OBJC_TYPE_NAME (TREE_TYPE (type))); args = tree_cons (NULL, t, args); t = build_function_call (objc_exception_match_decl, args); ! cond = c_common_truthvalue_conversion (t); } t = build3 (COND_EXPR, void_type_node, cond, body, NULL); SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt)); --- 3618,3624 ---- t = objc_get_class_reference (OBJC_TYPE_NAME (TREE_TYPE (type))); args = tree_cons (NULL, t, args); t = build_function_call (objc_exception_match_decl, args); ! cond = c_common_truthvalue_conversion (input_location, t); } t = build3 (COND_EXPR, void_type_node, cond, body, NULL); SET_EXPR_LOCUS (t, EXPR_LOCUS (stmt)); *************** next_sjlj_build_try_catch_finally (void) *** 3734,3740 **** /* Build the complete FINALLY statement list. */ t = next_sjlj_build_try_exit (); t = build_stmt (COND_EXPR, ! c_common_truthvalue_conversion (rethrow_decl), NULL, t); SET_EXPR_LOCATION (t, cur_try_context->finally_locus); append_to_statement_list (t, &TREE_OPERAND (try_fin, 1)); --- 3740,3747 ---- /* Build the complete FINALLY statement list. */ t = next_sjlj_build_try_exit (); t = build_stmt (COND_EXPR, ! c_common_truthvalue_conversion ! (input_location, rethrow_decl), NULL, t); SET_EXPR_LOCATION (t, cur_try_context->finally_locus); append_to_statement_list (t, &TREE_OPERAND (try_fin, 1)); *************** next_sjlj_build_try_catch_finally (void) *** 3745,3751 **** t = tree_cons (NULL, rethrow_decl, NULL); t = build_function_call (objc_exception_throw_decl, t); t = build_stmt (COND_EXPR, ! c_common_truthvalue_conversion (rethrow_decl), t, NULL); SET_EXPR_LOCATION (t, cur_try_context->end_finally_locus); append_to_statement_list (t, &TREE_OPERAND (try_fin, 1)); --- 3752,3759 ---- t = tree_cons (NULL, rethrow_decl, NULL); t = build_function_call (objc_exception_throw_decl, t); t = build_stmt (COND_EXPR, ! c_common_truthvalue_conversion (input_location, ! rethrow_decl), t, NULL); SET_EXPR_LOCATION (t, cur_try_context->end_finally_locus); append_to_statement_list (t, &TREE_OPERAND (try_fin, 1)); *************** next_sjlj_build_try_catch_finally (void) *** 3759,3765 **** void objc_begin_try_stmt (location_t try_locus, tree body) { ! struct objc_try_context *c = xcalloc (1, sizeof (*c)); c->outer = cur_try_context; c->try_body = body; c->try_locus = try_locus; --- 3767,3773 ---- void objc_begin_try_stmt (location_t try_locus, tree body) { ! struct objc_try_context *c = XCNEW (struct objc_try_context); c->outer = cur_try_context; c->try_body = body; c->try_locus = try_locus; *************** build_objc_exception_stuff (void) *** 4114,4126 **** }; */ static void ! build_private_template (tree class) { ! if (!CLASS_STATIC_TEMPLATE (class)) { ! tree record = objc_build_struct (class, ! get_class_ivars (class, false), ! CLASS_SUPER_NAME (class)); /* Set the TREE_USED bit for this struct, so that stab generator can emit stabs for this struct type. */ --- 4122,4134 ---- }; */ static void ! build_private_template (tree klass) { ! if (!CLASS_STATIC_TEMPLATE (klass)) { ! tree record = objc_build_struct (klass, ! get_class_ivars (klass, false), ! CLASS_SUPER_NAME (klass)); /* Set the TREE_USED bit for this struct, so that stab generator can emit stabs for this struct type. */ *************** encode_method_prototype (tree method_dec *** 4356,4362 **** finish_encoding: obstack_1grow (&util_obstack, '\0'); ! result = get_identifier (obstack_finish (&util_obstack)); obstack_free (&util_obstack, util_firstobj); return result; } --- 4364,4370 ---- finish_encoding: obstack_1grow (&util_obstack, '\0'); ! result = get_identifier (XOBFINISH (&util_obstack, char *)); obstack_free (&util_obstack, util_firstobj); return result; } *************** objc_generate_cxx_ctor_or_dtor (bool dto *** 4489,4495 **** /* Call the ivar's default constructor or destructor. Do not call the destructor unless a corresponding constructor call has also been made (or is not needed). */ ! if (IS_AGGR_TYPE (type) && (dtor ? (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type) && (!TYPE_NEEDS_CONSTRUCTING (type) --- 4497,4503 ---- /* Call the ivar's default constructor or destructor. Do not call the destructor unless a corresponding constructor call has also been made (or is not needed). */ ! if (MAYBE_CLASS_TYPE_P (type) && (dtor ? (TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type) && (!TYPE_NEEDS_CONSTRUCTING (type) *************** objc_generate_cxx_ctor_or_dtor (bool dto *** 4500,4506 **** (build_special_member_call (build_ivar_reference (DECL_NAME (ivar)), dtor ? complete_dtor_identifier : complete_ctor_identifier, ! NULL_TREE, type, LOOKUP_NORMAL)); } } --- 4508,4514 ---- (build_special_member_call (build_ivar_reference (DECL_NAME (ivar)), dtor ? complete_dtor_identifier : complete_ctor_identifier, ! NULL_TREE, type, LOOKUP_NORMAL, tf_warning_or_error)); } } *************** objc_generate_cxx_cdtors (void) *** 4542,4548 **** { tree type = TREE_TYPE (ivar); ! if (IS_AGGR_TYPE (type)) { if (TYPE_NEEDS_CONSTRUCTING (type) && TYPE_HAS_DEFAULT_CONSTRUCTOR (type)) --- 4550,4556 ---- { tree type = TREE_TYPE (ivar); ! if (MAYBE_CLASS_TYPE_P (type)) { if (TYPE_NEEDS_CONSTRUCTING (type) && TYPE_HAS_DEFAULT_CONSTRUCTOR (type)) *************** generate_protocols (void) *** 4677,4683 **** if (refs_decl) refs_expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (ADDR_EXPR, refs_decl, 0)); else refs_expr = build_int_cst (NULL_TREE, 0); --- 4685,4692 ---- if (refs_decl) refs_expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (input_location, ! ADDR_EXPR, refs_decl, 0)); else refs_expr = build_int_cst (NULL_TREE, 0); *************** build_protocol_initializer (tree type, t *** 4714,4720 **** else { expr = convert (objc_method_proto_list_ptr, ! build_unary_op (ADDR_EXPR, instance_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 4723,4730 ---- else { expr = convert (objc_method_proto_list_ptr, ! build_unary_op (input_location, ! ADDR_EXPR, instance_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_protocol_initializer (tree type, t *** 4723,4729 **** else { expr = convert (objc_method_proto_list_ptr, ! build_unary_op (ADDR_EXPR, class_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 4733,4740 ---- else { expr = convert (objc_method_proto_list_ptr, ! build_unary_op (input_location, ! ADDR_EXPR, class_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_ivar_list_initializer (tree type, *** 5168,5174 **** ivar = tree_cons (NULL_TREE, ! add_objc_string (get_identifier (obstack_finish (&util_obstack)), meth_var_types), ivar); obstack_free (&util_obstack, util_firstobj); --- 5179,5185 ---- ivar = tree_cons (NULL_TREE, ! add_objc_string (get_identifier (XOBFINISH (&util_obstack, char *)), meth_var_types), ivar); obstack_free (&util_obstack, util_firstobj); *************** build_dispatch_table_initializer (tree t *** 5292,5298 **** elemlist = tree_cons (NULL_TREE, convert (ptr_type_node, ! build_unary_op (ADDR_EXPR, METHOD_DEFINITION (entries), 1)), elemlist); --- 5303,5309 ---- elemlist = tree_cons (NULL_TREE, convert (ptr_type_node, ! build_unary_op (input_location, ADDR_EXPR, METHOD_DEFINITION (entries), 1)), elemlist); *************** generate_protocol_list (tree i_or_p) *** 5476,5482 **** if (TREE_CODE (pval) == PROTOCOL_INTERFACE_TYPE && PROTOCOL_FORWARD_DECL (pval)) { ! e = build_unary_op (ADDR_EXPR, PROTOCOL_FORWARD_DECL (pval), 0); initlist = tree_cons (NULL_TREE, e, initlist); } } --- 5487,5494 ---- if (TREE_CODE (pval) == PROTOCOL_INTERFACE_TYPE && PROTOCOL_FORWARD_DECL (pval)) { ! e = build_unary_op (input_location, ADDR_EXPR, ! PROTOCOL_FORWARD_DECL (pval), 0); initlist = tree_cons (NULL_TREE, e, initlist); } } *************** build_category_initializer (tree type, t *** 5519,5525 **** else { expr = convert (objc_method_list_ptr, ! build_unary_op (ADDR_EXPR, instance_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } if (!class_methods) --- 5531,5538 ---- else { expr = convert (objc_method_list_ptr, ! build_unary_op (input_location, ADDR_EXPR, ! instance_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } if (!class_methods) *************** build_category_initializer (tree type, t *** 5527,5533 **** else { expr = convert (objc_method_list_ptr, ! build_unary_op (ADDR_EXPR, class_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 5540,5547 ---- else { expr = convert (objc_method_list_ptr, ! build_unary_op (input_location, ADDR_EXPR, ! class_methods, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_category_initializer (tree type, t *** 5539,5545 **** expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (ADDR_EXPR, protocol_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 5553,5560 ---- expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (input_location, ADDR_EXPR, ! protocol_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_shared_structure_initializer (tree *** 5604,5610 **** else { expr = convert (objc_ivar_list_ptr, ! build_unary_op (ADDR_EXPR, ivar_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 5619,5626 ---- else { expr = convert (objc_ivar_list_ptr, ! build_unary_op (input_location, ADDR_EXPR, ! ivar_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_shared_structure_initializer (tree *** 5614,5620 **** else { expr = convert (objc_method_list_ptr, ! build_unary_op (ADDR_EXPR, dispatch_table, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 5630,5637 ---- else { expr = convert (objc_method_list_ptr, ! build_unary_op (input_location, ADDR_EXPR, ! dispatch_table, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_shared_structure_initializer (tree *** 5641,5647 **** expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (ADDR_EXPR, protocol_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } --- 5658,5665 ---- expr = convert (build_pointer_type (build_pointer_type (objc_protocol_template)), ! build_unary_op (input_location, ADDR_EXPR, ! protocol_list, 0)); initlist = tree_cons (NULL_TREE, expr, initlist); } *************** build_shared_structure_initializer (tree *** 5658,5666 **** /* Retrieve category interface CAT_NAME (if any) associated with CLASS. */ static inline tree ! lookup_category (tree class, tree cat_name) { ! tree category = CLASS_CATEGORY_LIST (class); while (category && CLASS_SUPER_NAME (category) != cat_name) category = CLASS_CATEGORY_LIST (category); --- 5676,5684 ---- /* Retrieve category interface CAT_NAME (if any) associated with CLASS. */ static inline tree ! lookup_category (tree klass, tree cat_name) { ! tree category = CLASS_CATEGORY_LIST (klass); while (category && CLASS_SUPER_NAME (category) != cat_name) category = CLASS_CATEGORY_LIST (category); *************** generate_shared_structures (int cls_flag *** 5795,5801 **** initlist = build_shared_structure_initializer (TREE_TYPE (decl), ! build_unary_op (ADDR_EXPR, UOBJC_METACLASS_decl, 0), super_expr, name_expr, convert (integer_type_node, TYPE_SIZE_UNIT (CLASS_STATIC_TEMPLATE --- 5813,5819 ---- initlist = build_shared_structure_initializer (TREE_TYPE (decl), ! build_unary_op (input_location, ADDR_EXPR, UOBJC_METACLASS_decl, 0), super_expr, name_expr, convert (integer_type_node, TYPE_SIZE_UNIT (CLASS_STATIC_TEMPLATE *************** objc_finish_message_expr (tree receiver, *** 6274,6281 **** rtype = receiver; while (TREE_CODE (rtype) == COMPOUND_EXPR || TREE_CODE (rtype) == MODIFY_EXPR ! || TREE_CODE (rtype) == NOP_EXPR ! || TREE_CODE (rtype) == CONVERT_EXPR || TREE_CODE (rtype) == COMPONENT_REF) rtype = TREE_OPERAND (rtype, 0); self = (rtype == self_decl); --- 6292,6298 ---- rtype = receiver; while (TREE_CODE (rtype) == COMPOUND_EXPR || TREE_CODE (rtype) == MODIFY_EXPR ! || CONVERT_EXPR_P (rtype) || TREE_CODE (rtype) == COMPONENT_REF) rtype = TREE_OPERAND (rtype, 0); self = (rtype == self_decl); *************** objc_build_protocol_expr (tree protoname *** 6588,6594 **** if (!PROTOCOL_FORWARD_DECL (p)) build_protocol_reference (p); ! expr = build_unary_op (ADDR_EXPR, PROTOCOL_FORWARD_DECL (p), 0); /* ??? Ideally we'd build the reference with objc_protocol_type directly, if we have it, rather than converting it here. */ --- 6605,6612 ---- if (!PROTOCOL_FORWARD_DECL (p)) build_protocol_reference (p); ! expr = build_unary_op (input_location, ! ADDR_EXPR, PROTOCOL_FORWARD_DECL (p), 0); /* ??? Ideally we'd build the reference with objc_protocol_type directly, if we have it, rather than converting it here. */ *************** objc_build_encode_expr (tree type) *** 6699,6705 **** encode_type (type, obstack_object_size (&util_obstack), OBJC_ENCODE_INLINE_DEFS); obstack_1grow (&util_obstack, 0); /* null terminate string */ ! string = obstack_finish (&util_obstack); /* Synthesize a string that represents the encoded struct/union. */ result = my_build_string (strlen (string) + 1, string); --- 6717,6723 ---- encode_type (type, obstack_object_size (&util_obstack), OBJC_ENCODE_INLINE_DEFS); obstack_1grow (&util_obstack, 0); /* null terminate string */ ! string = XOBFINISH (&util_obstack, const char *); /* Synthesize a string that represents the encoded struct/union. */ result = my_build_string (strlen (string) + 1, string); *************** build_ivar_reference (tree id) *** 6726,6732 **** self_decl = convert (objc_instance_type, self_decl); /* cast */ } ! return objc_build_component_ref (build_indirect_ref (self_decl, "->"), id); } /* Compute a hash value for a given method SEL_NAME. */ --- 6744,6751 ---- self_decl = convert (objc_instance_type, self_decl); /* cast */ } ! return objc_build_component_ref (build_indirect_ref (input_location, ! self_decl, "->"), id); } /* Compute a hash value for a given method SEL_NAME. */ *************** add_method_to_hash_list (hash *hash_list *** 6924,6947 **** } static tree ! objc_add_method (tree class, tree method, int is_class) { tree mth; if (!(mth = lookup_method (is_class ! ? CLASS_CLS_METHODS (class) ! : CLASS_NST_METHODS (class), method))) { /* put method on list in reverse order */ if (is_class) { ! TREE_CHAIN (method) = CLASS_CLS_METHODS (class); ! CLASS_CLS_METHODS (class) = method; } else { ! TREE_CHAIN (method) = CLASS_NST_METHODS (class); ! CLASS_NST_METHODS (class) = method; } } else --- 6943,6966 ---- } static tree ! objc_add_method (tree klass, tree method, int is_class) { tree mth; if (!(mth = lookup_method (is_class ! ? CLASS_CLS_METHODS (klass) ! : CLASS_NST_METHODS (klass), method))) { /* put method on list in reverse order */ if (is_class) { ! TREE_CHAIN (method) = CLASS_CLS_METHODS (klass); ! CLASS_CLS_METHODS (klass) = method; } else { ! TREE_CHAIN (method) = CLASS_NST_METHODS (klass); ! CLASS_NST_METHODS (klass) = method; } } else *************** objc_add_method (tree class, tree method *** 6951,6958 **** and/or return types. We do not do this for @implementations, because C/C++ will do it for us (i.e., there will be duplicate function definition errors). */ ! if ((TREE_CODE (class) == CLASS_INTERFACE_TYPE ! || TREE_CODE (class) == CATEGORY_INTERFACE_TYPE) && !comp_proto_with_proto (method, mth, 1)) error ("duplicate declaration of method %<%c%s%>", is_class ? '+' : '-', --- 6970,6977 ---- and/or return types. We do not do this for @implementations, because C/C++ will do it for us (i.e., there will be duplicate function definition errors). */ ! if ((TREE_CODE (klass) == CLASS_INTERFACE_TYPE ! || TREE_CODE (klass) == CATEGORY_INTERFACE_TYPE) && !comp_proto_with_proto (method, mth, 1)) error ("duplicate declaration of method %<%c%s%>", is_class ? '+' : '-', *************** objc_add_method (tree class, tree method *** 6970,6981 **** instance methods listed in @protocol declarations to the class hash table, on the assumption that @protocols may be adopted by root classes or categories. */ ! if (TREE_CODE (class) == CATEGORY_INTERFACE_TYPE ! || TREE_CODE (class) == CATEGORY_IMPLEMENTATION_TYPE) ! class = lookup_interface (CLASS_NAME (class)); ! if (TREE_CODE (class) == PROTOCOL_INTERFACE_TYPE ! || !CLASS_SUPER_NAME (class)) add_method_to_hash_list (cls_method_hash_list, method); } --- 6989,7000 ---- instance methods listed in @protocol declarations to the class hash table, on the assumption that @protocols may be adopted by root classes or categories. */ ! if (TREE_CODE (klass) == CATEGORY_INTERFACE_TYPE ! || TREE_CODE (klass) == CATEGORY_IMPLEMENTATION_TYPE) ! klass = lookup_interface (CLASS_NAME (klass)); ! if (TREE_CODE (klass) == PROTOCOL_INTERFACE_TYPE ! || !CLASS_SUPER_NAME (klass)) add_method_to_hash_list (cls_method_hash_list, method); } *************** add_class (tree class_name, tree name) *** 7008,7038 **** } static void ! add_category (tree class, tree category) { /* Put categories on list in reverse order. */ ! tree cat = lookup_category (class, CLASS_SUPER_NAME (category)); if (cat) { warning (0, "duplicate interface declaration for category %<%s(%s)%>", ! IDENTIFIER_POINTER (CLASS_NAME (class)), IDENTIFIER_POINTER (CLASS_SUPER_NAME (category))); } else { ! CLASS_CATEGORY_LIST (category) = CLASS_CATEGORY_LIST (class); ! CLASS_CATEGORY_LIST (class) = category; } } /* Called after parsing each instance variable declaration. Necessary to preserve typedefs and implement public/private... ! PUBLIC is 1 for public, 0 for protected, and 2 for private. */ static tree ! add_instance_variable (tree class, int public, tree field_decl) { tree field_type = TREE_TYPE (field_decl); const char *ivar_name = DECL_NAME (field_decl) --- 7027,7057 ---- } static void ! add_category (tree klass, tree category) { /* Put categories on list in reverse order. */ ! tree cat = lookup_category (klass, CLASS_SUPER_NAME (category)); if (cat) { warning (0, "duplicate interface declaration for category %<%s(%s)%>", ! IDENTIFIER_POINTER (CLASS_NAME (klass)), IDENTIFIER_POINTER (CLASS_SUPER_NAME (category))); } else { ! CLASS_CATEGORY_LIST (category) = CLASS_CATEGORY_LIST (klass); ! CLASS_CATEGORY_LIST (klass) = category; } } /* Called after parsing each instance variable declaration. Necessary to preserve typedefs and implement public/private... ! VISIBILITY is 1 for public, 0 for protected, and 2 for private. */ static tree ! add_instance_variable (tree klass, int visibility, tree field_decl) { tree field_type = TREE_TYPE (field_decl); const char *ivar_name = DECL_NAME (field_decl) *************** add_instance_variable (tree class, int p *** 7045,7051 **** error ("illegal reference type specified for instance variable %qs", ivar_name); /* Return class as is without adding this ivar. */ ! return class; } #endif --- 7064,7070 ---- error ("illegal reference type specified for instance variable %qs", ivar_name); /* Return class as is without adding this ivar. */ ! return klass; } #endif *************** add_instance_variable (tree class, int p *** 7055,7061 **** { error ("instance variable %qs has unknown size", ivar_name); /* Return class as is without adding this ivar. */ ! return class; } #ifdef OBJCPLUS --- 7074,7080 ---- { error ("instance variable %qs has unknown size", ivar_name); /* Return class as is without adding this ivar. */ ! return klass; } #ifdef OBJCPLUS *************** add_instance_variable (tree class, int p *** 7063,7069 **** need to either (1) warn the user about it or (2) generate suitable constructor/destructor call from '- .cxx_construct' or '- .cxx_destruct' methods (if '-fobjc-call-cxx-cdtors' was specified). */ ! if (IS_AGGR_TYPE (field_type) && (TYPE_NEEDS_CONSTRUCTING (field_type) || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type) || TYPE_POLYMORPHIC_P (field_type))) --- 7082,7088 ---- need to either (1) warn the user about it or (2) generate suitable constructor/destructor call from '- .cxx_construct' or '- .cxx_destruct' methods (if '-fobjc-call-cxx-cdtors' was specified). */ ! if (MAYBE_CLASS_TYPE_P (field_type) && (TYPE_NEEDS_CONSTRUCTING (field_type) || TYPE_HAS_NONTRIVIAL_DESTRUCTOR (field_type) || TYPE_POLYMORPHIC_P (field_type))) *************** add_instance_variable (tree class, int p *** 7101,7107 **** "for instance variable %qs", type_name, ivar_name); /* Return class as is without adding this ivar. */ ! return class; } /* User-defined constructors and destructors are not known to Obj-C --- 7120,7126 ---- "for instance variable %qs", type_name, ivar_name); /* Return class as is without adding this ivar. */ ! return klass; } /* User-defined constructors and destructors are not known to Obj-C *************** add_instance_variable (tree class, int p *** 7122,7128 **** #endif /* Overload the public attribute, it is not used for FIELD_DECLs. */ ! switch (public) { case 0: TREE_PUBLIC (field_decl) = 0; --- 7141,7147 ---- #endif /* Overload the public attribute, it is not used for FIELD_DECLs. */ ! switch (visibility) { case 0: TREE_PUBLIC (field_decl) = 0; *************** add_instance_variable (tree class, int p *** 7144,7152 **** } ! CLASS_RAW_IVARS (class) = chainon (CLASS_RAW_IVARS (class), field_decl); ! return class; } static tree --- 7163,7171 ---- } ! CLASS_RAW_IVARS (klass) = chainon (CLASS_RAW_IVARS (klass), field_decl); ! return klass; } static tree *************** objc_is_public (tree expr, tree identifi *** 7189,7204 **** { if (TYPE_HAS_OBJC_INFO (basetype) && TYPE_OBJC_INTERFACE (basetype)) { ! tree class = lookup_interface (OBJC_TYPE_NAME (basetype)); ! if (!class) { error ("cannot find interface declaration for %qs", IDENTIFIER_POINTER (OBJC_TYPE_NAME (basetype))); return 0; } ! if ((decl = is_ivar (get_class_ivars (class, true), identifier))) { if (TREE_PUBLIC (decl)) return 1; --- 7208,7223 ---- { if (TYPE_HAS_OBJC_INFO (basetype) && TYPE_OBJC_INTERFACE (basetype)) { ! tree klass = lookup_interface (OBJC_TYPE_NAME (basetype)); ! if (!klass) { error ("cannot find interface declaration for %qs", IDENTIFIER_POINTER (OBJC_TYPE_NAME (basetype))); return 0; } ! if ((decl = is_ivar (get_class_ivars (klass, true), identifier))) { if (TREE_PUBLIC (decl)) return 1; *************** objc_is_public (tree expr, tree identifi *** 7219,7231 **** if (basetype == curtype || DERIVED_FROM_P (basetype, curtype)) { ! int private = is_private (decl); ! if (private) error ("instance variable %qs is declared private", IDENTIFIER_POINTER (DECL_NAME (decl))); ! return !private; } } --- 7238,7250 ---- if (basetype == curtype || DERIVED_FROM_P (basetype, curtype)) { ! int priv = is_private (decl); ! if (priv) error ("instance variable %qs is declared private", IDENTIFIER_POINTER (DECL_NAME (decl))); ! return !priv; } } *************** check_methods (tree chain, tree list, in *** 7285,7305 **** return first; } ! /* Check if CLASS, or its superclasses, explicitly conforms to PROTOCOL. */ static int ! conforms_to_protocol (tree class, tree protocol) { if (TREE_CODE (protocol) == PROTOCOL_INTERFACE_TYPE) { ! tree p = CLASS_PROTOCOL_LIST (class); while (p && TREE_VALUE (p) != protocol) p = TREE_CHAIN (p); if (!p) { ! tree super = (CLASS_SUPER_NAME (class) ! ? lookup_interface (CLASS_SUPER_NAME (class)) : NULL_TREE); int tmp = super ? conforms_to_protocol (super, protocol) : 0; if (!tmp) --- 7304,7324 ---- return first; } ! /* Check if KLASS, or its superclasses, explicitly conforms to PROTOCOL. */ static int ! conforms_to_protocol (tree klass, tree protocol) { if (TREE_CODE (protocol) == PROTOCOL_INTERFACE_TYPE) { ! tree p = CLASS_PROTOCOL_LIST (klass); while (p && TREE_VALUE (p) != protocol) p = TREE_CHAIN (p); if (!p) { ! tree super = (CLASS_SUPER_NAME (klass) ! ? lookup_interface (CLASS_SUPER_NAME (klass)) : NULL_TREE); int tmp = super ? conforms_to_protocol (super, protocol) : 0; if (!tmp) *************** static tree *** 7453,7459 **** start_class (enum tree_code code, tree class_name, tree super_name, tree protocol_list) { ! tree class, decl; #ifdef OBJCPLUS if (current_namespace != global_namespace) { --- 7472,7478 ---- start_class (enum tree_code code, tree class_name, tree super_name, tree protocol_list) { ! tree klass, decl; #ifdef OBJCPLUS if (current_namespace != global_namespace) { *************** start_class (enum tree_code code, tree c *** 7469,7476 **** objc_implementation_context = NULL_TREE; } ! class = make_node (code); ! TYPE_LANG_SLOT_1 (class) = make_tree_vec (CLASS_LANG_SLOT_ELTS); /* Check for existence of the super class, if one was specified. Note that we must have seen an @interface, not just a @class. If we --- 7488,7495 ---- objc_implementation_context = NULL_TREE; } ! klass = make_node (code); ! TYPE_LANG_SLOT_1 (klass) = make_tree_vec (CLASS_LANG_SLOT_ELTS); /* Check for existence of the super class, if one was specified. Note that we must have seen an @interface, not just a @class. If we *************** start_class (enum tree_code code, tree c *** 7491,7499 **** super_name = super; } ! CLASS_NAME (class) = class_name; ! CLASS_SUPER_NAME (class) = super_name; ! CLASS_CLS_METHODS (class) = NULL_TREE; if (! objc_is_class_name (class_name) && (decl = lookup_name (class_name))) --- 7510,7518 ---- super_name = super; } ! CLASS_NAME (klass) = class_name; ! CLASS_SUPER_NAME (klass) = super_name; ! CLASS_CLS_METHODS (klass) = NULL_TREE; if (! objc_is_class_name (class_name) && (decl = lookup_name (class_name))) *************** start_class (enum tree_code code, tree c *** 7523,7529 **** /* Reset for multiple classes per file. */ method_slot = 0; ! objc_implementation_context = class; /* Lookup the interface for this implementation. */ --- 7542,7548 ---- /* Reset for multiple classes per file. */ method_slot = 0; ! objc_implementation_context = klass; /* Lookup the interface for this implementation. */ *************** start_class (enum tree_code code, tree c *** 7566,7575 **** #endif IDENTIFIER_POINTER (class_name)); else ! add_class (class, class_name); if (protocol_list) ! CLASS_PROTOCOL_LIST (class) = lookup_and_install_protocols (protocol_list); } --- 7585,7594 ---- #endif IDENTIFIER_POINTER (class_name)); else ! add_class (klass, class_name); if (protocol_list) ! CLASS_PROTOCOL_LIST (klass) = lookup_and_install_protocols (protocol_list); } *************** start_class (enum tree_code code, tree c *** 7588,7597 **** exit (FATAL_EXIT_CODE); } else ! add_category (class_category_is_assoc_with, class); if (protocol_list) ! CLASS_PROTOCOL_LIST (class) = lookup_and_install_protocols (protocol_list); } --- 7607,7616 ---- exit (FATAL_EXIT_CODE); } else ! add_category (class_category_is_assoc_with, klass); if (protocol_list) ! CLASS_PROTOCOL_LIST (klass) = lookup_and_install_protocols (protocol_list); } *************** start_class (enum tree_code code, tree c *** 7600,7606 **** /* Reset for multiple classes per file. */ method_slot = 0; ! objc_implementation_context = class; /* For a category, class_name is really the name of the class that the following set of methods will be associated with. We must --- 7619,7625 ---- /* Reset for multiple classes per file. */ method_slot = 0; ! objc_implementation_context = klass; /* For a category, class_name is really the name of the class that the following set of methods will be associated with. We must *************** start_class (enum tree_code code, tree c *** 7613,7633 **** exit (FATAL_EXIT_CODE); } } ! return class; } static tree ! continue_class (tree class) { ! if (TREE_CODE (class) == CLASS_IMPLEMENTATION_TYPE ! || TREE_CODE (class) == CATEGORY_IMPLEMENTATION_TYPE) { struct imp_entry *imp_entry; /* Check consistency of the instance variables. */ ! if (CLASS_RAW_IVARS (class)) ! check_ivars (implementation_template, class); /* code generation */ --- 7632,7652 ---- exit (FATAL_EXIT_CODE); } } ! return klass; } static tree ! continue_class (tree klass) { ! if (TREE_CODE (klass) == CLASS_IMPLEMENTATION_TYPE ! || TREE_CODE (klass) == CATEGORY_IMPLEMENTATION_TYPE) { struct imp_entry *imp_entry; /* Check consistency of the instance variables. */ ! if (CLASS_RAW_IVARS (klass)) ! check_ivars (implementation_template, klass); /* code generation */ *************** continue_class (tree class) *** 7642,7648 **** imp_entry = (struct imp_entry *) ggc_alloc (sizeof (struct imp_entry)); imp_entry->next = imp_list; ! imp_entry->imp_context = class; imp_entry->imp_template = implementation_template; synth_forward_declarations (); --- 7661,7667 ---- imp_entry = (struct imp_entry *) ggc_alloc (sizeof (struct imp_entry)); imp_entry->next = imp_list; ! imp_entry->imp_context = klass; imp_entry->imp_template = implementation_template; synth_forward_declarations (); *************** continue_class (tree class) *** 7652,7658 **** /* Append to front and increment count. */ imp_list = imp_entry; ! if (TREE_CODE (class) == CLASS_IMPLEMENTATION_TYPE) imp_count++; else cat_count++; --- 7671,7677 ---- /* Append to front and increment count. */ imp_list = imp_entry; ! if (TREE_CODE (klass) == CLASS_IMPLEMENTATION_TYPE) imp_count++; else cat_count++; *************** continue_class (tree class) *** 7664,7676 **** return get_class_ivars (implementation_template, true); } ! else if (TREE_CODE (class) == CLASS_INTERFACE_TYPE) { #ifdef OBJCPLUS push_lang_context (lang_name_c); #endif /* OBJCPLUS */ ! build_private_template (class); #ifdef OBJCPLUS pop_lang_context (); --- 7683,7695 ---- return get_class_ivars (implementation_template, true); } ! else if (TREE_CODE (klass) == CLASS_INTERFACE_TYPE) { #ifdef OBJCPLUS push_lang_context (lang_name_c); #endif /* OBJCPLUS */ ! build_private_template (klass); #ifdef OBJCPLUS pop_lang_context (); *************** continue_class (tree class) *** 7686,7694 **** /* This is called once we see the "@end" in an interface/implementation. */ static void ! finish_class (tree class) { ! if (TREE_CODE (class) == CLASS_IMPLEMENTATION_TYPE) { /* All code generation is done in finish_objc. */ --- 7705,7713 ---- /* This is called once we see the "@end" in an interface/implementation. */ static void ! finish_class (tree klass) { ! if (TREE_CODE (klass) == CLASS_IMPLEMENTATION_TYPE) { /* All code generation is done in finish_objc. */ *************** finish_class (tree class) *** 7707,7715 **** } } ! else if (TREE_CODE (class) == CATEGORY_IMPLEMENTATION_TYPE) { ! tree category = lookup_category (implementation_template, CLASS_SUPER_NAME (class)); if (category) { --- 7726,7734 ---- } } ! else if (TREE_CODE (klass) == CATEGORY_IMPLEMENTATION_TYPE) { ! tree category = lookup_category (implementation_template, CLASS_SUPER_NAME (klass)); if (category) { *************** encode_type (tree type, int curtype, int *** 8082,8087 **** --- 8101,8109 ---- enum tree_code code = TREE_CODE (type); char c; + if (type == error_mark_node) + return; + if (TYPE_READONLY (type)) obstack_1grow (&util_obstack, 'r'); *************** static void *** 8238,8243 **** --- 8260,8272 ---- objc_push_parm (tree parm) { bool relayout_needed = false; + + if (TREE_TYPE (parm) == error_mark_node) + { + objc_parmlist = chainon (objc_parmlist, parm); + return; + } + /* Decay arrays and functions into pointers. */ if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE) { *************** get_super_receiver (void) *** 8696,8702 **** /* Set receiver to self. */ super_expr = objc_build_component_ref (UOBJC_SUPER_decl, self_id); ! super_expr = build_modify_expr (super_expr, NOP_EXPR, self_decl); super_expr_list = super_expr; /* Set class to begin searching. */ --- 8725,8732 ---- /* Set receiver to self. */ super_expr = objc_build_component_ref (UOBJC_SUPER_decl, self_id); ! super_expr = build_modify_expr (input_location, ! super_expr, NOP_EXPR, self_decl); super_expr_list = super_expr; /* Set class to begin searching. */ *************** get_super_receiver (void) *** 8708,8714 **** /* [_cls, __cls]Super are "pre-built" in synth_forward_declarations. */ ! super_expr = build_modify_expr (super_expr, NOP_EXPR, ((TREE_CODE (objc_method_context) == INSTANCE_METHOD_DECL) ? ucls_super_ref --- 8738,8744 ---- /* [_cls, __cls]Super are "pre-built" in synth_forward_declarations. */ ! super_expr = build_modify_expr (input_location, super_expr, NOP_EXPR, ((TREE_CODE (objc_method_context) == INSTANCE_METHOD_DECL) ? ucls_super_ref *************** get_super_receiver (void) *** 8739,8746 **** "isa" is the first ivar in a class (which it must be). */ super_class = build_indirect_ref ! (build_c_cast (build_pointer_type (objc_class_type), ! super_class), "unary *"); } else { --- 8769,8777 ---- "isa" is the first ivar in a class (which it must be). */ super_class = build_indirect_ref ! (input_location, ! build_c_cast (build_pointer_type (objc_class_type), ! super_class), "unary *"); } else { *************** get_super_receiver (void) *** 8759,8772 **** } super_expr ! = build_modify_expr (super_expr, NOP_EXPR, build_c_cast (TREE_TYPE (super_expr), super_class)); } super_expr_list = build_compound_expr (super_expr_list, super_expr); ! super_expr = build_unary_op (ADDR_EXPR, UOBJC_SUPER_decl, 0); super_expr_list = build_compound_expr (super_expr_list, super_expr); return super_expr_list; --- 8790,8804 ---- } super_expr ! = build_modify_expr (input_location, super_expr, NOP_EXPR, build_c_cast (TREE_TYPE (super_expr), super_class)); } super_expr_list = build_compound_expr (super_expr_list, super_expr); ! super_expr = build_unary_op (input_location, ! ADDR_EXPR, UOBJC_SUPER_decl, 0); super_expr_list = build_compound_expr (super_expr_list, super_expr); return super_expr_list; *************** objc_finish_method_definition (tree fnde *** 8797,8803 **** /* We cannot validly inline ObjC methods, at least not without a language extension to declare that a method need not be dynamically dispatched, so suppress all thoughts of doing so. */ - DECL_INLINE (fndecl) = 0; DECL_UNINLINABLE (fndecl) = 1; #ifndef OBJCPLUS --- 8829,8834 ---- *************** objc_rewrite_function_call (tree functio *** 9479,9485 **** of its cousins). */ enum gimplify_status ! objc_gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p) { enum gimplify_status r0, r1; if (TREE_CODE (*expr_p) == OBJ_TYPE_REF --- 9510,9516 ---- of its cousins). */ enum gimplify_status ! objc_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) { enum gimplify_status r0, r1; if (TREE_CODE (*expr_p) == OBJ_TYPE_REF *************** objc_gimplify_expr (tree *expr_p, tree * *** 9508,9532 **** #endif } - /* Given a CALL expression, find the function being called. The ObjC - version looks for the OBJ_TYPE_REF_EXPR which is used for objc_msgSend. */ - - tree - objc_get_callee_fndecl (const_tree call_expr) - { - tree addr = CALL_EXPR_FN (call_expr); - if (TREE_CODE (addr) != OBJ_TYPE_REF) - return 0; - - addr = OBJ_TYPE_REF_EXPR (addr); - - /* If the address is just `&f' for some function `f', then we know - that `f' is being called. */ - if (TREE_CODE (addr) == ADDR_EXPR - && TREE_CODE (TREE_OPERAND (addr, 0)) == FUNCTION_DECL) - return TREE_OPERAND (addr, 0); - - return 0; - } - #include "gt-objc-objc-act.h" --- 9539,9542 ---- diff -Nrcpad gcc-4.3.3/gcc/objc/objc-act.h gcc-4.4.0/gcc/objc/objc-act.h *** gcc-4.3.3/gcc/objc/objc-act.h Thu Aug 2 10:37:36 2007 --- gcc-4.4.0/gcc/objc/objc-act.h Fri Feb 20 15:20:38 2009 *************** *** 1,5 **** /* Declarations for objc-act.c. ! Copyright (C) 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- /* Declarations for objc-act.c. ! Copyright (C) 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. This file is part of GCC. *************** along with GCC; see the file COPYING3. *** 23,38 **** #define GCC_OBJC_ACT_H /* For enum gimplify_status */ ! #include "tree-gimple.h" /*** Language hooks ***/ bool objc_init (void); const char *objc_printable_name (tree, int); - tree objc_get_callee_fndecl (const_tree); void objc_finish_file (void); tree objc_fold_obj_type_ref (tree, tree); ! enum gimplify_status objc_gimplify_expr (tree *, tree *, tree *); /* NB: The remaining public functions are prototyped in c-common.h, for the benefit of stub-objc.c and objc-act.c. */ --- 23,37 ---- #define GCC_OBJC_ACT_H /* For enum gimplify_status */ ! #include "gimple.h" /*** Language hooks ***/ bool objc_init (void); const char *objc_printable_name (tree, int); void objc_finish_file (void); tree objc_fold_obj_type_ref (tree, tree); ! enum gimplify_status objc_gimplify_expr (tree *, gimple_seq *, gimple_seq *); /* NB: The remaining public functions are prototyped in c-common.h, for the benefit of stub-objc.c and objc-act.c. */ *************** enum gimplify_status objc_gimplify_expr *** 122,145 **** #define OBJC_TYPE_NAME(TYPE) TYPE_NAME(TYPE) #define OBJC_SET_TYPE_NAME(TYPE, NAME) (TYPE_NAME (TYPE) = NAME) - /* Define the Objective-C or Objective-C++ language-specific tree codes. */ - - #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM, - enum objc_tree_code { - #if defined (GCC_CP_TREE_H) - LAST_BASE_TREE_CODE = LAST_CPLUS_TREE_CODE, - #else - #if defined (GCC_C_TREE_H) - LAST_BASE_TREE_CODE = LAST_C_TREE_CODE, - #else - #error You must include or before - #endif - #endif - #include "objc-tree.def" - LAST_OBJC_TREE_CODE - }; - #undef DEFTREECODE - /* Hash tables to manage the global pool of method prototypes. */ typedef struct hashed_entry *hash; --- 121,126 ---- diff -Nrcpad gcc-4.3.3/gcc/objc/objc-lang.c gcc-4.4.0/gcc/objc/objc-lang.c *** gcc-4.3.3/gcc/objc/objc-lang.c Thu Aug 2 10:37:36 2007 --- gcc-4.4.0/gcc/objc/objc-lang.c Fri Feb 20 15:20:38 2009 *************** *** 1,5 **** /* Language-dependent hooks for Objective-C. ! Copyright 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. Contributed by Ziemowit Laski --- 1,5 ---- /* Language-dependent hooks for Objective-C. ! Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc. Contributed by Ziemowit Laski *************** static void objc_init_ts (void); *** 48,103 **** #define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name #undef LANG_HOOKS_GIMPLIFY_EXPR #define LANG_HOOKS_GIMPLIFY_EXPR objc_gimplify_expr - #undef LANG_HOOKS_GET_CALLEE_FNDECL - #define LANG_HOOKS_GET_CALLEE_FNDECL objc_get_callee_fndecl #undef LANG_HOOKS_INIT_TS #define LANG_HOOKS_INIT_TS objc_init_ts /* Each front end provides its own lang hook initializer. */ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; - /* Table indexed by tree code giving a string containing a character - classifying the tree code. */ - - #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, - - const enum tree_code_class tree_code_type[] = { - #include "tree.def" - tcc_exceptional, - #include "c-common.def" - tcc_exceptional, - #include "objc-tree.def" - }; - #undef DEFTREECODE - - /* Table indexed by tree code giving number of expression - operands beyond the fixed part of the node structure. - Not used for types or decls. */ - - #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH, - - const unsigned char tree_code_length[] = { - #include "tree.def" - 0, - #include "c-common.def" - 0, - #include "objc-tree.def" - }; - #undef DEFTREECODE - - /* Names of tree components. - Used for printing out the tree and error messages. */ - #define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME, - - const char * const tree_code_name[] = { - #include "tree.def" - "@@dummy", - #include "c-common.def" - "@@dummy", - #include "objc-tree.def" - }; - #undef DEFTREECODE - /* Lang hook routines common to C and ObjC appear in c-objc-common.c; there should be very few (if any) routines below. */ --- 48,59 ---- diff -Nrcpad gcc-4.3.3/gcc/objcp/ChangeLog gcc-4.4.0/gcc/objcp/ChangeLog *** gcc-4.3.3/gcc/objcp/ChangeLog Sat Jan 24 10:15:32 2009 --- gcc-4.4.0/gcc/objcp/ChangeLog Tue Apr 21 08:44:22 2009 *************** *** 1,18 **** ! 2009-01-24 Release Manager ! * GCC 4.3.3 released. ! 2008-08-27 Release Manager ! * GCC 4.3.2 released. ! 2008-06-06 Release Manager ! * GCC 4.3.1 released. ! 2008-03-05 Release Manager ! * GCC 4.3.0 released. 2008-02-07 Andreas Tobler Douglas Gregor --- 1,46 ---- ! 2009-04-21 Release Manager ! * GCC 4.4.0 released. ! 2008-12-05 Sebastian Pop ! PR bootstrap/38262 ! * Make-lang.in (cc1objplus-dummy, cc1objplus): Add BACKENDLIBS, ! remove GMPLIBS. ! 2008-09-17 Andrew Pinski ! PR objc/37460 ! * objcp-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define. ! 2008-04-03 Tom Tromey ! * Make-lang.in (obj-c++_OBJS): New variable. ! ! 2008-03-27 Tom Tromey ! ! * Make-lang.in: Revert automatic dependency patch. ! ! 2008-03-25 Tom Tromey ! ! * Make-lang.in (obj-c++_OBJS): Rename from objcp_OBJS. ! (objcp/objcp-act.o): Restore target. ! ! 2008-03-25 Tom Tromey ! ! * Make-lang.in (objcp_OBJS): New variable. ! (cc1objplus-checksum.o, objcp/objcp-lang.o, objcp/objcp-decl.o, ! objcp/objcp-act.o): Remove. ! ! 2008-03-07 Paolo Bonzini ! ! Revert: ! ! 2008-02-07 Andreas Tobler ! Douglas Gregor ! ! PR bootstrap/35115 ! * objcp-decl.c (objcp_comptypes): Call cp_comptypes, not comptypes. 2008-02-07 Andreas Tobler Douglas Gregor *************** *** 37,43 **** * Make-lang.in: Add dummy lang.install-pdf target. ! 2006-10-23 Rafael Avila de Espindola * objcp-decl.h (objcp_builtin_function): Remove. --- 65,71 ---- * Make-lang.in: Add dummy lang.install-pdf target. ! 2006-10-23 Rafael Ávila de Espíndola * objcp-decl.h (objcp_builtin_function): Remove. *************** *** 69,75 **** * Make-lang.in (objcp/objcp-decl.o): Add dependency on $(TARGET_H). ! 2006-02-20 Rafael vila de Espndola * Make-lang.in (OBJ-C++): Remove (.PHONY): Remove Obj-c++ and obj-C++. Add obj-c++ --- 97,103 ---- * Make-lang.in (objcp/objcp-decl.o): Add dependency on $(TARGET_H). ! 2006-02-20 Rafael Ávila de Espíndola * Make-lang.in (OBJ-C++): Remove (.PHONY): Remove Obj-c++ and obj-C++. Add obj-c++ *************** *** 78,88 **** * Make-lang.in (objcp/objcp-decl.o): Add depends on $(EXPR_H). ! 2005-12-07 Rafael vila de Espndola * Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove. ! 2005-12-07 Rafael vila de Espndola * Make-lang.in: Remove all dependencies on s-gtype. --- 106,116 ---- * Make-lang.in (objcp/objcp-decl.o): Add depends on $(EXPR_H). ! 2005-12-07 Rafael Ávila de Espíndola * Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove. ! 2005-12-07 Rafael Ávila de Espíndola * Make-lang.in: Remove all dependencies on s-gtype. diff -Nrcpad gcc-4.3.3/gcc/objcp/Make-lang.in gcc-4.4.0/gcc/objcp/Make-lang.in *** gcc-4.3.3/gcc/objcp/Make-lang.in Wed Feb 6 21:51:24 2008 --- gcc-4.4.0/gcc/objcp/Make-lang.in Fri Dec 5 08:01:58 2008 *************** *** 1,5 **** # Top level -*- makefile -*- fragment for GNU Objective-C++ ! # Copyright (C) 2005, 2007 Free Software Foundation, Inc. # Contributed by Ziemowit Laski #This file is part of GCC. --- 1,5 ---- # Top level -*- makefile -*- fragment for GNU Objective-C++ ! # Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc. # Contributed by Ziemowit Laski #This file is part of GCC. *************** objcp-warn = $(STRICT_WARN) -DOBJCPLUS - *** 51,60 **** OBJCXX_OBJS = objcp/objcp-act.o objcp/objcp-lang.o objcp/objcp-decl.o \ $(CXX_AND_OBJCXX_OBJS) cc1objplus-dummy$(exeext): $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) \ $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ ! $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS) cc1objplus-checksum.c : cc1objplus-dummy$(exeext) build/genchecksum$(build_exeext) build/genchecksum$(build_exeext) cc1objplus-dummy$(exeext) > $@ --- 51,62 ---- OBJCXX_OBJS = objcp/objcp-act.o objcp/objcp-lang.o objcp/objcp-decl.o \ $(CXX_AND_OBJCXX_OBJS) + obj-c++_OBJS = $(OBJCXX_OBJS) cc1objplus-checksum.o + cc1objplus-dummy$(exeext): $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) \ $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ ! $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS) cc1objplus-checksum.c : cc1objplus-dummy$(exeext) build/genchecksum$(build_exeext) build/genchecksum$(build_exeext) cc1objplus-dummy$(exeext) > $@ *************** cc1objplus-checksum.o : cc1objplus-check *** 63,81 **** cc1objplus$(exeext): $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ ! $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS) # Objective C++ language specific files. objcp/objcp-lang.o : objcp/objcp-lang.c \ $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h objc/objc-act.h \ $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objcp.h \ ! $(DIAGNOSTIC_H) cp/cp-objcp-common.h $(TREE_GIMPLE_H) objcp/objcp-decl.o : objcp/objcp-decl.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \ toplev.h $(GGC_H) $(C_PRAGMA_H) input.h $(FLAGS_H) output.h \ ! objc/objc-act.h objcp/objcp-decl.h $(TREE_GIMPLE_H) $(EXPR_H) $(TARGET_H) # The following must be an explicit rule; please keep in sync with the implicit # one in Makefile.in. --- 65,83 ---- cc1objplus$(exeext): $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBDEPS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ ! $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS) # Objective C++ language specific files. objcp/objcp-lang.o : objcp/objcp-lang.c \ $(CXX_TREE_H) $(TM_H) toplev.h debug.h langhooks.h objc/objc-act.h \ $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objcp.h \ ! $(DIAGNOSTIC_H) cp/cp-objcp-common.h $(GIMPLE_H) objcp/objcp-decl.o : objcp/objcp-decl.c \ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \ toplev.h $(GGC_H) $(C_PRAGMA_H) input.h $(FLAGS_H) output.h \ ! objc/objc-act.h objcp/objcp-decl.h $(GIMPLE_H) $(EXPR_H) $(TARGET_H) # The following must be an explicit rule; please keep in sync with the implicit # one in Makefile.in. *************** objcp/objcp-act.o : objc/objc-act.c \ *** 84,90 **** $(EXPR_H) $(TARGET_H) $(CXX_TREE_H) $(DIAGNOSTIC_H) toplev.h $(FLAGS_H) \ objc/objc-act.h input.h $(FUNCTION_H) output.h debug.h langhooks.h \ objcp/objcp-decl.h $(LANGHOOKS_DEF_H) $(HASHTAB_H) gt-objc-objc-act.h \ ! $(TREE_GIMPLE_H) $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) po-generated: --- 86,92 ---- $(EXPR_H) $(TARGET_H) $(CXX_TREE_H) $(DIAGNOSTIC_H) toplev.h $(FLAGS_H) \ objc/objc-act.h input.h $(FUNCTION_H) output.h debug.h langhooks.h \ objcp/objcp-decl.h $(LANGHOOKS_DEF_H) $(HASHTAB_H) gt-objc-objc-act.h \ ! $(GIMPLE_H) $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) po-generated: diff -Nrcpad gcc-4.3.3/gcc/objcp/objcp-decl.c gcc-4.4.0/gcc/objcp/objcp-decl.c *** gcc-4.3.3/gcc/objcp/objcp-decl.c Thu Feb 7 19:03:40 2008 --- gcc-4.4.0/gcc/objcp/objcp-decl.c Fri Mar 7 11:47:20 2008 *************** objcp_xref_tag (enum tree_code code ATTR *** 95,101 **** int objcp_comptypes (tree type1, tree type2) { ! return cp_comptypes (type1, type2, COMPARE_STRICT); } tree --- 95,101 ---- int objcp_comptypes (tree type1, tree type2) { ! return comptypes (type1, type2, COMPARE_STRICT); } tree diff -Nrcpad gcc-4.3.3/gcc/objcp/objcp-lang.c gcc-4.4.0/gcc/objcp/objcp-lang.c *** gcc-4.3.3/gcc/objcp/objcp-lang.c Thu Aug 2 10:38:44 2007 --- gcc-4.4.0/gcc/objcp/objcp-lang.c Fri Feb 20 15:20:38 2009 *************** *** 1,5 **** /* Language-dependent hooks for Objective-C++. ! Copyright 2005, 2007 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. --- 1,5 ---- /* Language-dependent hooks for Objective-C++. ! Copyright 2005, 2007, 2008 Free Software Foundation, Inc. Contributed by Ziemowit Laski This file is part of GCC. *************** static void objcxx_init_ts (void); *** 48,108 **** #define LANG_HOOKS_DECL_PRINTABLE_NAME objc_printable_name #undef LANG_HOOKS_GIMPLIFY_EXPR #define LANG_HOOKS_GIMPLIFY_EXPR objc_gimplify_expr - #undef LANG_HOOKS_GET_CALLEE_FNDECL - #define LANG_HOOKS_GET_CALLEE_FNDECL objc_get_callee_fndecl #undef LANG_HOOKS_INIT_TS #define LANG_HOOKS_INIT_TS objcxx_init_ts /* Each front end provides its own lang hook initializer. */ const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; - /* Tree code classes. */ - - #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) TYPE, - - const enum tree_code_class tree_code_type[] = { - #include "tree.def" - tcc_exceptional, - #include "c-common.def" - tcc_exceptional, - #include "cp-tree.def" - tcc_exceptional, - #include "objc-tree.def" - }; - #undef DEFTREECODE - - /* Table indexed by tree code giving number of expression - operands beyond the fixed part of the node structure. - Not used for types or decls. */ - - #define DEFTREECODE(SYM, NAME, TYPE, LENGTH) LENGTH, - - const unsigned char tree_code_length[] = { - #include "tree.def" - 0, - #include "c-common.def" - 0, - #include "cp-tree.def" - 0, - #include "objc-tree.def" - }; - #undef DEFTREECODE - - /* Names of tree components. - Used for printing out the tree and error messages. */ - #define DEFTREECODE(SYM, NAME, TYPE, LEN) NAME, - - const char *const tree_code_name[] = { - #include "tree.def" - "@@dummy", - #include "c-common.def" - "@@dummy", - #include "cp-tree.def" - "@@dummy", - #include "objc-tree.def" - }; - #undef DEFTREECODE - /* Lang hook routines common to C++ and ObjC++ appear in cp/cp-objcp-common.c; there should be very few (if any) routines below. */ --- 48,59 ---- diff -Nrcpad gcc-4.3.3/libobjc/ChangeLog gcc-4.4.0/libobjc/ChangeLog *** gcc-4.3.3/libobjc/ChangeLog Sat Jan 24 10:16:33 2009 --- gcc-4.4.0/libobjc/ChangeLog Tue Apr 21 08:45:45 2009 *************** *** 1,18 **** ! 2009-01-24 Release Manager ! * GCC 4.3.3 released. ! 2008-08-27 Release Manager ! * GCC 4.3.2 released. ! 2008-06-06 Release Manager ! * GCC 4.3.1 released. ! 2008-03-05 Release Manager ! * GCC 4.3.0 released. 2008-01-24 David Edelsohn --- 1,165 ---- ! 2009-04-21 Release Manager ! * GCC 4.4.0 released. ! 2009-04-09 Nick Clifton ! * sendmsg.c: Change copyright header to refer to version 3 of ! the GNU General Public License with version 3.1 of the GCC ! Runtime Library Exception and to point readers at the COPYING3 ! and COPYING3.RUNTIME files and the FSF's license web page. ! * NXConstStr.m: Likewise. ! * Object.m: Likewise. ! * Protocol.m: Likewise. ! * archive.c: Likewise. ! * class.c: Likewise. ! * encoding.c: Likewise. ! * exception.c: Likewise. ! * gc.c: Likewise. ! * hash.c: Likewise. ! * init.c: Likewise. ! * libobjc_entry.c: Likewise. ! * linking.m: Likewise. ! * misc.c: Likewise. ! * nil_method.c: Likewise. ! * objc/NXConstStr.h: Likewise. ! * objc/Object.h: Likewise. ! * objc/Protocol.h: Likewise. ! * objc/encoding.h: Likewise. ! * objc/hash.h: Likewise. ! * objc/objc-api.h: Likewise. ! * objc/objc-decls.h: Likewise. ! * objc/objc-list.h: Likewise. ! * objc/objc.h: Likewise. ! * objc/runtime.h: Likewise. ! * objc/sarray.h: Likewise. ! * objc/thr.h: Likewise. ! * objc/typedstream.h: Likewise. ! * objects.c: Likewise. ! * sarray.c: Likewise. ! * selector.c: Likewise. ! * thr-dce.c: Likewise. ! * thr-decosf1.c: Likewise. ! * thr-irix.c: Likewise. ! * thr-mach.c: Likewise. ! * thr-objc.c: Likewise. ! * thr-os2.c: Likewise. ! * thr-posix.c: Likewise. ! * thr-pthreads.c: Likewise. ! * thr-rtems.c: Likewise. ! * thr-single.c: Likewise. ! * thr-solaris.c: Likewise. ! * thr-vxworks.c: Likewise. ! * thr-win32.c: Likewise. ! * thr.c: Likewise. ! * libobjc.def: Change copyright header to refer to version 3 of ! the GNU General Public License and to point readers at the COPYING3 ! file and the FSF's license web page. ! * makefile.dos: Likewise. ! 2009-04-09 Jakub Jelinek ! * Makefile.in: Change copyright header to refer to version ! 3 of the GNU General Public License and to point readers at the ! COPYING3 file and the FSF's license web page. ! * configure.ac: Likewise. ! 2009-03-12 Richard Frith-Macdonald ! David Ayers ! PR libobjc/27466 ! * objc/objc-api.h (_objc_unexpected_exception): Declare ! new hook. Update copyright dates. ! * exception.c (objc_exception_throw): Use hook. Update ! copyright dates. ! * libobjc.def (_objc_unexpected_exception): Export hook. ! Update copyright dates. ! ! 2009-03-01 Ralf Wildenhues ! ! * configure: Regenerate. ! ! 2008-12-18 Ralf Wildenhues ! ! * configure: Regenerate. ! ! 2008-11-21 Kai Tietz ! ! * Object.m (errno): Replaced by errno.h include. ! (compare): Cast self to id to prevent warning on comparison. ! * objc/objc.h (BOOL): Prevent redeclaration of BOOL, if it is ! already there. ! * sendmsg.c (__objc_print_dtable_stats): Remove type warnings. ! * thr-win32.c (__objc_thread_detach): Remove type warning. ! (__objc_thread_id): Likewise. ! * thr.c (__objc_thread_detach_functiont): Add __builtin_trap () ! for noreturn. ! ! 2008-09-26 Peter O'Gorman ! Steve Ellcey ! ! * configure: Regenerate for new libtool. ! * config.h.in: Regenerate for new libtool. ! ! 2008-07-18 Matthias Klose ! ! * Makefile.in: Ignore missing ../boehm-gc/threads.mk. ! ! 2008-07-18 Matthias Klose ! ! * Makefile.in: Include ../boehm-gc/threads.mk. ! (OBJC_BOEHM_GC_LIBS): Define, (libobjc_gc$(libsuffix).la): Use it. ! ! 2008-07-06 Ralf Wildenhues ! ! * Makefile.in (install-info): New stub target. ! ! 2008-06-17 Ralf Wildenhues ! ! * configure: Regenerate. ! ! 2008-06-14 Kai Tietz ! ! * exception.c (PERSONALITY_FUNCTION): Remove extra decrement ! if HAVE_GETIPINFO is not defined. ! ! 2008-06-10 Kai Tietz ! ! * Object.m (compare): Add type id. ! * objc/Object.h: Likewise. ! * archive.c (objc_read_class): Use size_t to extend version to be ! size of pointer scalar width. ! * sendmsg.c (rtx): Undefine it before redefinition. ! (__objc_print_dtable_stats): Cast arguments to long as intended. ! ! 2008-05-30 Julian Brown ! ! * exception.c (__objc_exception_class): Initialise as constant ! array for ARM EABI. Change macro to static const for non-ARM EABI. ! (ObjcException): Add note about structure layout. Remove landingPad ! and handlerSwitchValue for ARM EABI. ! (get_ttype_entry): Add __ARM_EABI_UNWINDER__ version ! of function. ! (CONTINUE_UNWINDING): Define for ARM EABI/otherwise cases. ! (PERSONALITY_FUNCTION): Use ARM EABI-specific arguments, and add ! ARM EABI unwinding support. ! (objc_exception_throw): Use memcpy to initialise exception class. ! ! 2008-05-25 Alan Modra ! ! * encoding.c (strip_array_types): Rename from get_inner_array_type. ! (rs6000_special_round_type_align): Update. ! ! 2008-05-09 Julian Brown ! ! * Makefile.in (LTLDFLAGS): New. ! (libobjc$(libsuffix).la, libobjc_gc$(libsuffix).la): Use above. ! ! 2008-04-18 Paolo Bonzini ! ! PR bootstrap/35457 ! * aclocal.m4: Regenerate. ! * configure: Regenerate. 2008-01-24 David Edelsohn diff -Nrcpad gcc-4.3.3/libobjc/Makefile.in gcc-4.4.0/libobjc/Makefile.in *** gcc-4.3.3/libobjc/Makefile.in Sat Jun 2 01:35:59 2007 --- gcc-4.4.0/libobjc/Makefile.in Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** # Makefile for GNU Objective C runtime library. # Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, ! # 2005, 2006 Free Software Foundation, Inc. #This file is part of GCC. #GCC is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by ! #the Free Software Foundation; either version 2, or (at your option) #any later version. #GCC is distributed in the hope that it will be useful, --- 1,12 ---- # Makefile for GNU Objective C runtime library. # Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, ! # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. #This file is part of GCC. #GCC is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by ! #the Free Software Foundation; either version 3, or (at your option) #any later version. #GCC is distributed in the hope that it will be useful, *************** *** 15,23 **** #GNU General Public License for more details. #You should have received a copy of the GNU General Public License ! #along with GCC; see the file COPYING. If not, write to ! #the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! #Boston, MA 02110-1301, USA. */ #This was cribbed from the libchill, libiberty and libstdc++ #Makefile.in files. Some of this stuff may be unnecessary and --- 15,22 ---- #GNU General Public License for more details. #You should have received a copy of the GNU General Public License ! #along with GCC; see the file COPYING3. If not see ! #. #This was cribbed from the libchill, libiberty and libstdc++ #Makefile.in files. Some of this stuff may be unnecessary and *************** extra_ldflags_libobjc = @extra_ldflags_l *** 48,53 **** --- 47,54 ---- top_builddir = . + -include ../boehm-gc/threads.mk + libdir = $(exec_prefix)/lib libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) *************** OBJC_GCFLAGS=-DOBJC_WITH_GC=1 *** 95,100 **** --- 96,102 ---- OBJC_THREAD_FILE=thr-objc OBJC_BOEHM_GC=@OBJC_BOEHM_GC@ OBJC_BOEHM_GC_INCLUDES=@OBJC_BOEHM_GC_INCLUDES@ + OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_convenience.la $(thread_libs_and_flags) INCLUDES = -I$(srcdir)/objc -I$(srcdir)/$(MULTISRCTOP)../gcc \ -I$(srcdir)/$(MULTISRCTOP)../gcc/config \ *************** exception_gc.lo: exception.c *** 270,288 **** doc: info dvi pdf html # No install-html or install-pdf support ! .PHONY: install-html install-pdf install-html: install-pdf: libobjc$(libsuffix).la: $(OBJS) $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS) \ -rpath $(toolexeclibdir) \ ! -version-info $(LIBOBJC_VERSION) $(extra_ldflags_libobjc) libobjc_gc$(libsuffix).la: $(OBJS_GC) ! $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS_GC) \ -rpath $(toolexeclibdir) \ ! -version-info $(LIBOBJC_GC_VERSION) $(extra_ldflags_libobjc) # # FIXME -- The following part does not fit in the libtool context. --- 272,295 ---- doc: info dvi pdf html # No install-html or install-pdf support ! .PHONY: install-html install-pdf install-info install-html: install-pdf: + install-info: + + LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) libobjc$(libsuffix).la: $(OBJS) $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS) \ -rpath $(toolexeclibdir) \ ! -version-info $(LIBOBJC_VERSION) $(extra_ldflags_libobjc) \ ! $(LTLDFLAGS) libobjc_gc$(libsuffix).la: $(OBJS_GC) ! $(LIBTOOL_LINK) $(CC) -o $@ $(OBJS_GC) $(OBJC_BOEHM_GC_LIBS) \ -rpath $(toolexeclibdir) \ ! -version-info $(LIBOBJC_GC_VERSION) $(extra_ldflags_libobjc) \ ! $(LTLDFLAGS) # # FIXME -- The following part does not fit in the libtool context. diff -Nrcpad gcc-4.3.3/libobjc/NXConstStr.m gcc-4.4.0/libobjc/NXConstStr.m *** gcc-4.3.3/libobjc/NXConstStr.m Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/NXConstStr.m Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Implementation of the NXConstantString class for Objective-C. ! Copyright (C) 1995 Free Software Foundation, Inc. Contributed by Pieter J. Schoenmakers This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,12 ---- /* Implementation of the NXConstantString class for Objective-C. ! Copyright (C) 1995, 2009 Free Software Foundation, Inc. Contributed by Pieter J. Schoenmakers This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 14,29 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #include "objc/NXConstStr.h" --- 14,27 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/NXConstStr.h" diff -Nrcpad gcc-4.3.3/libobjc/Object.m gcc-4.4.0/libobjc/Object.m *** gcc-4.3.3/libobjc/Object.m Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/Object.m Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* The implementation of class Object for Objective-C. ! Copyright (C) 1993, 1994, 1995, 1997, 2002 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,11 ---- /* The implementation of class Object for Objective-C. ! Copyright (C) 1993, 1994, 1995, 1997, 2002, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,36 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files compiled ! with GCC to produce an executable, this does not cause the resulting ! executable to be covered by the GNU General Public License. This ! exception does not however invalidate any other reasons why the ! executable file might be covered by the GNU General Public License. */ #include #include "objc/Object.h" #include "objc/Protocol.h" #include "objc/objc-api.h" - extern int errno; - #define MAX_CLASS_NAME_LEN 256 @implementation Object --- 13,33 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include + #include #include "objc/Object.h" #include "objc/Protocol.h" #include "objc/objc-api.h" #define MAX_CLASS_NAME_LEN 256 @implementation Object *************** extern int errno; *** 115,127 **** return self==anObject; } ! - (int)compare:anotherObject; { if ([self isEqual:anotherObject]) return 0; // Ordering objects by their address is pretty useless, // so subclasses should override this is some useful way. ! else if (self > anotherObject) return 1; else return -1; --- 112,124 ---- return self==anObject; } ! - (int)compare:(id)anotherObject; { if ([self isEqual:anotherObject]) return 0; // Ordering objects by their address is pretty useless, // so subclasses should override this is some useful way. ! else if ((id)self > anotherObject) return 1; else return -1; diff -Nrcpad gcc-4.3.3/libobjc/Protocol.m gcc-4.4.0/libobjc/Protocol.m *** gcc-4.3.3/libobjc/Protocol.m Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/Protocol.m Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* This file contains the implementation of class Protocol. ! Copyright (C) 1993, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* This file contains the implementation of class Protocol. ! Copyright (C) 1993, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #include "objc/Protocol.h" #include "objc/objc-api.h" --- 13,26 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/Protocol.h" #include "objc/objc-api.h" diff -Nrcpad gcc-4.3.3/libobjc/aclocal.m4 gcc-4.4.0/libobjc/aclocal.m4 *** gcc-4.3.3/libobjc/aclocal.m4 Thu Jul 5 17:54:10 2007 --- gcc-4.4.0/libobjc/aclocal.m4 Fri Apr 18 10:28:53 2008 *************** fi *** 155,160 **** --- 155,162 ---- ]) m4_include([../config/multi.m4]) + m4_include([../config/override.m4]) + m4_include([../config/proginstall.m4]) m4_include([../ltoptions.m4]) m4_include([../ltsugar.m4]) m4_include([../ltversion.m4]) diff -Nrcpad gcc-4.3.3/libobjc/archive.c gcc-4.4.0/libobjc/archive.c *** gcc-4.3.3/libobjc/archive.c Sun Sep 4 17:05:39 2005 --- gcc-4.4.0/libobjc/archive.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime archiving ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files compiled with ! GCC to produce an executable, this does not cause the resulting executable ! to be covered by the GNU General Public License. This exception does not ! however invalidate any other reasons why the executable file might be ! covered by the GNU General Public License. */ #include "tconfig.h" #include "objc/runtime.h" --- 1,26 ---- /* GNU Objective C Runtime archiving ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "tconfig.h" #include "objc/runtime.h" *************** objc_read_class (struct objc_typed_strea *** 908,914 **** objc_read_unsigned_long (stream, &version); objc_hash_add (&stream->class_table, ! (*class)->name, (void *)version); } else if ((buf[0]&_B_CODE) == _B_UCOMM) --- 906,912 ---- objc_read_unsigned_long (stream, &version); objc_hash_add (&stream->class_table, ! (*class)->name, (void *) ((size_t) version)); } else if ((buf[0]&_B_CODE) == _B_UCOMM) diff -Nrcpad gcc-4.3.3/libobjc/class.c gcc-4.4.0/libobjc/class.c *** gcc-4.3.3/libobjc/class.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/class.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime class related functions ! Copyright (C) 1993, 1995, 1996, 1997, 2001, 2002 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup and Dennis Glatting. --- 1,5 ---- /* GNU Objective C Runtime class related functions ! Copyright (C) 1993, 1995, 1996, 1997, 2001, 2002, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup and Dennis Glatting. *************** This file is part of GCC. *** 10,31 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files compiled with ! GCC to produce an executable, this does not cause the resulting executable ! to be covered by the GNU General Public License. This exception does not ! however invalidate any other reasons why the executable file might be ! covered by the GNU General Public License. */ /* The code in this file critically affects class method invocation --- 10,30 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ /* The code in this file critically affects class method invocation diff -Nrcpad gcc-4.3.3/libobjc/config.h.in gcc-4.4.0/libobjc/config.h.in *** gcc-4.3.3/libobjc/config.h.in Mon Feb 28 20:04:41 2005 --- gcc-4.4.0/libobjc/config.h.in Fri Sep 26 16:33:53 2008 *************** *** 1,5 **** --- 1,8 ---- /* config.h.in. Generated from configure.ac by autoheader. */ + /* Define to 1 if you have the header file. */ + #undef HAVE_DLFCN_H + /* Define if the compiler has a thread header that is non single. */ #undef HAVE_GTHR_DEFAULT *************** *** 33,38 **** --- 36,45 ---- /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H + /* Define to the sub-directory in which libtool stores uninstalled libraries. + */ + #undef LT_OBJDIR + /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O diff -Nrcpad gcc-4.3.3/libobjc/configure gcc-4.4.0/libobjc/configure *** gcc-4.3.3/libobjc/configure Thu Jan 24 16:28:13 2008 --- gcc-4.4.0/libobjc/configure Tue Apr 21 09:08:08 2009 *************** ac_includes_default="\ *** 458,465 **** # include #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir VERSION OBJC_BOEHM_GC OBJC_BOEHM_GC_INCLUDES multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical glibcpp_srcdir toolexecdir toolexeclibdir includedirname libsuffix CC ac_ct_CC EXEEXT OBJEXT extra_ldflags_libobjc CFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT DLLTOOL ac_ct_DLLTOOL OBJDUMP ac_ct_OBJDUMP LIBTOOL SED EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S STRIP ac_ct_STRIP lt_ECHO CPP CPPFLAGS SET_MAKE LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= --- 458,466 ---- # include #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir VERSION OBJC_BOEHM_GC OBJC_BOEHM_GC_INCLUDES multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical glibcpp_srcdir toolexecdir toolexeclibdir includedirname libsuffix CC ac_ct_CC EXEEXT OBJEXT extra_ldflags_libobjc CFLAGS AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT DLLTOOL ac_ct_DLLTOOL OBJDUMP ac_ct_OBJDUMP LIBTOOL SED EGREP FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S STRIP ac_ct_STRIP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS SET_MAKE LIBOBJS LTLIBOBJS' ac_subst_files='' + ac_pwd=`pwd` # Initialize some variables set by options. ac_init_help= *************** echo "$as_me: error: \`$ac_var' was not *** 1406,1418 **** ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ! echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ! echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. --- 1407,1428 ---- ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! # differences in whitespace do not lead to failure. ! ac_old_val_w=`echo x $ac_old_val` ! ac_new_val_w=`echo x $ac_new_val` ! if test "$ac_old_val_w" != "$ac_new_val_w"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! ac_cache_corrupted=: ! else ! { echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 ! echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} ! eval $ac_var=\$ac_old_val ! fi ! { echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 ! echo "$as_me: former value: \`$ac_old_val'" >&2;} ! { echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 ! echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. *************** echo "$as_me: current value: $ac_new_v *** 1429,1434 **** --- 1439,1446 ---- fi done if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + echo "$as_me: error: in \`$ac_pwd':" >&2;} { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 *************** ac_compiler_gnu=$ac_cv_c_compiler_gnu *** 1469,1474 **** --- 1481,1489 ---- + + + ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then *************** fi *** 2114,2124 **** fi ! test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ --- 2129,2141 ---- fi ! test -z "$CC" && { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ! echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ *************** else *** 2237,2247 **** echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} ! { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext --- 2254,2266 ---- echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + echo "$as_me: error: in \`$ac_pwd':" >&2;} { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} ! { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext *************** if test "$cross_compiling" != yes; then *** 2266,2278 **** if test "$cross_compiling" = maybe; then cross_compiling=yes else ! { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; } fi fi fi --- 2285,2299 ---- if test "$cross_compiling" = maybe; then cross_compiling=yes else ! { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ! echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; }; } fi fi fi *************** for ac_file in conftest.exe conftest con *** 2310,2320 **** esac done else ! { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext --- 2331,2343 ---- esac done else ! { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ! echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext *************** else *** 2362,2372 **** echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext --- 2385,2397 ---- echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 + { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 + echo "$as_me: error: in \`$ac_pwd':" >&2;} { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext *************** fi *** 3033,3038 **** --- 3058,3064 ---- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. + # Reject install programs that cannot install multiple files. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then *************** case $as_dir/ in *** 3066,3073 **** # program-specific install script used by HP pwplus--don't use. : else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 fi fi done --- 3092,3109 ---- # program-specific install script used by HP pwplus--don't use. : else ! rm -rf conftest.one conftest.two conftest.dir ! echo one > conftest.one ! echo two > conftest.two ! mkdir conftest.dir ! if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && ! test -s conftest.one && test -s conftest.two && ! test -s conftest.dir/conftest.one && ! test -s conftest.dir/conftest.two ! then ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi fi fi done *************** case $as_dir/ in *** 3076,3090 **** esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else ! # As a last resort, use the slow shell script. We don't cache a ! # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is ! # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi --- 3112,3127 ---- esac done + rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else ! # As a last resort, use the slow shell script. Don't cache a ! # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is ! # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi *************** fi *** 3129,3135 **** enable_win32_dll=yes case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 --- 3166,3172 ---- enable_win32_dll=yes case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 *************** test -z "$OBJDUMP" && OBJDUMP=objdump *** 3394,3525 **** ! ! ! macro_version='2.1a' ! macro_revision='1.2435' ! ! ! ! ! ! ! ! ! ! ! ! ! ltmain="$ac_aux_dir/ltmain.sh" ! ! # Set options ! ! enable_dlopen=no ! ! ! ! # Check whether --enable-shared or --disable-shared was given. ! if test "${enable_shared+set}" = set; then ! enableval="$enable_shared" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_shared=yes ;; ! no) enable_shared=no ;; ! *) ! enable_shared=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_shared=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac ! else ! enable_shared=yes ! fi; ! ! ! ! ! ! ! ! ! # Check whether --enable-static or --disable-static was given. ! if test "${enable_static+set}" = set; then ! enableval="$enable_static" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac ! else ! enable_static=yes ! fi; ! - # Check whether --with-pic or --without-pic was given. - if test "${with_pic+set}" = set; then - withval="$with_pic" - pic_mode="$withval" - else - pic_mode=default - fi; - test -z "$pic_mode" && pic_mode=default - - - - - - - - # Check whether --enable-fast-install or --disable-fast-install was given. - if test "${enable_fast_install+set}" = set; then - enableval="$enable_fast_install" - p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," - for pkg in $enableval; do - IFS="$lt_save_ifs" - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS="$lt_save_ifs" - ;; - esac - else - enable_fast_install=yes - fi; --- 3431,3452 ---- ! case `pwd` in ! *\ * | *\ *) ! { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 ! echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; ! esac + macro_version='2.2.6' + macro_revision='1.3012' *************** fi; *** 3527,3532 **** --- 3454,3460 ---- + ltmain="$ac_aux_dir/ltmain.sh" echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 *************** with_gnu_ld=$lt_cv_prog_gnu_ld *** 3763,3769 **** - echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6 if test "${lt_cv_path_NM+set}" = set; then --- 3691,3696 ---- *************** if test "${lt_cv_nm_interface+set}" = se *** 3925,3937 **** else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:3928: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:3931: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:3934: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" --- 3852,3864 ---- else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:3855: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:3858: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:3861: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" *************** else *** 3977,3983 **** lt_cv_sys_max_cmd_len=-1; ;; ! cygwin* | mingw*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, --- 3904,3910 ---- lt_cv_sys_max_cmd_len=-1; ;; ! cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, *************** else *** 4038,4045 **** fi ;; *) ! lt_cv_sys_max_cmd_len=`getconf ARG_MAX 2> /dev/null` ! if test -n $lt_cv_sys_max_cmd_len; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else --- 3965,3972 ---- fi ;; *) ! lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` ! if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else *************** max_cmd_len=$lt_cv_sys_max_cmd_len *** 4086,4092 **** - : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} --- 4013,4018 ---- *************** echo $ECHO_N "checking whether the shell *** 4097,4103 **** xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,, ) >/dev/null 2>&1 \ && xsi_shell=yes echo "$as_me:$LINENO: result: $xsi_shell" >&5 echo "${ECHO_T}$xsi_shell" >&6 --- 4023,4031 ---- xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ ! = c,a/b,, \ ! && eval 'test $(( 1 + 1 )) -eq 2 \ ! && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes echo "$as_me:$LINENO: result: $xsi_shell" >&5 echo "${ECHO_T}$xsi_shell" >&6 *************** esac *** 4177,4182 **** --- 4105,4196 ---- + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. + set dummy ${ac_tool_prefix}objdump; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + OBJDUMP=$ac_cv_prog_OBJDUMP + if test -n "$OBJDUMP"; then + echo "$as_me:$LINENO: result: $OBJDUMP" >&5 + echo "${ECHO_T}$OBJDUMP" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. + set dummy objdump; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false" + fi + fi + ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP + if test -n "$ac_ct_OBJDUMP"; then + echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 + echo "${ECHO_T}$ac_ct_OBJDUMP" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + OBJDUMP=$ac_ct_OBJDUMP + else + OBJDUMP="$ac_cv_prog_OBJDUMP" + fi + + test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6 *************** mingw* | pw32*) *** 4231,4236 **** --- 4245,4256 ---- fi ;; + cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; *************** irix5* | irix6* | nonstopux*) *** 4289,4295 **** ;; # This must be Linux ELF. ! linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; --- 4309,4315 ---- ;; # This must be Linux ELF. ! linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; *************** test -z "$RANLIB" && RANLIB=: *** 4653,4659 **** # Determine commands to create old-style static archives. ! old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= --- 4673,4679 ---- # Determine commands to create old-style static archives. ! old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= *************** case $host_os in *** 4733,4739 **** aix*) symcode='[BCDT]' ;; ! cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) --- 4753,4759 ---- aix*) symcode='[BCDT]' ;; ! cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) *************** lt_cv_sys_global_symbol_to_cdecl="sed -n *** 4777,4782 **** --- 4797,4803 ---- # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= *************** _LT_EOF *** 4916,4922 **** echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi ! rm -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then --- 4937,4943 ---- echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi ! rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then *************** fi *** 4956,4961 **** --- 4977,4987 ---- + + + + + # Check whether --enable-libtool-lock or --disable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval="$enable_libtool_lock" *************** ia64-*-hpux*) *** 4987,4993 **** ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line 4990 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? --- 5013,5019 ---- ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line 5016 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? *************** sparc*-*solaris*) *** 5167,5173 **** *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; ! *) LD="${LD-ld} -64" ;; esac ;; esac --- 5193,5203 ---- *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; ! *) ! if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then ! LD="${LD-ld} -64" ! fi ! ;; esac ;; esac *************** esac *** 5178,5183 **** --- 5208,5771 ---- need_locks="$enable_libtool_lock" + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. + set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + DSYMUTIL=$ac_cv_prog_DSYMUTIL + if test -n "$DSYMUTIL"; then + echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 + echo "${ECHO_T}$DSYMUTIL" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. + set dummy dsymutil; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_DSYMUTIL" && ac_cv_prog_ac_ct_DSYMUTIL=":" + fi + fi + ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL + if test -n "$ac_ct_DSYMUTIL"; then + echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 + echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + DSYMUTIL=$ac_ct_DSYMUTIL + else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. + set dummy ${ac_tool_prefix}nmedit; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + NMEDIT=$ac_cv_prog_NMEDIT + if test -n "$NMEDIT"; then + echo "$as_me:$LINENO: result: $NMEDIT" >&5 + echo "${ECHO_T}$NMEDIT" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. + set dummy nmedit; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_NMEDIT" && ac_cv_prog_ac_ct_NMEDIT=":" + fi + fi + ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT + if test -n "$ac_ct_NMEDIT"; then + echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 + echo "${ECHO_T}$ac_ct_NMEDIT" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + NMEDIT=$ac_ct_NMEDIT + else + NMEDIT="$ac_cv_prog_NMEDIT" + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. + set dummy ${ac_tool_prefix}lipo; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + LIPO=$ac_cv_prog_LIPO + if test -n "$LIPO"; then + echo "$as_me:$LINENO: result: $LIPO" >&5 + echo "${ECHO_T}$LIPO" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. + set dummy lipo; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_LIPO" && ac_cv_prog_ac_ct_LIPO=":" + fi + fi + ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO + if test -n "$ac_ct_LIPO"; then + echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 + echo "${ECHO_T}$ac_ct_LIPO" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + LIPO=$ac_ct_LIPO + else + LIPO="$ac_cv_prog_LIPO" + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. + set dummy ${ac_tool_prefix}otool; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + OTOOL=$ac_cv_prog_OTOOL + if test -n "$OTOOL"; then + echo "$as_me:$LINENO: result: $OTOOL" >&5 + echo "${ECHO_T}$OTOOL" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. + set dummy otool; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_OTOOL" && ac_cv_prog_ac_ct_OTOOL=":" + fi + fi + ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL + if test -n "$ac_ct_OTOOL"; then + echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 + echo "${ECHO_T}$ac_ct_OTOOL" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + OTOOL=$ac_ct_OTOOL + else + OTOOL="$ac_cv_prog_OTOOL" + fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. + set dummy ${ac_tool_prefix}otool64; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + fi + fi + OTOOL64=$ac_cv_prog_OTOOL64 + if test -n "$OTOOL64"; then + echo "$as_me:$LINENO: result: $OTOOL64" >&5 + echo "${ECHO_T}$OTOOL64" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + fi + if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. + set dummy otool64; ac_word=$2 + echo "$as_me:$LINENO: checking for $ac_word" >&5 + echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 + if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. + else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi + done + done + + test -z "$ac_cv_prog_ac_ct_OTOOL64" && ac_cv_prog_ac_ct_OTOOL64=":" + fi + fi + ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 + if test -n "$ac_ct_OTOOL64"; then + echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 + echo "${ECHO_T}$ac_ct_OTOOL64" >&6 + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi + + OTOOL64=$ac_ct_OTOOL64 + else + OTOOL64="$ac_cv_prog_OTOOL64" + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 + echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6 + if test "${lt_cv_apple_cc_single_mod+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi + fi + echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 + echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6 + echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 + echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6 + if test "${lt_cv_ld_exported_symbols_list+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 + echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } + fi + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + + int + main () + { + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + lt_cv_ld_exported_symbols_list=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_ld_exported_symbols_list=no + fi + rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + + fi + echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 + echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6 + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' *************** rm -f conftest.err conftest.$ac_ext *** 5399,5409 **** if $ac_preproc_ok; then : else ! { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; } fi ac_ext=c --- 5987,5999 ---- if $ac_preproc_ok; then : else ! { { echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 ! echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} ! { (exit 1); exit 1; }; }; } fi ac_ext=c *************** done *** 5714,5719 **** --- 6304,6429 ---- + # Set options + + + + enable_dlopen=no + + + + # Check whether --enable-shared or --disable-shared was given. + if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac + else + enable_shared=yes + fi; + + + + + + + + + # Check whether --enable-static or --disable-static was given. + if test "${enable_static+set}" = set; then + enableval="$enable_static" + p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac + else + enable_static=yes + fi; + + + + + + + + + + # Check whether --with-pic or --without-pic was given. + if test "${with_pic+set}" = set; then + withval="$with_pic" + pic_mode="$withval" + else + pic_mode=default + fi; + + test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install or --disable-fast-install was given. + if test "${enable_fast_install+set}" = set; then + enableval="$enable_fast_install" + p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac + else + enable_fast_install=yes + fi; + + + + + + + + + + # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" *************** ac_outfile=conftest.$ac_objext *** 6060,6066 **** echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` ! $RM conftest* ## CAVEAT EMPTOR: --- 6770,6776 ---- echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` ! $RM -r conftest* ## CAVEAT EMPTOR: *************** else *** 6092,6102 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:6095: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:6099: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. --- 6802,6812 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:6805: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:6809: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. *************** echo $ECHO_N "checking for $compiler opt *** 6146,6164 **** ;; amigaos*) ! if test "$host_cpu" = m68k; then ! # FIXME: we need at least 68020 code to build shared libraries, but ! # adding the `-m68020' flag to GCC prevents building anything better, ! # like `-m68040'. ! lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ! fi ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; ! mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style --- 6856,6880 ---- ;; amigaos*) ! case $host_cpu in ! powerpc) ! # see comment about AmigaOS4 .so support ! lt_prog_compiler_pic='-fPIC' ! ;; ! m68k) ! # FIXME: we need at least 68020 code to build shared libraries, but ! # adding the `-m68020' flag to GCC prevents building anything better, ! # like `-m68040'. ! lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ! ;; ! esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; ! mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style *************** echo $ECHO_N "checking for $compiler opt *** 6173,6182 **** ;; hpux*) ! # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ! # not for PA HP-UX. case $host_cpu in ! hppa*64*|ia64*) # +Z the default ;; *) --- 6889,6899 ---- ;; hpux*) ! # PIC is the default for 64-bit PA HP-UX, but not for 32-bit ! # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag ! # sets the default TLS model and affects inlining. case $host_cpu in ! hppa*64*) # +Z the default ;; *) *************** echo $ECHO_N "checking for $compiler opt *** 6225,6242 **** lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; ! mingw* | cygwin* | pw32* | os2*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' --- 6942,6949 ---- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; ! mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' *************** echo $ECHO_N "checking for $compiler opt *** 6264,6276 **** lt_prog_compiler_static='-non_shared' ;; ! linux* | k*bsd*-gnu) case $cc_basename in ! icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) --- 6971,6997 ---- lt_prog_compiler_static='-non_shared' ;; ! linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ! # old Intel for x86_64 which still supported -KPIC. ! ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) *************** echo $ECHO_N "checking for $compiler opt *** 6283,6288 **** --- 7004,7015 ---- # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) *************** echo "${ECHO_T}$lt_prog_compiler_pic" >& *** 6398,6407 **** if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 ! if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" --- 7125,7134 ---- if test -n "$lt_prog_compiler_pic"; then echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6 ! if test "${lt_cv_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" *************** else *** 6414,6440 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:6417: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:6421: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ! lt_prog_compiler_pic_works=yes fi fi $RM conftest* fi ! echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 ! echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6 ! if test x"$lt_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; --- 7141,7167 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7144: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:7148: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then ! lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi ! echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 ! echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6 ! if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; *************** fi *** 6457,6466 **** wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 ! if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext --- 7184,7193 ---- wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6 ! if test "${lt_cv_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext *************** else *** 6473,6492 **** $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then ! lt_prog_compiler_static_works=yes fi else ! lt_prog_compiler_static_works=yes fi fi ! $RM conftest* LDFLAGS="$save_LDFLAGS" fi ! echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 ! echo "${ECHO_T}$lt_prog_compiler_static_works" >&6 ! if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= --- 7200,7219 ---- $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then ! lt_cv_prog_compiler_static_works=yes fi else ! lt_cv_prog_compiler_static_works=yes fi fi ! $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi ! echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 ! echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6 ! if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= *************** else *** 6519,6529 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:6522: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:6526: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 7246,7256 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7249: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7253: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** else *** 6574,6584 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:6577: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:6581: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 7301,7311 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7304: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7308: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** echo $ECHO_N "checking whether the $comp *** 6668,6683 **** # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. ! exclude_expsyms="_GLOBAL_OFFSET_TABLE_" # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. extract_expsyms_cmds= case $host_os in ! cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. --- 7395,7411 ---- # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. ! exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in ! cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. *************** _LT_EOF *** 6739,6757 **** ;; amigaos*) ! if test "$host_cpu" = m68k; then ! archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! fi ! ! # Samuel A. Falvo II reports ! # that the semantics of dynamic libraries on AmigaOS, at least up ! # to version 4, is to share data among multiple programs linked ! # with the same dynamic library. Since this doesn't match the ! # behavior of shared libraries on other platforms, we can't use ! # them. ! ld_shlibs=no ;; beos*) --- 7467,7484 ---- ;; amigaos*) ! case $host_cpu in ! powerpc) ! # see comment about AmigaOS4 .so support ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='' ! ;; ! m68k) ! archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! ;; ! esac ;; beos*) *************** _LT_EOF *** 6765,6771 **** fi ;; ! cygwin* | mingw* | pw32*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' --- 7492,7498 ---- fi ;; ! cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' *************** _LT_EOF *** 6805,6811 **** archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; ! gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in --- 7532,7538 ---- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; ! gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in *************** _LT_EOF *** 6816,6821 **** --- 7543,7549 ---- && test "$tmp_diet" = no then tmp_addflag= + tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' *************** _LT_EOF *** 6830,6835 **** --- 7558,7569 ---- tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 *************** _LT_EOF *** 6838,6845 **** tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' --- 7572,7577 ---- *************** _LT_EOF *** 6849,6854 **** --- 7581,7602 ---- echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac else ld_shlibs=no fi *************** _LT_EOF *** 7044,7049 **** --- 7792,7798 ---- fi fi + export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes *************** if test -z "$aix_libpath"; then aix_libp *** 7206,7225 **** ;; amigaos*) ! if test "$host_cpu" = m68k; then ! archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! fi ! # see comment about different semantics on the GNU ld section ! ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; ! cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is --- 7955,7979 ---- ;; amigaos*) ! case $host_cpu in ! powerpc) ! # see comment about AmigaOS4 .so support ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='' ! ;; ! m68k) ! archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! ;; ! esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; ! cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is *************** if test -z "$aix_libpath"; then aix_libp *** 7241,7313 **** ;; darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - case ${MACOSX_DEPLOYMENT_TARGET-10.0} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - if test "${lt_cv_apple_cc_single_mod+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - lt_cv_apple_cc_single_mod=no - if test -z "${LT_MULTI_MODULE}"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi-module to the - # link flags. - echo "int foo(void){return 1;}" > conftest.c - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib ${wl}-single_module conftest.c - if test -f libconftest.dylib; then - lt_cv_apple_cc_single_mod=yes - rm libconftest.dylib - fi - rm conftest.$ac_ext - fi - fi ! output_verbose_link_cmd=echo ! if test "X$lt_cv_apple_cc_single_mod" = Xyes ; then ! archive_cmds='$CC -dynamiclib $single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ! archive_expsym_cmds='sed "s,^,_," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $single_module -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ! else ! archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' ! archive_expsym_cmds='sed "s,^,_," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ! fi ! module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' ! module_expsym_cmds='sed -e "s,^,_," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ! else ! case $cc_basename in ! xlc*) ! output_verbose_link_cmd=echo ! archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`$ECHO $rpath/$soname` $verstring' ! module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' ! # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds ! archive_expsym_cmds='sed "s,^,_," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ! module_expsym_cmds='sed "s,^,_," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ! ;; ! *) ! ld_shlibs=no ! ;; ! esac ! fi ;; dgux*) --- 7995,8024 ---- ;; darwin* | rhapsody*) ! ! archive_cmds_need_lc=no ! hardcode_direct=no ! hardcode_automatic=yes ! hardcode_shlibpath_var=unsupported ! whole_archive_flag_spec='' ! link_all_deplibs=yes ! allow_undefined_flag="$_lt_dar_allow_undefined" ! case $cc_basename in ! ifort*) _lt_dar_can_shared=yes ;; ! *) _lt_dar_can_shared=$GCC ;; ! esac ! if test "$_lt_dar_can_shared" = "yes"; then ! output_verbose_link_cmd=echo ! archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" ! module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" ! archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" ! module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" ! ! else ! ld_shlibs=no ! fi ! ;; dgux*) *************** fi *** 7389,7395 **** archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' --- 8100,8106 ---- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' *************** rm -f conftest.err conftest.$ac_objext \ *** 7512,7536 **** ;; openbsd*) ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! hardcode_direct_absolute=yes ! if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' ! hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ! export_dynamic_flag_spec='${wl}-E' ! else ! case $host_os in ! openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! hardcode_libdir_flag_spec='-R$libdir' ! ;; ! *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ! ;; ! esac fi ;; --- 8223,8251 ---- ;; openbsd*) ! if test -f /usr/libexec/ld.so; then ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! hardcode_direct_absolute=yes ! if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ! export_dynamic_flag_spec='${wl}-E' ! else ! case $host_os in ! openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! hardcode_libdir_flag_spec='-R$libdir' ! ;; ! *) ! archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ! hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ! ;; ! esac ! fi ! else ! ld_shlibs=no fi ;; *************** x|xyes) *** 7767,7810 **** # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl ! pic_flag=$lt_prog_compiler_pic ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } ! then ! archive_cmds_need_lc=no ! else ! archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 ! echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi --- 8482,8531 ---- # to ld, don't add -lc before -lgcc. echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6 ! if test "${lt_cv_archive_cmds_need_lc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! $RM conftest* ! echo "$lt_simple_compile_test_code" > conftest.$ac_ext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl ! pic_flag=$lt_prog_compiler_pic ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } ! then ! lt_cv_archive_cmds_need_lc=no ! else ! lt_cv_archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $RM conftest* ! ! fi ! echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 ! echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6 ! archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi *************** esac *** 7969,7976 **** echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 ! withGCC=$GCC ! if test "$withGCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; --- 8690,8697 ---- echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 ! ! if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; *************** aix[4-9]*) *** 8096,8108 **** ;; amigaos*) ! if test "$host_cpu" = m68k; then library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ! else ! dynamic_linker=no ! fi ;; beos*) --- 8817,8834 ---- ;; amigaos*) ! case $host_cpu in ! powerpc) ! # Since July 2007 AmigaOS4 officially supports .so libraries. ! # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! ;; ! m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ! ;; ! esac ;; beos*) *************** bsdi[45]*) *** 8125,8138 **** # libtool to hard-code these into programs ;; ! cygwin* | mingw* | pw32*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no ! case $withGCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ --- 8851,8864 ---- # libtool to hard-code these into programs ;; ! cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ *************** cygwin* | mingw* | pw32*) *** 8155,8161 **** soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; ! mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` --- 8881,8887 ---- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; ! mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` *************** linux*oldld* | linux*aout* | linux*coff* *** 8370,8376 **** ;; # This must be Linux ELF. ! linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no --- 9096,9102 ---- ;; # This must be Linux ELF. ! linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no *************** linux* | k*bsd*-gnu) *** 8379,8390 **** finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ! if test x$gcc_no_link = xyes; then { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} { (exit 1); exit 1; }; } --- 9105,9121 ---- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH ! if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! lt_cv_shlibpath_overrides_runpath=no ! save_LDFLAGS=$LDFLAGS ! save_libdir=$libdir ! eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ ! LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" ! if test x$gcc_no_link = xyes; then { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} { (exit 1); exit 1; }; } *************** if { (eval echo "$as_me:$LINENO: \"$ac_l *** 8426,8433 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir"; then ! shlibpath_overrides_runpath=yes fi else --- 9157,9164 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then ! lt_cv_shlibpath_overrides_runpath=yes fi else *************** sed 's/^/| /' conftest.$ac_ext >&5 *** 8437,8444 **** fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install --- 9168,9179 ---- fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS=$save_LDFLAGS ! libdir=$save_libdir ! ! fi ! ! shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install *************** rm -f conftest.err conftest.$ac_objext \ *** 8447,8453 **** # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi --- 9182,9188 ---- # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then ! lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi *************** tpf*) *** 8631,8637 **** version_type=linux need_lib_prefix=no need_version=no ! library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes --- 9366,9372 ---- version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes *************** if test "$GCC" = yes; then *** 8657,8662 **** --- 9392,9404 ---- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi + if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" + fi + if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" + fi + *************** else *** 8801,8807 **** lt_cv_dlopen_self=yes ;; ! mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; --- 9543,9549 ---- lt_cv_dlopen_self=yes ;; ! mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *************** fi *** 9063,9069 **** echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then ! lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 --- 9805,9811 ---- echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6 if test $ac_cv_lib_dld_shl_load = yes; then ! lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6 *************** fi *** 9377,9383 **** echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then ! lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi --- 10119,10125 ---- echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6 if test $ac_cv_lib_dld_dld_link = yes; then ! lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi *************** else *** 9426,9432 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 9429 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10168,10174 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10171 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 9467,9476 **** # endif #endif - #ifdef __cplusplus - extern "C" void exit (int); - #endif - void fnord() { int i=42;} int main () { --- 10209,10214 ---- *************** int main () *** 9486,9492 **** else puts (dlerror ()); ! exit (status); } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 --- 10224,10230 ---- else puts (dlerror ()); ! return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 *************** else *** 9526,9532 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 9529 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10264,10270 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10267 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 9567,9576 **** # endif #endif - #ifdef __cplusplus - extern "C" void exit (int); - #endif - void fnord() { int i=42;} int main () { --- 10305,10310 ---- *************** int main () *** 9586,9592 **** else puts (dlerror ()); ! exit (status); } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 --- 10320,10326 ---- else puts (dlerror ()); ! return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 *************** if test "${enable_sjlj_exceptions+set}" *** 10406,10412 **** : else cat > conftest.$ac_ext << EOF ! #line 10409 "configure" @interface Frob @end @implementation Frob --- 11140,11146 ---- : else cat > conftest.$ac_ext << EOF ! #line 11143 "configure" @interface Frob @end @implementation Frob *************** GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_s *** 11071,11076 **** --- 11805,11811 ---- lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' *************** lt_prog_compiler_pic='`$ECHO "X$lt_prog_ *** 11081,11086 **** --- 11816,11826 ---- lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' + DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' + NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' + LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' + OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' + OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' *************** compiler \ *** 11166,11171 **** --- 11906,11912 ---- lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ + lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ *************** lt_prog_compiler_pic \ *** 11174,11179 **** --- 11915,11925 ---- lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ + DSYMUTIL \ + NMEDIT \ + LIPO \ + OTOOL \ + OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ *************** s,@LN_S@,$LN_S,;t t *** 11419,11424 **** --- 12165,12180 ---- s,@STRIP@,$STRIP,;t t s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t s,@lt_ECHO@,$lt_ECHO,;t t + s,@DSYMUTIL@,$DSYMUTIL,;t t + s,@ac_ct_DSYMUTIL@,$ac_ct_DSYMUTIL,;t t + s,@NMEDIT@,$NMEDIT,;t t + s,@ac_ct_NMEDIT@,$ac_ct_NMEDIT,;t t + s,@LIPO@,$LIPO,;t t + s,@ac_ct_LIPO@,$ac_ct_LIPO,;t t + s,@OTOOL@,$OTOOL,;t t + s,@ac_ct_OTOOL@,$ac_ct_OTOOL,;t t + s,@OTOOL64@,$OTOOL64,;t t + s,@ac_ct_OTOOL64@,$ac_ct_OTOOL64,;t t s,@CPP@,$CPP,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@SET_MAKE@,$SET_MAKE,;t t *************** esac ;; *** 12023,12058 **** #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ! # Generated automatically by $as_me (GNU $PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007 Free Software Foundation, Inc. # ! # This file is part of GNU Libtool: ! # Originally by Gordon Matzigkeit , 1996 # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. # ! # This program is distributed in the hope that it will be useful, but ! # WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! # General Public License for more details. # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, a copy can be downloaded from ! # http://www.gnu.org/copyleft/gpl.html, or by writing to the Free ! # Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ! # MA 02110-1301, USA. # ! # As a special exception to the GNU General Public License, if you ! # distribute this file as part of a program that contains a ! # configuration script generated by Autoconf, you may include it under ! # the same distribution terms that you use for the rest of that program. # The names of the tagged configurations supported by this script. --- 12779,12814 ---- #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ! # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, ! # 2006, 2007, 2008 Free Software Foundation, Inc. ! # Written by Gordon Matzigkeit, 1996 # ! # This file is part of GNU Libtool. # ! # GNU Libtool is free software; you can redistribute it and/or ! # modify it under the terms of the GNU General Public License as ! # published by the Free Software Foundation; either version 2 of ! # the License, or (at your option) any later version. # ! # As a special exception to the GNU General Public License, ! # if you distribute this file as part of a program or library that ! # is built using GNU Libtool, you may include this file under the ! # same distribution terms that you use for the rest of that program. # ! # GNU Libtool is distributed in the hope that it will be useful, ! # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! # GNU General Public License for more details. # ! # You should have received a copy of the GNU General Public License ! # along with GNU Libtool; see the file COPYING. If not, a copy ! # can be downloaded from http://www.gnu.org/licenses/gpl.html, or ! # obtained by writing to the Free Software Foundation, Inc., ! # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. *************** global_symbol_to_cdecl=$lt_lt_cv_sys_glo *** 12171,12176 **** --- 12927,12935 ---- # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + # Transform the output of nm in a C name address pair when lib prefix is needed. + global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + # The name of the directory that contains temporary libtool files. objdir=$objdir *************** MAGIC_CMD=$MAGIC_CMD *** 12186,12191 **** --- 12945,12965 ---- # Must we lock files when doing compilation? need_locks=$lt_need_locks + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. + DSYMUTIL=$lt_DSYMUTIL + + # Tool to change global to local symbols on Mac OS X. + NMEDIT=$lt_NMEDIT + + # Tool to manipulate fat objects and archives on Mac OS X. + LIPO=$lt_LIPO + + # ldd/readelf like tool for Mach-O binaries on Mac OS X. + OTOOL=$lt_OTOOL + + # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. + OTOOL64=$lt_OTOOL64 + # Old archive suffix (normally "a"). libext=$libext *************** ltmain="$ac_aux_dir/ltmain.sh" *** 12426,12431 **** --- 13200,13206 ---- case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" + # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. *************** func_basename () *** 12443,12448 **** --- 13218,13244 ---- func_basename_result="${1##*/}" } + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function + # call: + # dirname: Compute the dirname of FILE. If nonempty, + # add APPEND to the result, otherwise set result + # to NONDIR_REPLACEMENT. + # value returned in "$func_dirname_result" + # basename: Compute filename of FILE. + # value retuned in "$func_basename_result" + # Implementation must be kept synchronized with func_dirname + # and func_basename. For efficiency, we do not delegate to + # those functions but instead duplicate the functionality here. + func_dirname_and_basename () + { + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" + } + # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special *************** func_lo2o () *** 12472,12481 **** --- 13268,13298 ---- *) func_lo2o_result=${1} ;; esac } + + # func_xform libobj-or-source + func_xform () + { + func_xform_result=${1%.*}.lo + } + + # func_arith arithmetic-term... + func_arith () + { + func_arith_result=$(( $* )) + } + + # func_len string + # STRING may not start with a hyphen. + func_len () + { + func_len_result=${#1} + } + _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" + # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. *************** func_basename () *** 12496,12501 **** --- 13313,13319 ---- func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } + # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special *************** func_lo2o () *** 12528,12533 **** --- 13346,13371 ---- { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } + + # func_xform libobj-or-source + func_xform () + { + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` + } + + # func_arith arithmetic-term... + func_arith () + { + func_arith_result=`expr "$@"` + } + + # func_len string + # STRING may not start with a hyphen. + func_len () + { + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } + _LT_EOF esac *************** func_append () *** 12552,12557 **** --- 13390,13396 ---- { eval "$1=\$$1\$2" } + _LT_EOF ;; esac diff -Nrcpad gcc-4.3.3/libobjc/configure.ac gcc-4.4.0/libobjc/configure.ac *** gcc-4.3.3/libobjc/configure.ac Sun Oct 14 18:17:14 2007 --- gcc-4.4.0/libobjc/configure.ac Thu Apr 9 23:23:07 2009 *************** *** 1,13 **** # Process this file with autoconf to produce a configure script. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 ! # 2005, 2006 Free Software Foundation, Inc. # Originally contributed by Dave Love (d.love@dl.ac.uk). # #This file is part of GCC. # #GCC is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by ! #the Free Software Foundation; either version 2, or (at your option) #any later version. # #GCC is distributed in the hope that it will be useful, --- 1,13 ---- # Process this file with autoconf to produce a configure script. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 ! # 2005, 2006, 2009 Free Software Foundation, Inc. # Originally contributed by Dave Love (d.love@dl.ac.uk). # #This file is part of GCC. # #GCC is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by ! #the Free Software Foundation; either version 3, or (at your option) #any later version. # #GCC is distributed in the hope that it will be useful, *************** *** 16,24 **** #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License ! #along with GCC; see the file COPYING. If not, write to ! #the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA ! #02110-1301, USA. AC_PREREQ(2.59) AC_INIT(package-unused, version-unused,, libobjc) --- 16,23 ---- #GNU General Public License for more details. # #You should have received a copy of the GNU General Public License ! #along with GCC; see the file COPYING3. If not see ! #. AC_PREREQ(2.59) AC_INIT(package-unused, version-unused,, libobjc) diff -Nrcpad gcc-4.3.3/libobjc/encoding.c gcc-4.4.0/libobjc/encoding.c *** gcc-4.3.3/libobjc/encoding.c Wed Nov 1 05:28:41 2006 --- gcc-4.4.0/libobjc/encoding.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* Encoding of types for Objective C. ! Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000, 2002, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup Bitfield support by Ovidiu Predescu --- 1,5 ---- /* Encoding of types for Objective C. ! Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup Bitfield support by Ovidiu Predescu *************** This file is part of GCC. *** 8,14 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 8,14 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 16,31 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ /* FIXME: This file has no business including tm.h. */ --- 16,29 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ /* FIXME: This file has no business including tm.h. */ *************** Boston, MA 02110-1301, USA. */ *** 78,84 **** #define DFmode _C_DBL ! #define get_inner_array_type(TYPE) ({const char *_field = (TYPE); \ while (*_field == _C_ARY_B)\ {\ while (isdigit ((unsigned char)*++_field))\ --- 76,82 ---- #define DFmode _C_DBL ! #define strip_array_types(TYPE) ({const char *_field = (TYPE); \ while (*_field == _C_ARY_B)\ {\ while (isdigit ((unsigned char)*++_field))\ *************** static int __attribute__ ((__unused__)) *** 115,123 **** #define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED) \ ({ const char *_fields = TYPE_FIELDS (STRUCT); \ ((_fields != 0 \ ! && TYPE_MODE (TREE_CODE (TREE_TYPE (_fields)) == ARRAY_TYPE \ ! ? get_inner_array_type (_fields) \ ! : TREE_TYPE (_fields)) == DFmode) \ ? MAX (MAX (COMPUTED, SPECIFIED), 64) \ : MAX (COMPUTED, SPECIFIED));}) /* FIXME: The word 'fixme' is insufficient to explain the wrong-ness --- 113,119 ---- #define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED) \ ({ const char *_fields = TYPE_FIELDS (STRUCT); \ ((_fields != 0 \ ! && TYPE_MODE (strip_array_types (TREE_TYPE (_fields))) == DFmode) \ ? MAX (MAX (COMPUTED, SPECIFIED), 64) \ : MAX (COMPUTED, SPECIFIED));}) /* FIXME: The word 'fixme' is insufficient to explain the wrong-ness diff -Nrcpad gcc-4.3.3/libobjc/exception.c gcc-4.4.0/libobjc/exception.c *** gcc-4.3.3/libobjc/exception.c Mon Aug 6 14:17:59 2007 --- gcc-4.4.0/libobjc/exception.c Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* The implementation of exception handling primitives for Objective-C. ! Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,11 ---- /* The implementation of exception handling primitives for Objective-C. ! Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,28 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files compiled ! with GCC to produce an executable, this does not cause the resulting ! executable to be covered by the GNU General Public License. This ! exception does not however invalidate any other reasons why the ! executable file might be covered by the GNU General Public License. */ #include #include "config.h" --- 13,26 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include "config.h" *************** Boston, MA 02110-1301, USA. */ *** 31,46 **** #include "unwind-pe.h" /* This is the exception class we report -- "GNUCOBJC". */ ! #define __objc_exception_class \ ! ((((((((_Unwind_Exception_Class) 'G' \ ! << 8 | (_Unwind_Exception_Class) 'N') \ ! << 8 | (_Unwind_Exception_Class) 'U') \ ! << 8 | (_Unwind_Exception_Class) 'C') \ ! << 8 | (_Unwind_Exception_Class) 'O') \ ! << 8 | (_Unwind_Exception_Class) 'B') \ ! << 8 | (_Unwind_Exception_Class) 'J') \ ! << 8 | (_Unwind_Exception_Class) 'C') /* This is the object that is passed around by the Objective C runtime to represent the exception in flight. */ --- 29,53 ---- #include "unwind-pe.h" + #ifdef __ARM_EABI_UNWINDER__ + + const _Unwind_Exception_Class __objc_exception_class + = {'G', 'N', 'U', 'C', 'O', 'B', 'J', 'C'}; + + #else + /* This is the exception class we report -- "GNUCOBJC". */ ! static const _Unwind_Exception_Class __objc_exception_class ! = ((((((((_Unwind_Exception_Class) 'G' ! << 8 | (_Unwind_Exception_Class) 'N') ! << 8 | (_Unwind_Exception_Class) 'U') ! << 8 | (_Unwind_Exception_Class) 'C') ! << 8 | (_Unwind_Exception_Class) 'O') ! << 8 | (_Unwind_Exception_Class) 'B') ! << 8 | (_Unwind_Exception_Class) 'J') ! << 8 | (_Unwind_Exception_Class) 'C'); ! ! #endif /* This is the object that is passed around by the Objective C runtime to represent the exception in flight. */ *************** struct ObjcException *** 50,61 **** /* This bit is needed in order to interact with the unwind runtime. */ struct _Unwind_Exception base; ! /* The actual object we want to throw. */ id value; /* Cache some internal unwind data between phase 1 and phase 2. */ _Unwind_Ptr landingPad; int handlerSwitchValue; }; --- 57,74 ---- /* This bit is needed in order to interact with the unwind runtime. */ struct _Unwind_Exception base; ! /* The actual object we want to throw. Note: must come immediately after ! unwind header. */ id value; + #ifdef __ARM_EABI_UNWINDER__ + /* Note: we use the barrier cache defined in the unwind control block for + ARM EABI. */ + #else /* Cache some internal unwind data between phase 1 and phase 2. */ _Unwind_Ptr landingPad; int handlerSwitchValue; + #endif }; *************** struct lsda_header_info *** 71,76 **** --- 84,94 ---- unsigned char call_site_encoding; }; + /* This hook allows libraries to sepecify special actions when an + exception is thrown without a handler in place. + */ + void (*_objc_unexpected_exception) (id exception); /* !T:SAFE */ + static const unsigned char * parse_lsda_header (struct _Unwind_Context *context, const unsigned char *p, struct lsda_header_info *info) *************** parse_lsda_header (struct _Unwind_Contex *** 106,111 **** --- 124,147 ---- return p; } + #ifdef __ARM_EABI_UNWINDER__ + + static Class + get_ttype_entry (struct lsda_header_info *info, _uleb128_t i) + { + _Unwind_Ptr ptr; + + ptr = (_Unwind_Ptr) (info->TType - (i * 4)); + ptr = _Unwind_decode_target2 (ptr); + + if (ptr) + return objc_get_class ((const char *) ptr); + else + return 0; + } + + #else + static Class get_ttype_entry (struct lsda_header_info *info, _Unwind_Word i) { *************** get_ttype_entry (struct lsda_header_info *** 122,127 **** --- 158,165 ---- return 0; } + #endif + /* Like unto the method of the same name on Object, but takes an id. */ /* ??? Does this bork the meta-type system? Can/should we look up an isKindOf method on the id? */ *************** isKindOf (id value, Class target) *** 150,161 **** --- 188,219 ---- #define PERSONALITY_FUNCTION __gnu_objc_personality_v0 #endif + #ifdef __ARM_EABI_UNWINDER__ + + #define CONTINUE_UNWINDING \ + do \ + { \ + if (__gnu_unwind_frame(ue_header, context) != _URC_OK) \ + return _URC_FAILURE; \ + return _URC_CONTINUE_UNWIND; \ + } \ + while (0) + + _Unwind_Reason_Code + PERSONALITY_FUNCTION (_Unwind_State state, + struct _Unwind_Exception *ue_header, + struct _Unwind_Context *context) + #else + + #define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND + _Unwind_Reason_Code PERSONALITY_FUNCTION (int version, _Unwind_Action actions, _Unwind_Exception_Class exception_class, struct _Unwind_Exception *ue_header, struct _Unwind_Context *context) + #endif { struct ObjcException *xh = (struct ObjcException *) ue_header; *************** PERSONALITY_FUNCTION (int version, *** 165,183 **** const unsigned char *p; _Unwind_Ptr landing_pad, ip; int handler_switch_value; ! int saw_cleanup = 0, saw_handler; void *return_object; /* Interface version check. */ if (version != 1) return _URC_FATAL_PHASE1_ERROR; /* Shortcut for phase 2 found handler for domestic exception. */ if (actions == (_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME) ! && exception_class == __objc_exception_class) { handler_switch_value = xh->handlerSwitchValue; landing_pad = xh->landingPad; goto install_context; } --- 223,287 ---- const unsigned char *p; _Unwind_Ptr landing_pad, ip; int handler_switch_value; ! int saw_cleanup = 0, saw_handler, foreign_exception; void *return_object; + int ip_before_insn = 0; + + #ifdef __ARM_EABI_UNWINDER__ + _Unwind_Action actions; + + switch (state & _US_ACTION_MASK) + { + case _US_VIRTUAL_UNWIND_FRAME: + actions = _UA_SEARCH_PHASE; + break; + + case _US_UNWIND_FRAME_STARTING: + actions = _UA_CLEANUP_PHASE; + if (!(state & _US_FORCE_UNWIND) + && ue_header->barrier_cache.sp == _Unwind_GetGR (context, 13)) + actions |= _UA_HANDLER_FRAME; + break; + + case _US_UNWIND_FRAME_RESUME: + CONTINUE_UNWINDING; + break; + + default: + abort(); + } + actions |= state & _US_FORCE_UNWIND; + + /* TODO: Foreign exceptions need some attention (e.g. rethrowing doesn't + work). */ + foreign_exception = 0; + + /* The dwarf unwinder assumes the context structure holds things like the + function and LSDA pointers. The ARM implementation caches these in + the exception header (UCB). To avoid rewriting everything we make the + virtual IP register point at the UCB. */ + ip = (_Unwind_Ptr) ue_header; + _Unwind_SetGR (context, 12, ip); + #else /* !__ARM_EABI_UNWINDER. */ /* Interface version check. */ if (version != 1) return _URC_FATAL_PHASE1_ERROR; + + foreign_exception = (exception_class != __objc_exception_class); + #endif /* Shortcut for phase 2 found handler for domestic exception. */ if (actions == (_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME) ! && !foreign_exception) { + #ifdef __ARM_EABI_UNWINDER__ + handler_switch_value = (int) ue_header->barrier_cache.bitpattern[1]; + landing_pad = (_Unwind_Ptr) ue_header->barrier_cache.bitpattern[3]; + #else handler_switch_value = xh->handlerSwitchValue; landing_pad = xh->landingPad; + #endif goto install_context; } *************** PERSONALITY_FUNCTION (int version, *** 186,197 **** /* If no LSDA, then there are no handlers or cleanups. */ if (! language_specific_data) ! return _URC_CONTINUE_UNWIND; /* Parse the LSDA header. */ p = parse_lsda_header (context, language_specific_data, &info); info.ttype_base = base_of_encoded_value (info.ttype_encoding, context); ! ip = _Unwind_GetIP (context) - 1; landing_pad = 0; action_record = 0; handler_switch_value = 0; --- 290,307 ---- /* If no LSDA, then there are no handlers or cleanups. */ if (! language_specific_data) ! CONTINUE_UNWINDING; /* Parse the LSDA header. */ p = parse_lsda_header (context, language_specific_data, &info); info.ttype_base = base_of_encoded_value (info.ttype_encoding, context); ! #ifdef HAVE_GETIPINFO ! ip = _Unwind_GetIPInfo (context, &ip_before_insn); ! #else ! ip = _Unwind_GetIP (context); ! #endif ! if (!ip_before_insn) ! --ip; landing_pad = 0; action_record = 0; handler_switch_value = 0; *************** PERSONALITY_FUNCTION (int version, *** 250,256 **** /* If ip is not present in the table, C++ would call terminate. */ /* ??? As with Java, it's perhaps better to tweek the LSDA to that no-action is mapped to no-entry. */ ! return _URC_CONTINUE_UNWIND; found_something: saw_cleanup = 0; --- 360,366 ---- /* If ip is not present in the table, C++ would call terminate. */ /* ??? As with Java, it's perhaps better to tweek the LSDA to that no-action is mapped to no-entry. */ ! CONTINUE_UNWINDING; found_something: saw_cleanup = 0; *************** PERSONALITY_FUNCTION (int version, *** 287,294 **** /* During forced unwinding, we only run cleanups. With a foreign exception class, we have no class info to match. */ ! else if ((actions & _UA_FORCE_UNWIND) ! || exception_class != __objc_exception_class) ; else if (ar_filter > 0) --- 397,403 ---- /* During forced unwinding, we only run cleanups. With a foreign exception class, we have no class info to match. */ ! else if ((actions & _UA_FORCE_UNWIND) || foreign_exception) ; else if (ar_filter > 0) *************** PERSONALITY_FUNCTION (int version, *** 318,335 **** } if (! saw_handler && ! saw_cleanup) ! return _URC_CONTINUE_UNWIND; if (actions & _UA_SEARCH_PHASE) { if (!saw_handler) ! return _URC_CONTINUE_UNWIND; /* For domestic exceptions, we cache data from phase 1 for phase 2. */ ! if (exception_class == __objc_exception_class) { xh->handlerSwitchValue = handler_switch_value; xh->landingPad = landing_pad; } return _URC_HANDLER_FOUND; } --- 427,450 ---- } if (! saw_handler && ! saw_cleanup) ! CONTINUE_UNWINDING; if (actions & _UA_SEARCH_PHASE) { if (!saw_handler) ! CONTINUE_UNWINDING; /* For domestic exceptions, we cache data from phase 1 for phase 2. */ ! if (!foreign_exception) { + #ifdef __ARM_EABI_UNWINDER__ + ue_header->barrier_cache.sp = _Unwind_GetGR (context, 13); + ue_header->barrier_cache.bitpattern[1] = (_uw) handler_switch_value; + ue_header->barrier_cache.bitpattern[3] = (_uw) landing_pad; + #else xh->handlerSwitchValue = handler_switch_value; xh->landingPad = landing_pad; + #endif } return _URC_HANDLER_FOUND; } *************** void *** 361,367 **** objc_exception_throw (id value) { struct ObjcException *header = calloc (1, sizeof (*header)); ! header->base.exception_class = __objc_exception_class; header->base.exception_cleanup = __objc_exception_cleanup; header->value = value; --- 476,484 ---- objc_exception_throw (id value) { struct ObjcException *header = calloc (1, sizeof (*header)); ! ! memcpy (&header->base.exception_class, &__objc_exception_class, ! sizeof (__objc_exception_class)); header->base.exception_cleanup = __objc_exception_cleanup; header->value = value; *************** objc_exception_throw (id value) *** 372,376 **** --- 489,497 ---- #endif /* Some sort of unwinding error. */ + if (_objc_unexpected_exception != 0) + { + (*_objc_unexpected_exception) (value); + } abort (); } diff -Nrcpad gcc-4.3.3/libobjc/gc.c gcc-4.4.0/libobjc/gc.c *** gcc-4.3.3/libobjc/gc.c Tue Jan 24 23:37:24 2006 --- gcc-4.4.0/libobjc/gc.c Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Basic data types for Objective C. ! Copyright (C) 1998, 2002, 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by Ovidiu Predescu. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,12 ---- /* Basic data types for Objective C. ! Copyright (C) 1998, 2002, 2004, 2005, 2006, 2009 Free Software Foundation, Inc. Contributed by Ovidiu Predescu. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 14,29 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #include "tconfig.h" #include "objc/objc.h" --- 14,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "tconfig.h" #include "objc/objc.h" diff -Nrcpad gcc-4.3.3/libobjc/hash.c gcc-4.4.0/libobjc/hash.c *** gcc-4.3.3/libobjc/hash.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/hash.c Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Hash tables for Objective C internal structures ! Copyright (C) 1993, 1996, 1997, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* Hash tables for Objective C internal structures ! Copyright (C) 1993, 1996, 1997, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #include "assert.h" --- 13,26 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "assert.h" diff -Nrcpad gcc-4.3.3/libobjc/init.c gcc-4.4.0/libobjc/init.c *** gcc-4.3.3/libobjc/init.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/init.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime initialization ! Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup +load support contributed by Ovidiu Predescu --- 1,6 ---- /* GNU Objective C Runtime initialization ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2009 ! Free Software Foundation, Inc. Contributed by Kresten Krab Thorup +load support contributed by Ovidiu Predescu *************** This file is part of GCC. *** 7,28 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ ! /* As a special exception, if you link this library with files compiled with ! GCC to produce an executable, this does not cause the resulting executable ! to be covered by the GNU General Public License. This exception does not ! however invalidate any other reasons why the executable file might be ! covered by the GNU General Public License. */ #include "objc/runtime.h" --- 8,28 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/libobjc.def gcc-4.4.0/libobjc/libobjc.def *** gcc-4.3.3/libobjc/libobjc.def Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/libobjc.def Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** ; GNU Objective C Runtime DLL Export Definitions ! ; Copyright (C) 1997 Free Software Foundation, Inc. ; Contributed by Scott Christley ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under the ; terms of the GNU General Public License as published by the Free Software ! ; Foundation; either version 2, or (at your option) any later version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS --- 1,12 ---- ; GNU Objective C Runtime DLL Export Definitions ! ; Copyright (C) 1997, 2001, 2003, 2005, 2009 Free Software Foundation, Inc. ; Contributed by Scott Christley ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under the ; terms of the GNU General Public License as published by the Free Software ! ; Foundation; either version 3, or (at your option) any later version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS *************** *** 14,22 **** ; details. ; ; You should have received a copy of the GNU General Public License along with ! ; GCC; see the file COPYING. If not, write to the Free Software ! ; Foundation, 51 Franklin Street, Fifth Floor, ! ; Boston, MA 02110-1301, USA. LIBRARY libobjc EXPORTS --- 14,20 ---- ; details. ; ; You should have received a copy of the GNU General Public License along with ! ; GCC; see the file COPYING3. If not, see . LIBRARY libobjc EXPORTS *************** objc_mutex_deallocate *** 38,43 **** --- 36,42 ---- objc_mutex_lock objc_mutex_trylock objc_mutex_unlock + _objc_unexpected_exception objc_thread_detach objc_thread_exit objc_thread_get_data diff -Nrcpad gcc-4.3.3/libobjc/libobjc_entry.c gcc-4.4.0/libobjc/libobjc_entry.c *** gcc-4.3.3/libobjc/libobjc_entry.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/libobjc_entry.c Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* GNU Objective C Runtime DLL Entry ! Copyright (C) 1997 Free Software Foundation, Inc. Contributed by Scott Christley This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,12 ---- /* GNU Objective C Runtime DLL Entry ! Copyright (C) 1997, 2009 Free Software Foundation, Inc. Contributed by Scott Christley This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 14,29 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to the Free ! Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include --- 14,28 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include diff -Nrcpad gcc-4.3.3/libobjc/linking.m gcc-4.4.0/libobjc/linking.m *** gcc-4.3.3/libobjc/linking.m Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/linking.m Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Force linking of classes required by Objective C runtime. ! Copyright (C) 1997 Free Software Foundation, Inc. Contributed by Ovidiu Predescu (ovidiu@net-community.com). This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,12 ---- /* Force linking of classes required by Objective C runtime. ! Copyright (C) 1997, 2009 Free Software Foundation, Inc. Contributed by Ovidiu Predescu (ovidiu@net-community.com). This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 14,29 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include --- 14,28 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include diff -Nrcpad gcc-4.3.3/libobjc/makefile.dos gcc-4.4.0/libobjc/makefile.dos *** gcc-4.3.3/libobjc/makefile.dos Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/makefile.dos Thu Apr 9 23:23:07 2009 *************** *** 1,21 **** # GNU Objective C Runtime Makefile for compiling with djgpp ! # Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc. # # This file is part of GCC. # # GCC is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software ! # Foundation; either version 2, or (at your option) any later version. # # GCC is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # ! # You should have received a copy of the GNU General Public License along with ! # GCC; see the file COPYING. If not, write to the Free Software ! # Foundation, 51 Franklin Street, Fifth Floor, ! # Boston, MA 02110-1301, USA. # This Makefile is configured for GnuMAKE --- 1,20 ---- # GNU Objective C Runtime Makefile for compiling with djgpp ! # Copyright (C) 1993, 1994, 1996, 2009 Free Software Foundation, Inc. # # This file is part of GCC. # # GCC is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software ! # Foundation; either version 3, or (at your option) any later version. # # GCC is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more # details. # ! # You should have received a copy of the GNU General Public License ! # along with GCC; see the file COPYING3. If not see ! # . # This Makefile is configured for GnuMAKE diff -Nrcpad gcc-4.3.3/libobjc/misc.c gcc-4.4.0/libobjc/misc.c *** gcc-4.3.3/libobjc/misc.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/misc.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Miscellaneous ! Copyright (C) 1993, 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup --- 1,5 ---- /* GNU Objective C Runtime Miscellaneous ! Copyright (C) 1993, 1994, 1995, 1996, 1997, 2002, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup *************** This file is part of GCC. *** 7,13 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 7,13 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 15,30 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to the Free ! Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #define __USE_FIXED_PROTOTYPES__ #include --- 15,29 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #define __USE_FIXED_PROTOTYPES__ #include diff -Nrcpad gcc-4.3.3/libobjc/nil_method.c gcc-4.4.0/libobjc/nil_method.c *** gcc-4.3.3/libobjc/nil_method.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/nil_method.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime nil receiver function ! Copyright (C) 1993, 1995, 1996, 2002 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ /* This is the nil method, the function that is called when the receiver of a method is nil */ --- 1,27 ---- /* GNU Objective C Runtime nil receiver function ! Copyright (C) 1993, 1995, 1996, 2002, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ /* This is the nil method, the function that is called when the receiver of a method is nil */ diff -Nrcpad gcc-4.3.3/libobjc/objc/NXConstStr.h gcc-4.4.0/libobjc/objc/NXConstStr.h *** gcc-4.3.3/libobjc/objc/NXConstStr.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/NXConstStr.h Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Interface for the NXConstantString class for Objective-C. ! Copyright (C) 1995, 2004 Free Software Foundation, Inc. Contributed by Pieter J. Schoenmakers This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,12 ---- /* Interface for the NXConstantString class for Objective-C. ! Copyright (C) 1995, 2004, 2009 Free Software Foundation, Inc. Contributed by Pieter J. Schoenmakers This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 14,29 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #ifndef __nxconstantstring_INCLUDE_GNU #define __nxconstantstring_INCLUDE_GNU --- 14,28 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ ! #ifndef __nxconstantstring_INCLUDE_GNU #define __nxconstantstring_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/Object.h gcc-4.4.0/libobjc/objc/Object.h *** gcc-4.3.3/libobjc/objc/Object.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/Object.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Interface for the Object class for Objective-C. ! Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,11 ---- /* Interface for the Object class for Objective-C. ! Copyright (C) 1993, 1994, 1995, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,28 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled - with GCC to produce an executable, this does not cause the resulting - executable to be covered by the GNU General Public License. This - exception does not however invalidate any other reasons why the - executable file might be covered by the GNU General Public License. */ #ifndef __object_INCLUDE_GNU #define __object_INCLUDE_GNU --- 13,27 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __object_INCLUDE_GNU #define __object_INCLUDE_GNU *************** extern "C" { *** 66,72 **** - self; - (unsigned int)hash; - (BOOL)isEqual:anObject; ! - (int)compare:anotherObject; /* Testing object type */ - (BOOL)isMetaClass; --- 65,71 ---- - self; - (unsigned int)hash; - (BOOL)isEqual:anObject; ! - (int)compare:(id)anotherObject; /* Testing object type */ - (BOOL)isMetaClass; diff -Nrcpad gcc-4.3.3/libobjc/objc/Protocol.h gcc-4.4.0/libobjc/objc/Protocol.h *** gcc-4.3.3/libobjc/objc/Protocol.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/Protocol.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Declare the class Protocol for Objective C programs. ! Copyright (C) 1993, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* Declare the class Protocol for Objective C programs. ! Copyright (C) 1993, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #ifndef __Protocol_INCLUDE_GNU #define __Protocol_INCLUDE_GNU --- 13,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __Protocol_INCLUDE_GNU #define __Protocol_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/encoding.h gcc-4.4.0/libobjc/objc/encoding.h *** gcc-4.3.3/libobjc/objc/encoding.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/encoding.h Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* Encoding of types for Objective C. ! Copyright (C) 1993, 1997, 2002, 2004 Free Software Foundation, Inc. Author: Kresten Krab Thorup --- 1,5 ---- /* Encoding of types for Objective C. ! Copyright (C) 1993, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. Author: Kresten Krab Thorup *************** This file is part of GCC. *** 7,13 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 7,13 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 15,30 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #ifndef __encoding_INCLUDE_GNU #define __encoding_INCLUDE_GNU --- 15,29 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __encoding_INCLUDE_GNU #define __encoding_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/hash.h gcc-4.4.0/libobjc/objc/hash.h *** gcc-4.3.3/libobjc/objc/hash.h Sun Nov 20 12:49:41 2005 --- gcc-4.4.0/libobjc/objc/hash.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Hash tables for Objective C method dispatch. ! Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* Hash tables for Objective C method dispatch. ! Copyright (C) 1993, 1995, 1996, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #ifndef __hash_INCLUDE_GNU --- 13,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __hash_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/objc-api.h gcc-4.4.0/libobjc/objc/objc-api.h *** gcc-4.3.3/libobjc/objc/objc-api.h Mon Apr 9 18:04:50 2007 --- gcc-4.4.0/libobjc/objc/objc-api.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* GNU Objective-C Runtime API. ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,12 ---- /* GNU Objective-C Runtime API. ! Copyright (C) 1993, 1995, 1996, 1997, 2001, 2002, 2003, 2004, 2005, ! 2007, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,28 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled - with GCC to produce an executable, this does not cause the resulting - executable to be covered by the GNU General Public License. This - exception does not however invalidate any other reasons why the - executable file might be covered by the GNU General Public License. */ #ifndef __objc_api_INCLUDE_GNU #define __objc_api_INCLUDE_GNU --- 14,28 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __objc_api_INCLUDE_GNU #define __objc_api_INCLUDE_GNU *************** objc_EXPORT void (*_objc_free)(void *); *** 430,435 **** --- 430,444 ---- objc_EXPORT IMP (*__objc_msg_forward)(SEL); objc_EXPORT IMP (*__objc_msg_forward2)(id, SEL); + /* + ** Hook for uncaught exceptions. This hook is called when an exception + ** is thrown and no valid exception handler is in place. The function + ** is expected never to return. If the function returns the result is + ** currently undefined. + */ + objc_EXPORT void (*_objc_unexpected_exception)(id); + + Method_t class_get_class_method(MetaClass _class, SEL aSel); Method_t class_get_instance_method(Class _class, SEL aSel); diff -Nrcpad gcc-4.3.3/libobjc/objc/objc-decls.h gcc-4.4.0/libobjc/objc/objc-decls.h *** gcc-4.3.3/libobjc/objc/objc-decls.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/objc-decls.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* GNU Objective-C Extern helpers for Win32. ! Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,11 ---- /* GNU Objective-C Extern helpers for Win32. ! Copyright (C) 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,28 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled - with GCC to produce an executable, this does not cause the resulting - executable to be covered by the GNU General Public License. This - exception does not however invalidate any other reasons why the - executable file might be covered by the GNU General Public License. */ #ifndef __objc_decls_INCLUDE_GNU #define __objc_decls_INCLUDE_GNU --- 13,27 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __objc_decls_INCLUDE_GNU #define __objc_decls_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/objc-list.h gcc-4.4.0/libobjc/objc/objc-list.h *** gcc-4.3.3/libobjc/objc/objc-list.h Sun Feb 18 11:55:53 2007 --- gcc-4.4.0/libobjc/objc/objc-list.h Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Generic single linked list to keep various information ! Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,12 ---- /* Generic single linked list to keep various information ! Copyright (C) 1993, 1994, 1996, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 14,29 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #ifndef __GNU_OBJC_LIST_H #define __GNU_OBJC_LIST_H --- 14,28 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __GNU_OBJC_LIST_H #define __GNU_OBJC_LIST_H diff -Nrcpad gcc-4.3.3/libobjc/objc/objc.h gcc-4.4.0/libobjc/objc/objc.h *** gcc-4.3.3/libobjc/objc/objc.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/objc.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Basic data types for Objective C. ! Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* Basic data types for Objective C. ! Copyright (C) 1993, 1995, 1996, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #ifndef __objc_INCLUDE_GNU #define __objc_INCLUDE_GNU --- 13,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __objc_INCLUDE_GNU #define __objc_INCLUDE_GNU *************** extern "C" { *** 39,44 **** --- 38,44 ---- #ifdef __vxworks typedef int BOOL; #else + #undef BOOL typedef unsigned char BOOL; #endif #define YES (BOOL)1 diff -Nrcpad gcc-4.3.3/libobjc/objc/runtime.h gcc-4.4.0/libobjc/objc/runtime.h *** gcc-4.3.3/libobjc/objc/runtime.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/runtime.h Thu Apr 9 23:23:07 2009 *************** *** 1,27 **** /* GNU Objective C Runtime internal declarations ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #ifndef __objc_runtime_INCLUDE_GNU #define __objc_runtime_INCLUDE_GNU --- 1,27 ---- /* GNU Objective C Runtime internal declarations ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __objc_runtime_INCLUDE_GNU #define __objc_runtime_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/sarray.h gcc-4.4.0/libobjc/objc/sarray.h *** gcc-4.3.3/libobjc/objc/sarray.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/sarray.h Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Sparse Arrays for Objective C dispatch tables ! Copyright (C) 1993, 1995, 1996, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,12 ---- /* Sparse Arrays for Objective C dispatch tables ! Copyright (C) 1993, 1995, 1996, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 14,29 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #ifndef __sarray_INCLUDE_GNU #define __sarray_INCLUDE_GNU --- 14,28 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __sarray_INCLUDE_GNU #define __sarray_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/thr.h gcc-4.4.0/libobjc/objc/thr.h *** gcc-4.3.3/libobjc/objc/thr.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/thr.h Thu Apr 9 23:23:07 2009 *************** *** 1,12 **** /* Thread and mutex controls for Objective C. ! Copyright (C) 1996, 1997, 2002, 2004 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,12 ---- /* Thread and mutex controls for Objective C. ! Copyright (C) 1996, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 14,39 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! GCC is free software; you can redistribute it and/or modify it under the ! terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. ! ! GCC is distributed in the hope that it will be useful, but WITHOUT ANY ! WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more ! details. ! ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ ! ! /* As a special exception, if you link this library with files ! compiled with GCC to produce an executable, this does not cause ! the resulting executable to be covered by the GNU General Public License. ! This exception does not however invalidate any other reasons why ! the executable file might be covered by the GNU General Public License. */ #ifndef __thread_INCLUDE_GNU #define __thread_INCLUDE_GNU --- 14,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ #ifndef __thread_INCLUDE_GNU #define __thread_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objc/typedstream.h gcc-4.4.0/libobjc/objc/typedstream.h *** gcc-4.3.3/libobjc/objc/typedstream.h Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objc/typedstream.h Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* GNU Objective-C Typed Streams interface. ! Copyright (C) 1993, 1995, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT --- 1,11 ---- /* GNU Objective-C Typed Streams interface. ! Copyright (C) 1993, 1995, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the ! Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT *************** ANY WARRANTY; without even the implied w *** 13,28 **** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled - with GCC to produce an executable, this does not cause the resulting - executable to be covered by the GNU General Public License. This - exception does not however invalidate any other reasons why the - executable file might be covered by the GNU General Public License. */ #ifndef __typedstream_INCLUDE_GNU #define __typedstream_INCLUDE_GNU --- 13,27 ---- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #ifndef __typedstream_INCLUDE_GNU #define __typedstream_INCLUDE_GNU diff -Nrcpad gcc-4.3.3/libobjc/objects.c gcc-4.4.0/libobjc/objects.c *** gcc-4.3.3/libobjc/objects.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/objects.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime class related functions ! Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "tconfig.h" /* include defs of bzero for target */ #include "objc/objc.h" --- 1,27 ---- /* GNU Objective C Runtime class related functions ! Copyright (C) 1993, 1995, 1996, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "tconfig.h" /* include defs of bzero for target */ #include "objc/objc.h" diff -Nrcpad gcc-4.3.3/libobjc/sarray.c gcc-4.4.0/libobjc/sarray.c *** gcc-4.3.3/libobjc/sarray.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/sarray.c Thu Apr 9 23:23:07 2009 *************** *** 1,11 **** /* Sparse Arrays for Objective C dispatch tables ! Copyright (C) 1993, 1995, 1996, 2002, 2004 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, --- 1,11 ---- /* Sparse Arrays for Objective C dispatch tables ! Copyright (C) 1993, 1995, 1996, 2002, 2004, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, *************** but WITHOUT ANY WARRANTY; without even t *** 13,28 **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files - compiled with GCC to produce an executable, this does not cause - the resulting executable to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ #include "objc/sarray.h" #include "objc/runtime.h" --- 13,27 ---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/sarray.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/selector.c gcc-4.4.0/libobjc/selector.c *** gcc-4.3.3/libobjc/selector.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/selector.c Thu Apr 9 23:23:07 2009 *************** *** 1,27 **** /* GNU Objective C Runtime selector related functions ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/runtime.h" #include "objc/sarray.h" --- 1,27 ---- /* GNU Objective C Runtime selector related functions ! Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/runtime.h" #include "objc/sarray.h" diff -Nrcpad gcc-4.3.3/libobjc/sendmsg.c gcc-4.4.0/libobjc/sendmsg.c *** gcc-4.3.3/libobjc/sendmsg.c Sun Apr 22 04:44:37 2007 --- gcc-4.4.0/libobjc/sendmsg.c Thu Apr 9 23:23:07 2009 *************** *** 1,29 **** /* GNU Objective C Runtime message lookup Copyright (C) 1993, 1995, 1996, 1997, 1998, ! 2001, 2002, 2004 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ /* FIXME: This file has no business including tm.h. */ /* FIXME: This should be using libffi instead of __builtin_apply --- 1,28 ---- /* GNU Objective C Runtime message lookup Copyright (C) 1993, 1995, 1996, 1997, 1998, ! 2001, 2002, 2004, 2009 Free Software Foundation, Inc. Contributed by Kresten Krab Thorup This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ /* FIXME: This file has no business including tm.h. */ /* FIXME: This should be using libffi instead of __builtin_apply *************** Boston, MA 02110-1301, USA. */ *** 41,46 **** --- 40,47 ---- #define gen_rtx(args...) 1 #define gen_rtx_MEM(args...) 1 #define gen_rtx_REG(args...) 1 + /* Alread defined in gcc/coretypes.h. So prevent double definition warning. */ + #undef rtx #define rtx int #if ! defined (STRUCT_VALUE) || STRUCT_VALUE == 0 *************** __objc_print_dtable_stats () *** 685,698 **** #endif printf ("arrays: %d = %ld bytes\n", narrays, ! (long) narrays * sizeof (struct sarray)); total += narrays * sizeof (struct sarray); printf ("buckets: %d = %ld bytes\n", nbuckets, ! (long) nbuckets * sizeof (struct sbucket)); total += nbuckets * sizeof (struct sbucket); printf ("idxtables: %d = %ld bytes\n", ! idxsize, (long) idxsize * sizeof (void *)); total += idxsize * sizeof (void *); printf ("-----------------------------------\n"); printf ("total: %d bytes\n", total); --- 686,699 ---- #endif printf ("arrays: %d = %ld bytes\n", narrays, ! (long) ((size_t) narrays * sizeof (struct sarray))); total += narrays * sizeof (struct sarray); printf ("buckets: %d = %ld bytes\n", nbuckets, ! (long) ((size_t) nbuckets * sizeof (struct sbucket))); total += nbuckets * sizeof (struct sbucket); printf ("idxtables: %d = %ld bytes\n", ! idxsize, (long) ((size_t) idxsize * sizeof (void *))); total += idxsize * sizeof (void *); printf ("-----------------------------------\n"); printf ("total: %d bytes\n", total); diff -Nrcpad gcc-4.3.3/libobjc/thr-dce.c gcc-4.4.0/libobjc/thr-dce.c *** gcc-4.3.3/libobjc/thr-dce.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-dce.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include "objc/thr.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include "objc/thr.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-decosf1.c gcc-4.4.0/libobjc/thr-decosf1.c *** gcc-4.3.3/libobjc/thr-decosf1.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-decosf1.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include "objc/thr.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include "objc/thr.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-irix.c gcc-4.4.0/libobjc/thr-irix.c *** gcc-4.3.3/libobjc/thr-irix.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-irix.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface - SGI IRIX Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include --- 1,27 ---- /* GNU Objective C Runtime Thread Interface - SGI IRIX Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include diff -Nrcpad gcc-4.3.3/libobjc/thr-mach.c gcc-4.4.0/libobjc/thr-mach.c *** gcc-4.3.3/libobjc/thr-mach.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-mach.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Modified for Mach threads by Bill Bumgarner Condition functions added by Mircea Oancea --- 1,5 ---- /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997, 2002, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Modified for Mach threads by Bill Bumgarner Condition functions added by Mircea Oancea *************** This file is part of GCC. *** 8,30 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include --- 8,29 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include diff -Nrcpad gcc-4.3.3/libobjc/thr-objc.c gcc-4.4.0/libobjc/thr-objc.c *** gcc-4.3.3/libobjc/thr-objc.c Tue Feb 21 19:13:21 2006 --- gcc-4.4.0/libobjc/thr-objc.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface. ! Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #define _LIBOBJC /* The line below is needed for declarations of functions such as --- 1,27 ---- /* GNU Objective C Runtime Thread Interface. ! Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #define _LIBOBJC /* The line below is needed for declarations of functions such as diff -Nrcpad gcc-4.3.3/libobjc/thr-os2.c gcc-4.4.0/libobjc/thr-os2.c *** gcc-4.3.3/libobjc/thr-os2.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-os2.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface - OS/2 emx Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Thomas Baier (baier@ci.tuwien.ac.at) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Interface - OS/2 emx Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Thomas Baier (baier@ci.tuwien.ac.at) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-posix.c gcc-4.4.0/libobjc/thr-posix.c *** gcc-4.3.3/libobjc/thr-posix.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-posix.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Thread Interface for POSIX compliant threads ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Modified for Linux/Pthreads by Kai-Uwe Sattler (kus@iti.cs.uni-magdeburg.de) Modified for posix compliance by Chris Ball (cball@fmco.com) --- 1,5 ---- /* GNU Objective C Runtime Thread Interface for POSIX compliant threads ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Modified for Linux/Pthreads by Kai-Uwe Sattler (kus@iti.cs.uni-magdeburg.de) Modified for posix compliance by Chris Ball (cball@fmco.com) *************** This file is part of GCC. *** 8,30 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 8,29 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-pthreads.c gcc-4.4.0/libobjc/thr-pthreads.c *** gcc-4.3.3/libobjc/thr-pthreads.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-pthreads.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Thread Implementation for PCThreads under GNU/Linux. ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Scott Christley Condition functions added by: Mircea Oancea --- 1,5 ---- /* GNU Objective C Runtime Thread Implementation for PCThreads under GNU/Linux. ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Scott Christley Condition functions added by: Mircea Oancea *************** This file is part of GCC. *** 7,29 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License ! along with GCC; see the file COPYING. If not, write to ! the Free Software Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include "objc/thr.h" --- 7,28 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include "objc/thr.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-rtems.c gcc-4.4.0/libobjc/thr-rtems.c *** gcc-4.3.3/libobjc/thr-rtems.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-rtems.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Renamed from thr-vxworks.c to thr-rtems.c by Ralf Corsepius (corsepiu@faw.uni-ulm.de) --- 1,5 ---- /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Renamed from thr-vxworks.c to thr-rtems.c by Ralf Corsepius (corsepiu@faw.uni-ulm.de) *************** This file is part of GCC. *** 8,30 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 8,29 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-single.c gcc-4.4.0/libobjc/thr-single.c *** gcc-4.3.3/libobjc/thr-single.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-single.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-solaris.c gcc-4.4.0/libobjc/thr-solaris.c *** gcc-4.3.3/libobjc/thr-solaris.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-solaris.c Thu Apr 9 23:23:07 2009 *************** *** 1,5 **** /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Conditions added by Mircea Oancea (mircea@first.elcom.pub.ro) --- 1,5 ---- /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) Conditions added by Mircea Oancea (mircea@first.elcom.pub.ro) *************** This file is part of GCC. *** 7,29 **** GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 7,28 ---- GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-vxworks.c gcc-4.4.0/libobjc/thr-vxworks.c *** gcc-4.3.3/libobjc/thr-vxworks.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-vxworks.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" diff -Nrcpad gcc-4.3.3/libobjc/thr-win32.c gcc-4.4.0/libobjc/thr-win32.c *** gcc-4.3.3/libobjc/thr-win32.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr-win32.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface - Win32 Implementation ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include "objc/thr.h" #include "objc/runtime.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Interface - Win32 Implementation ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include "objc/thr.h" #include "objc/runtime.h" *************** __objc_thread_detach(void (*func)(void * *** 70,76 **** arg, 0, &thread_id))) thread_id = 0; ! return (objc_thread_t)thread_id; } /* Set the current thread's priority. */ --- 69,75 ---- arg, 0, &thread_id))) thread_id = 0; ! return (objc_thread_t)(size_t) thread_id; } /* Set the current thread's priority. */ *************** __objc_thread_exit(void) *** 151,157 **** objc_thread_t __objc_thread_id(void) { ! return (objc_thread_t)GetCurrentThreadId(); } /* Sets the thread's local storage pointer. */ --- 150,156 ---- objc_thread_t __objc_thread_id(void) { ! return (objc_thread_t)(size_t) GetCurrentThreadId(); } /* Sets the thread's local storage pointer. */ diff -Nrcpad gcc-4.3.3/libobjc/thr.c gcc-4.4.0/libobjc/thr.c *** gcc-4.3.3/libobjc/thr.c Wed Aug 17 03:21:42 2005 --- gcc-4.4.0/libobjc/thr.c Thu Apr 9 23:23:07 2009 *************** *** 1,28 **** /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 2, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! You should have received a copy of the GNU General Public License along with ! GCC; see the file COPYING. If not, write to the Free Software ! Foundation, 51 Franklin Street, Fifth Floor, ! Boston, MA 02110-1301, USA. */ - /* As a special exception, if you link this library with files compiled with - GCC to produce an executable, this does not cause the resulting executable - to be covered by the GNU General Public License. This exception does not - however invalidate any other reasons why the executable file might be - covered by the GNU General Public License. */ #include #include "objc/runtime.h" --- 1,27 ---- /* GNU Objective C Runtime Thread Interface ! Copyright (C) 1996, 1997, 2009 Free Software Foundation, Inc. Contributed by Galen C. Hunt (gchunt@cs.rochester.edu) This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software ! Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ! Under Section 7 of GPL version 3, you are granted additional ! permissions described in the GCC Runtime Library Exception, version ! 3.1, as published by the Free Software Foundation. ! ! You should have received a copy of the GNU General Public License and ! a copy of the GCC Runtime Library Exception along with this program; ! see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ! . */ #include #include "objc/runtime.h" *************** __objc_thread_detach_function (struct __ *** 114,119 **** --- 113,121 ---- /* Exit the thread */ objc_thread_exit (); + + /* Make sure compiler detects no return. */ + __builtin_trap (); } /*