OSDN Git Service

PR ada/60703
[pf3gnuchains/gcc-fork.git] / libobjc / ChangeLog
index 6e70ac7..fc3b5c0 100644 (file)
@@ -1,3 +1,881 @@
+2013-04-11  Release Manager
+
+       * GCC 4.7.3 released.
+
+2012-09-20  Release Manager
+
+       * GCC 4.7.2 released.
+
+2012-06-14  Release Manager
+
+       * GCC 4.7.1 released.
+
+2012-03-22  Release Manager
+
+       * GCC 4.7.0 released.
+
+2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
+
+       * configure: Regenerate.
+
+2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Makefile.in (INCLUDES): Add -I$(MULTIBUILDTOP)../libgcc.
+       * configure.ac (target_thread_file, HAVE_GTHR_DEFAULT): Remove.
+       * configure: Regenerate.
+       * config.h.in: Regenerate.
+
+2011-10-17  Paul Brook  <paul@codesourcery.com>
+           Matthias Klose  <doko@ubuntu.com>
+
+       * exception.c (parse_lsda_header): hardcode ttype_encoding for older
+       ARM EABI toolchains.
+       (get_ttype_entry) Remove __ARM_EABI_UNWINDER__ variant.
+
+2011-10-09  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/49883
+       * init.c (__objc_exec_class): Work around a bug in clang's code
+       generation.  Clang sets the class->info field to values different
+       from 0x1 or 0x2 (the only allowed values in the traditional GNU
+       Objective-C runtime ABI) to store some additional information, but
+       this breaks backwards compatibility.  Wipe out all the bits in the
+       fields other than the first two upon loading a class.
+
+2011-10-09  Nicola Pero  <nicola.pero@meta-innovation.com>
+       
+       * class.c (objc_lookup_class): Added back for compatibility with
+       clang which seems to emit calls to it.
+
+2011-10-08  Richard Frith-Macdonald <rfm@gnu.org>
+            Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/50428
+       * sendmsg.c (__objc_send_initialize): If a class does not have an
+       +initialize method, search for an +initialize method in the
+       superclass and in the ancestor classes and execute the first one
+       that is found.  This makes the GNU runtime behave in the same way
+       as the Apple/NeXT runtime with respect to +initialize methods and
+       subclassing.
+
+2011-08-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/50002
+       * class.c (__objc_update_classes_with_methods): Iterate over meta
+       classes as well as normal classes when refreshing the method
+       implementations.  This fixes replacing class methods.
+
+2011-08-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * class.c (class_getSuperclass): Fixed to work with meta classes
+       still in construction too.
+
+2011-08-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * class.c (class_getSuperclass): Fixed typo in comment.
+       
+2011-08-06  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/49882
+       * class.c (class_getSuperclass): Return the superclass if the
+       class is in construction.
+       * objc/runtime.h (class_getSuperclass): Updated documentation.
+
+2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Makefile.in (INCLUDES): Search
+       $(srcdir)/$(MULTISRCTOP)../libgcc.
+
+2011-06-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/objc.h (__GNU_LIBOBJC__): Bumped to 20110608.
+
+2011-06-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * configure.ac (VERSION): Bumped to 4:0:0.
+       * configure (VERSION): Likewise.
+
+2011-06-08  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/README: Updated.
+       * objc-private/selector.h: Updated comments.
+       
+2011-06-07  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c (class_get_instance_method): Removed.
+       (class_get_class_method): Removed.
+       (objc_get_uninstalled_dtable): Removed.
+
+2011-06-07  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/module-abi-8.h (class_get_instance_size): Removed.
+       * objects.c (class_create_instance): Removed.
+       * error.c (__USE_FIXED_PROTOTYPES__): Removed.
+       * gc.c (__objc_generate_gc_type_description): Use
+       class_getInstanceSize() instead of class_get_instance_size().
+       * selector.c (sel_types_match): Made static.
+       (sel_get_typed_uid): Removed.
+       (sel_get_any_typed_uid): Removed.
+       (sel_get_name): Removed.
+       (sel_get_type): Removed.
+       (sel_register_name): Removed.
+       (sel_register_typed_name): Removed.
+       (sel_get_uid): Removed.
+
+2011-06-07  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * encoding.c (method_get_number_of_arguments): Removed.
+       (method_get_sizeof_arguments): Removed.
+
+2011-06-07  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * class.c (objc_next_class): Removed.
+       (class_pose_as): Removed.
+       (CLASSOF): Removed.
+       (class_table_replace): Removed.
+       (objc_lookup_class): Removed.
+
+2011-06-07  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       Removed the Traditional Objective-C runtime public API.
+       * Makefile.in (OBJC_DEPRECATED_H): Variable removed.
+       (install-headers): Do not create the objc/deprecated directory and
+       do not install the deprecated headers.
+       (OBJC_H): Removed encoding.h and objc-api.h.
+       * Object.m: Removed all methods with the exception of -class and
+       -isEqual:.  Updated includes.  ([-class]): Use Modern API.
+       * objc/Object.h: Do not include deprecated/Object.h.
+       * objc/deprecated/Object.h: Removed.
+       * linking.m (__objc_linking): Call [Object class] instead of
+       [Object name].
+       * Protocol.m: Removed all methods with the exception of -isEqual:.
+       Updated includes.
+       * objc/Protocol.h: Do not include deprecated/Protocol.h.
+       * objc/deprecated/Protocol.h: Removed.
+       * objc/deprecated/struct_objc_symtab.h: Removed.
+       * objc/deprecated/struct_objc_module.h: Removed.
+       * objc/deprecated/struct_objc_ivar.h: Removed.
+       * objc/deprecated/struct_objc_ivar_list.h: Removed.
+       * objc/deprecated/struct_objc_method.h: Removed.
+       * objc/deprecated/struct_objc_method_list.h: Removed.
+       * objc/deprecated/struct_objc_protocol_list.h: Removed.
+       * objc/deprecated/struct_objc_category.h: Removed.
+       * objc/deprecated/MetaClass.h: Removed.
+       * objc/deprecated/objc_msg_sendv.h: Removed.  
+       * objc/deprecated/README: Removed.
+       * objc/deprecated/struct_objc_class.h: Removed.
+       * objc/deprecated/struct_objc_protocol.h: Removed.
+       * objc/deprecated/struct_objc_selector.h: Removed.
+       * objc/encoding.h: Removed.
+       * objc/message.h (struct objc_super): Removed the definition for
+       the Traditional Objective-C runtime API.
+       * objc/objc.h: Do not include objc/objc-decls.h.
+       deprecated/struct_objc_selector.h, deprecated/MetaClass.h,
+       deprecated/struct_objc_class.h, deprecated/struct_objc_protocol.h
+       and deprecated/objc_msg_sendv.h.  Uncommented new definition of
+       Protocol *.
+       * objc/objc-api.h: Removed.
+       * objc/runtime.h: Updated comments.  Removed check to detect
+       concurrent usage of Traditional and Modern APIs.
+       * objc-private/module-abi-8.h: Always define struct objc_class and
+       struct objc_protocol.  (struct objc_protocol_list): Changed type
+       of 'list' argument from 'Protocol *' to 'struct objc_protocol *'.
+       (class_get_instance_size): Added.
+       * objc-private/protocols.h (__objc_protocols_add_protocol): Take a
+       'struct objc_protocol *' as argument, not a 'Protocol *'.
+       * objc-private/runtime.h: Updated comments.
+       * objc-private/selector.h (struct objc_selector, sel_eq): Added.
+       * class.c: Include objc-private/selector.h.
+       (objc_get_meta_class): Return a Class instead of a MetaClass.
+       * encoding.c (method_get_next_argument): Removed.
+       (method_get_first_argument): Removed.
+       (method_get_nth_argument): Removed.
+       * gc.c: Include objc/runtime.h instead of objc/encoding.h.
+       Include objc-private/module-abi-8.h and ctype.h.
+       * protocols.c (__objc_protocols_add_protocol): Take a 'struct
+       objc_protocl *' as argument, not a 'Protocol *'.
+       (class_addProtocol): Added casts to 'struct objc_protocol *' and
+       'Protocol *'.
+       (class_copyProtocolList): Likewise.
+       (protocol_conformsToProtocol): Likewise.
+       (protocol_copyProtocolList): Likewise.
+       * sarray.c: Include objc-private/module-abi-8.h.
+       * sendmsg.c (method_get_next_argument): Removed.
+       (method_get_first_argument): Removed.
+       (method_get_nth_argument): Removed.
+       (objc_msg_sendv): Removed.
+       (arglist_t, retval_t): New.  (class_get_class_method): Take a
+       'Class', not 'MetaClass', argument.
+       * thr.c: Include module-abi-8.h.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Removed struct_objc_static_instances.h
+       and objc_get_uninstalled_dtable.h.
+       * objc/deprecated/struct_objc_static_instances.h: Removed.
+       * objc/deprecated/objc_get_uninstalled_dtable.h: Removed.       
+       * objc/objc-api.h: Do not include deprecated/objc_static_instances.h
+       and deprecated/objc_get_uninstalled_dtable.h.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Removed objc_object_alloc.h.
+       * objc/deprecated/objc_object_alloc.h: Removed.
+       * objc/objc-api.h: Do not include deprecated/objc_object_alloc.h.
+       * objects.c (_objc_object_alloc, _objc_object_dispose,
+       _objc_object_copy): Removed.
+       * libobjc.def (__objc_object_alloc, __objc_object_copy,
+       __objc_object_dispose): Removed.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Removed METHOD_NULL.h.
+       * objc/objc-api.h: Do not include deprecated/METHOD_NULL.h.
+       * objc/deprecated/METHOD_NULL.h: Removed.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Removed objc_valloc.h,
+       objc_malloc.h and objc_unexpected_exception.h.
+       (exception.lo): Do not use -Wno-deprecated-declarations.
+       (exception_gc.lo): Likewise.
+       * objc/objc-api.h: Do not include deprecated/objc_valloc.h,
+       deprecated/objc_malloc.h and
+       deprecated/objc_unexpected_exception.h.
+       * objc/deprecated/objc_valloc.h: Removed.
+       * objc/deprecated/objc_malloc.h: Removed.
+       * objc/deprecated/objc_unexpected_exception.h: Removed.
+       * exception.c (_objc_unexpected_exception): Removed.
+       (objc_exception_throw): Do not check for
+       _objc_unexpected_exception.
+       * memory.c (objc_valloc, _objc_malloc, _objc_atomic_malloc,
+       _objc_valloc, _objc_realloc, _objc_calloc, _objc_free): Removed.        
+       * libobjc.def (_objc_unexpected_exception, objc_valloc): Removed.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/objc.h: Do not include deprecated/STR.h.
+       * objc/deprecated/STR.h: Removed.
+       * Makefile.in (OBJC_DEPRECATED_H): removed STR.h.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_H): Removed hash.h and sarray.h.
+       (OBJC_DEPRECATED_H): Likewise.
+       * libobjc.def (objc_hash_new, objc_hash_delete, objc_hash_add,
+       objc_hash_remove, objc_hash_next, objc_hash_value_for_key,
+       objc_hash_is_key_in_hash, hash_add, hash_delete, hash_new,
+       hash_next, hash_remove, hash_value_for_key, hash_is_key_in_hash,
+       sarray_at_put, sarray_at_put_safe, sarray_free, sarray_lazy_copy,
+       sarray_new, sarray_realloc, sarray_remove_garbage): Removed.
+       * objc/sarray.h: Removed.
+       * objc/hash.h: Removed.
+       * objc/deprecated/sarray.h: Removed.
+       * objc/deprecated/hash.h: Removed.
+       * objc/Object.h: Do not include objc/deprecated/hash.h
+       * Object.m: Include string.h.
+       * objc/objc-api.h: Do not include objc/deprecated/hash.h.
+       * objc-private/common.h (GNU_LIBOBJC_COMPILING_LIBOBJC_ITSELF):
+       Removed.
+
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Object.m ([-forward::]): Removed.
+       * objc/deprecated/Object.h ([-forward::]): Removed.
+       * sendmsg.c (__objc_forward): Updated comments.
+       
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_H): Removed objc-list.h.
+       (OBJC_DEPRECATED_H): Removed objc-list.h.
+       * objc/objc-list.h: File removed.
+       * objc/deprecated/objc-list.h: File removed.
+
+2011-06-03  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_H): Removed typedstream.h.
+       (OBJC_DEPRECATED_H): Removed typedstream.h.
+       (C_SOURCE_FILES): Removed archive.c.
+       (Object.lo): Rule removed.
+       (Object_gc.lo): Likewise.
+       (archive.lo): Likewise.
+       (archive_gc.lo): Likewise.
+       * objc/deprecated/Object.h ([+streamVersion:], [-read], [-write],
+       [-awake]): Removed.
+       Do not include deprecated/typedstream.h.
+       * Object.m: Removed the same methods.
+       * archive.c: File removed.
+       * objc/typedstream.h: File removed.
+       * objc/deprecated/typedstream.h: File removed.
+       * libobjc.def (__objc_read_nbyte_uint, __objc_read_nbyte_ulong,
+       __objc_write_class, __objc_write_object, __objc_write_selector,
+       objc_close_typed_stream, objc_end_of_typed_stream,
+       objc_flush_typed_stream, objc_get_stream_class_version,
+       objc_open_typed_stream, objc_open_typed_stream_for_file,
+       objc_read_array, objc_read_char, objc_read_int, objc_read_long,
+       objc_read_object, objc_read_selector, objc_read_short,
+       objc_read_string, objc_read_type, objc_read_types,
+       objc_read_unsigned_char, objc_read_unsigned_int,
+       objc_read_unsigned_long, objc_read_unsigned_short,
+       objc_write_array, objc_write_char, objc_write_int,
+       objc_write_long, objc_write_object, objc_write_object_reference,
+       objc_write_root_object, objc_write_selector, objc_write_short,
+       objc_write_string, objc_write_string_atomic, objc_write_type,
+       objc_write_types, objc_write_unsigned_char,
+       objc_write_unsigned_int, objc_write_unsigned_long,
+       objc_write_unsigned_short): Removed.
+       
+2011-06-02  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Removed objc_error.h.
+       * objc/deprecated/objc_error.h: Removed.
+       * objc/objc-api.h: Do not include deprecated/objc_error.h.
+       * libobjc.def (objc_error, objc_verror): Removed.
+       * error.c (_objc_error_handler, objc_error, objc_verror,
+       objc_set_error_handler): Removed.
+       * Object.m ([-error:], [-perform:], [-perform:with:],
+       [-perform:with:with], [-subclassResponsibility:],
+       [-notImplemented:], [-shouldNotImplement:], [-doesNotRecognize:]):
+       Removed.
+       * objc/deprecated/Object.h: Removed the same methods.
+       * sendmsg.c (__objc_forward): Do not try to invoke the "error:"
+       method after trying to invoke the "doesNotRecognize:" method.
+       
+2011-05-26  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c: Reindented part of the file.  No non-trivial changes
+       in code.
+
+2011-05-26  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c (__objc_install_dtable_for_class): Use objc_getClass,
+       not objc_lookup_class.
+
+2011-05-25  Richard Frith-Macdonald <rfm@gnu.org>
+           David Ayers  <ayers@fsfe.org>
+
+       PR libobjc/38307
+       * sendmsg.c: Include objc/hash.h.
+       (get_implementation): New function, mostly with code from get_imp
+       updated to support the new +initialize dispatch table logic.
+       (get_imp): Use get_implementation.
+       (__objc_responds_to): Updated to support the new +initialize
+       dispatch table logic.
+       (class_respondsToSelector): Likewise.
+       (objc_msg_lookup): Use get_implementation.
+       (__objc_init_install_dtable): Removed.
+       (__objc_install_methods_in_dtable): Updated arguments.
+       (__objc_install_dispatch_table_for_class): Renamed to
+       __objc_install_dtable_for_class and updated to support the new
+       +initialize dispatch table logic.
+       (__objc_update_dispatch_table_for_class): Updated to support the
+       new +initialize dispatch table logic.
+       (__objc_forward): Call get_implementation instead of get_imp.
+       (prepared_dtable_table): New.
+       (__objc_prepare_dtable_for_class): New. 
+       (__objc_prepared_dtable_for_class): New.
+       (__objc_get_prepared_imp): New.
+       (__objc_install_prepared_dtable_for_class): New.
+       
+2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/48177
+       * selector.c (__sel_register_typed_name): Use sel_types_match()
+       instead of strcmp() to compare selector types (Suggestion by
+       Richard Frith-Macdonald <rfm@gnu.org>).
+
+2011-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR libobjc/32037
+       * Makefile.in (OBJC_GCFLAGS): Move ...
+       * configure.ac (enable_objc_gc): ... here.
+       Add $(libsuffix) to OBJC_BOEHM_GC.
+       * configure: Regenerate.
+
+2011-02-28  Nicola Pero  <nicola.pero@meta-innovation.com>
+       
+       * selector.c (sel_getTypedSelector): Return NULL if there are
+       multiple selectors with conflicting types.
+       * objc/runtime.h (sel_getTypedSelector): Updated documentation.
+       
+2011-02-28  Richard Frith-Macdonald <rfm@gnu.org>
+
+       PR libobjc/47922
+       * gc.c (class_ivar_set_gcinvisible): Use _C_GCINVISIBLE instead of
+       a hardcoded "!".
+
+2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * configure: Regenerate.
+
+2010-12-26  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c (create_tree_of_subclasses_inherited_from): Use
+       class_superclass_of_class instead of assuming a class is
+       unresolved when it could be resolved.  Tidied up assignment and
+       check.
+       (__objc_tree_insert_class): Enhanced DEBUG_PRINTF.
+       (objc_tree_insert_class): Tidied up loop; return immediately upon
+       inserting a class.
+       (__objc_exec_class): Do not set __objc_class_tree_list.
+       
+2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * selector.c (sel_getTypedSelector): Return NULL if given a NULL
+       argument.
+       (sel_registerTypedName): Same.
+       (sel_registerName): Same.
+       * objc/runtime.h: Updated documentation.
+       
+2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/runtime.h (class_addIvar): Updated documentation.  The
+       alignment is actually the log_2 of the alignment in bytes.
+       * ivars.c (class_addIvar): Corresponding change to the
+       implementation.
+       
+2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/runtime.h (sel_getType): Renamed to sel_getTypeEncoding to
+       be consistent with method_getTypeEncoding and
+       ivar_getTypeEncoding.
+       (sel_copyTypedSelectorList, sel_getTypedSelector): New.
+       * selector.c (sel_getType): Renamed to sel_getTypeEncoding.
+       (sel_copyTypedSelectorList, sel_getTypedSelector): New.
+       (sel_get_type): Updated call to sel_getType.
+       
+2010-12-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/runtime.h (class_conformsToProtocol,
+       class_copyProtocolList): Updated documentation.
+
+2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c (create_tree_of_subclasses_inherited_from): Updated
+       DEBUG_PRINTF messages.
+       (__objc_tree_insert_class): Same.
+       (__objc_send_load_using_method_list): Same.
+       (__objc_send_load): Same.
+       (__objc_exec_class): Same.  In particular, do not print the module
+       name since it is no longer used.
+       * sendmsg.c (__objc_send_initialize): Added DEBUG_PRINTFs for
+       tracking +initialize calls.
+       (__objc_update_dispatch_table_for_class): Added DEBUG_PRINTFs for
+       tracking updates of dispatch tables.
+       (__objc_install_dispatch_table_for_class): Same.
+       
+2010-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * Makefile.in (libobjc$(libsuffix).la): Link with -Wc,-shared-libgcc.
+       (libobjc_gc$(libsuffix).la): Likewise.
+
+2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c (class_addMethod): Return NO if the method already
+       exists in the class.
+
+2010-12-22  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c (duplicate_classes): New.
+       (__objc_exec_class): Initialize duplicate_classes.
+       (__objc_create_classes_tree): Ignore classes in the
+       duplicate_classes table.
+       (__objc_call_load_callback): Same.
+       (__objc_init_class): If a duplicate class is found, add it to
+       duplicate_classes instead of aborting.  Return YES if the class is
+       not a duplicate, and NO if it is.
+       * objc-private/runtime.h (__objc_init_class): Updated prototype.
+
+2010-12-22  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/objc-list.h: Reindented file.  No code changes.
+       * objc-private/sarray.h: Same change.
+
+2010-12-22  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/accessors.h: Removed 'extern "C"' guards.  This
+       file is never compiled with C++.
+       * objc-private/hash.h: Same change.
+       * objc-private/objc-list.h: Same change.
+       * objc-private/objc-sync.h: Same change.
+       * objc-private/protocols.h: Same change.
+       * objc-private/runtime.h: Same change.
+       * objc-private/sarray.h: Same change.
+       * objc-private/selector.h: Same change.
+
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/18764
+       * class.c (__objc_add_class_to_hash): Return YES if the class was
+       added, and NO if it already existed.
+       * init.c (__objc_init_class): If __objc_add_class_to_hash returns
+       NO, then abort the program with an error message.
+       * objc-private/runtime.h (__objc_add_class_to_hash): Updated
+       declaration.
+
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>     
+
+       * init.c (_objc_load_callback): Initialize with 0.
+       (__objc_call_callback): Renamed to __objc_call_load_callback.
+       Check _objc_load_callback only once, and if it is not set, return
+       immediately.
+       (objc_send_load): Updated call to __objc_call_callback.
+       
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/16110
+       * init.c (__objc_send_message_in_list): Renamed to
+       __objc_send_load_using_method_list.  Do not take an 'op' argument.
+       Register the 'load' selector if needed.
+       (__objc_send_load): Do not register the 'load' selector.  Updated
+       call to __objc_send_message_in_list.
+       (__objc_create_classes_tree): Add the class of any claimed
+       category that was loaded in the module to the list of classes for
+       which we try to execute +load.
+       
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/common.h: When DEBUG is defined, include <stdio.h>.
+       Updated comments.
+       * init.c (__objc_tree_insert_class): Use %p, not %x, when printing
+       a pointer using DEBUG_PRINTF.
+       
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/45953
+       * selector.c (__sel_register_typed_name): When registering a new
+       selector with the same name as an existing one, reuse the existing
+       name string.  Also updated types, casts and comments in the whole
+       function.
+
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/module-abi-8.h (struct objc_symtab): Declare 'refs'
+       to be 'struct objc_selector *' and not 'SEL'.
+       * init.c (__objc_exec_class): Call
+       __objc_register_selectors_from_module instead of iterating over
+       each selector and calling __sel_register_typed_name for each.
+       * objc-private/selector.h: Declare
+       __objc_register_selectors_from_module instead of
+       __sel_register_typed_name.
+       * selector.c (__objc_register_selectors_from_module): New.
+       (__sel_register_typed_name): Made static.
+       
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * linking.m: Do not include objc/NXConstStr.h.
+
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+       
+       * objc-private/runtime.h (DEBUG_PRINTF): Moved from here ...
+       * objc-private/common.h (DEBUG_PRINTF): To here.
+       * hash.c: Do not include objc-private/runtime.h and objc/thr.h.
+       
+2010-12-21  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * hash.c: Tidied up comments and indentation.  No code changes.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       PR libobjc/47012
+       * accessors.m (objc_getProperty): If not atomic, do not
+       retain/autorelease the returned value.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/runtime.h (__objc_selector_max_index,
+       __objc_init_selector_tables, __objc_register_selectors_from_class,
+       __objc_register_selectors_from_list,
+       __objc_register_selectors_from_description_list): Moved to ...
+       * objc-private/selector.h: ... here.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/runtime.h (__objc_class_links_resolved): Removed.
+       (__objc_print_dtable_stats): Removed.
+       (__sel_register_typed_name): Removed.
+       * sendmsg.c (__objc_print_dtable_stats): Use 'void' as argument.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c (__objc_exec_class): Call __objc_resolve_class_links (),
+       if appropriate, after loading the module.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c (method_setImplementation): Do not declare.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/message.h: Updated comments.
+       * objc/runtime.h: Updated comments.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * class.c (objc_lookupClass): Renamed to objc_lookUpClass.
+       * protocols.c: Updated all calls to objc_lookupClass to call
+       objc_lookUpClass instead.
+       * sendmsg.c (objc_lookupClass): Do not declare.
+       (get_imp): Update call to objc_lookupClass to call
+       objc_lookUpClass instead.
+       * objc/runtime.h (objc_lookupClass): Renamed to objc_lookUpClass.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/runtime.h (class_ivar_set_gcinvisible): Declare.
+       * sendmsg.c (_CLS_IN_CONSTRUCTION, CLS_IS_IN_CONSTRUCTION): Do not
+       define.  Updated comments.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/encoding.h: Updated comments.
+       * objc/runtime.h: Updated comments.
+       (objc_setGetUnknownClassHandler): Mark with objc_EXPORT.
+       (objc_sizeof_type): Same.
+       (objc_alignof_type): Same.
+       (objc_aligned_size): Same.
+       (objc_promoted_size): Same.
+       (objc_skip_type_qualifiers): Same.
+       (objc_skip_typespec): Same.
+       (objc_skip_offset): Same.
+       (objc_skip_argspec): Same.
+       (objc_get_type_qualifiers): Same.
+       (objc_layout_structure): Same.
+       (objc_layout_structure_next_member): Same.
+       (objc_layout_finish_structure): Same.
+       (objc_layout_structure_get_info): Same.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c: Updated comments.
+       * objc/objc-api.h: Updated comments.
+       * objc/runtime.h (_objc_load_callback): Declare.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/Object.h: Include deprecated/typedstream.h and
+       deprecated/hash.h instead of typedstream.h.  Updated comments.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_DEPRECATED_H): Added objc_msg_sendv.h.
+       * objc/deprecated/objc_msg_sendv.h: New.
+       * objc/message.h: Do not define retval_t, apply_t, arglist,
+       arglist_t, objc_msg_sendv, now in
+       objc/deprecated/objc_msg_sendv.h.
+       * objc/objc.h: Do not include message.h; include
+       objc/deprecated/objc_msg_sendv.h instead.  Tidied up comments.
+       * sendmsg.c: Include objc/message.h.
+       * thr.c: Include objc/message.h.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/objc-exception.h: Include objc-decls.h.  Mark all
+       functions with objc_EXPORT.
+       * objc/objc-sync.h: Same change.
+
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Protocol.m: Moved all methods, with the exception of -isEqual:,
+       into the 'Deprecated' category.
+       * objc/Protocol.h: Removed all methods, moved to
+       objc/deprecated/Protocol.h.  Include objc/deprecated/Protocol.h.
+       * objc/deprecated/Protocol.h: New.
+       * Makefile.in (OBJC_DEPRECATED_H): Added Protocol.h.
+       
+2010-12-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c: Include objc-private/selector.h.  Do not declare
+       __sel_register_typed_name.
+       * objc-private/selector.h (__sel_register_typed_name): Declare.
+       * selector.c: Include objc-private/selector.h.
+       
+2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * class.c: Tidied up comments and indentation.  No code changes.
+       * error.c: Same.
+       * exception.c: Same.
+       * init.c: Same.
+       * ivars.c: Same.
+       * memory.c: Same.
+       * objc-foreach.c: Same.
+       * objc-sync.c: Same.
+       * objects.c: Same.
+       * protocols.c: Same.
+       * sarray.c: Same.
+       * thr.c: Same.
+
+2010-12-17  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * init.c: Include objc/runtime.h and objc-private/module-abi-8.h
+       instead of objc/objc-api.h.
+       (init_check_module_version): Take a 'struct objc_module *'
+       argument instead of 'Module_t'.  Use 'struct objc_module *'
+       instead of 'Module_t'.
+       (__objc_created_classes_tree): Take a 'struct objc_module *'
+       argument instead of 'Module_t'; use 'struct objc_symtab *' instead
+       of 'Symtab_t'.
+       (__objc_call_callback): Take a 'struct objc_module *' argument
+       instead of 'Module_t'; use 'struct objc_symtab *' instead of
+       'Symtab_t' and 'struct objc_category *' instead of 'Category_t'.
+       (_objc_load_callback): Take a 'struct objc_category *' argument
+       instead of 'Category *'.
+       (class_superclass_of_class): Use objc_getClass() instead of
+       objc_lookup_class().
+       (create_tree_of_subclasses_inherited_from): Same change (also, use
+       an explicit 'if' instead of '?').
+       (objc_init_statics): Same change.
+       (objc_send_load): Same change.
+       (__objc_init_protocol): same change.
+       (__objc_send_message_in_list): Take a 'struct objc_method_list *'
+       argument instead of 'MethodList_t'.  Use 'struct objc_method *'
+       instead of 'Method_t'.
+       (__objc_send_load): Use 'struct objc_method_list *' instead of
+       'MethodList_t'.  Use sel_registerName() instead of
+       sel_register_name().
+       (__objc_exec_class): Take a 'struct objc_module *' argument
+       instead of 'Module_t'.  Use 'struct objc_symtab *' instead of
+       'Symtab_t'.  Use objc_getClass() instead of objc_lookup_class().
+       Use 'struct objc_category *' instead of 'Category_t'.
+       
+2010-12-16  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c: Include objc/runtime.h instead of objc/objc-api.h.
+       Include objc-private/module-abi-8.h and objc-private/selector.h
+       instead of objc/encoding.h.
+       (objc_msg_lookup_super): Use super->super_class instead of
+       super->class.
+       (method_get_first_argument, method_get_next_argument): Declare
+       locally.
+       (class_get_instance_method): Declare before using.
+       (objc_msg_sendv): Use 'struct objc_method' instead of 'Method'.
+       (__objc_init_dispatch_tables, __objc_send_initialize): Use
+       sel_registerName() instead of sel_register_name().
+       (__objc_forward): Use sel_getName() instead of sel_get_name().
+       (objc_get_uninstalled_dtable): Use 'void' as argument.
+       * objc-private/selector.h: New.
+
+2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/message.h (objc_super): When using the modern API, do not
+       define Super and Super_t, and always use 'super_class' for the
+       super class field.      
+       (objc_msg_lookup_super): Updated prototype to use 'struct
+       objc_super *' instead of 'Super_t'.
+       * sendmsg.c (objc_msg_lookup_super): Updated prototype to use
+       'struct objc_super *' instead of 'Super_t'.
+
+2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/message.h: Update comments, reindented code and moved
+       deprecated types and functions at the end of the file.  No code
+       changes.
+
+2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * ivars.c (class_addIvar): Use the 'size' argument instead of
+       trying to calculate it using objc_sizeof_type().
+       * objc/runtime.h (class_addIvar): Updated comments.
+       
+2010-12-15  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c: Reindented some code and tidied up comments.  No
+       actual code changes.
+       
+2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/Object.h: Moved all the methods, with the exception of
+       -class and -isEqual:, into ...
+       * objc/deprecated/Object.h: here.
+       * Object.m: Moved all the methods, with the exception of -class
+       and -isEqual: into the 'Deprecated' category.
+
+2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objects.c (object_copy): Do not #undef as we are no longer
+       including objc/objc-api.h.
+       * selector.c: Include objc/runtime.h and
+       objc-private/module-abi-8.h.  Do not include objc/objc-api.h and
+       objc/encoding.h.  Updated
+       (__objc_register_selectors_from_class): Use struct
+       objc_method_list * instead of MethodList_t.
+       (__objc_register_selectors_from_list): Use Method instead of
+       Method_t.
+       (struct objc_method_description_list): Do not define here.
+       (__objc_register_instance_methods_to_class): Use struct
+       objc_method_list * instead of MethodList_t and Method instead of
+       Method_t.
+       
+2010-12-14  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * selector.c: Reindented some code and tidied up comments.  No
+       actual code changes.
+
+2010-12-13  Iain Sandoe  <iains@gcc.gnu.org>
+
+       * encoding.c (_darwin_rs6000_special_round_type_align): New.
+       (darwin_rs6000_special_round_type_align): Adjust to use new routine.
+
+2010-12-11  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * sendmsg.c (selector_resolveClassMethod): New.
+       (selector_resolveInstanceMethod): New.
+       (__objc_resolve_class_method): New.
+       (__objc_resolve_instance_method): New.
+       (get_imp): Call __objc_resolve_class_method or
+       __objc_resolve_instance_method at the appropriate time.
+       (objc_msg_lookup): Same.
+       (class_getClassMethod): Same.   
+       (class_getInstanceMethod): Same.
+       (__objc_init_dispatch_tables): Initialize
+       selector_resolveClassMethod and selector_resolveInstanceMethod.
+       * objc/runtime.h: Updated documentation of class_getClassMethod,
+       class_getInstanceMethod and class_getMethodImplementation.
+       
+2010-12-11  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-private/module-abi-8.h (struct objc_symtab): Updated
+       description of sel_ref_cnt and refs.
+       * objc/deprecated/struct_objc_symtab.h (objc_symtab): Same change.
+       
+2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       PR target/40125
+       PR lto/46695
+       * configure.ac (extra_ldflags_libobjc): Invoke ACX_LT_HOST_FLAGS.
+       * Makefile.in (lt_host_flags): Import AC_SUBST'd value.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2010-12-03  Matthias Klose  <doko@ubuntu.com> 
+
+       * configure.ac (VERSION): Bump the version to 3:0:0.
+       * configure: Regenerate.
+
+2010-11-23  Richard Frith-Macdonald <rfm@gnu.org>
+
+       * sendmsg.c (get_imp): Fixed call to __objc_get_forward_imp to
+       pass nil as the receiver since we don't know the receiver at this
+       point.
+       
+2010-11-18  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * ivars.c: Include stdlib.h.
+       * protocols.c: Same change.
+
+2010-10-24  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * Makefile.in (OBJC_SOURCE_FILES): Added accessors.m.
+       * accessors.m: New.
+       * init.c: Include objc-private/accessors.h.
+       (__objc_exec_class): Call __objc_accessors_init.
+       * objc-private/accessors.h: New.
+
+2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc/message.h: Moved initial includes outside of extern "C".
+       * objc/runtime.h: Add extern "C" for Objective-C++.
+
 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * init.c (objc_send_load): Do not wait for NXConstantString to be
@@ -6,7 +884,7 @@
        as is the case for almost all users.
        * linking.m (__objc_linking): Do not try to forcefully link in
        NXConstantString.
-       
+
 2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc/runtime.h: Updated comments.
        -Wno-deprecated-declarations when compiling.
        (OBJC_H): Added objc-exception.h
 
-2010-09-08  Nicola Pero  <nicola@nicola.brainstorm.co.uk>
+2010-09-08  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc/typedstream.h: Deprecate all functions in the file.  This
        file is obsolete.