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
	registered before executing +load.  There is no point if
	-fconstant-string-class=xxx is used when compiling all modules,
	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.
	(class_addMethod): New.
	(class_addIvar): New.
	(class_replaceMethod): New.
	(objc_allocateClassPair): New.
	(objc_registerClassPair): New.
	(objc_disposeClassPair): New.
	* class.c (objc_allocateClassPair): New.
	(objc_registerClassPair): New.
	(objc_disposeClassPair): New.
	(class_getSuperclass): Return Nil if a class is in construction.
	* init.c (__objc_exec_class): Call __objc_init_class.
	(__objc_init_class): New.
	* ivars.c (class_copyIvarList): Return NULL if class is in
	construction.  Do not lock the runtime mutex.
	(class_getInstanceVariable): Return NULL if class is in
	construction.  Do not lock the runtime mutex.
	(class_addIvar): New.
	* sendmsg.c (class_addMethod): New.
	(class_replaceMethod): New.
	* objc-private/module-abi-8.h (__CLS_SETNOTINFO): New.
	(_CLS_IN_CONSTRUCTION): New.
	(CLS_IS_IN_CONSTRUCTION): New.
	(CLS_SET_IN_CONSTRUCTION): New.
	(CLS_SET_NOT_IN_CONSTRUCTION): New.
	* objc-private/runtime.h (__objc_init_class): New.

2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>

	* class.c (class_getSuperclass): Call __objc_resolve_class_links
	if the class is not resolved yet.
	* ivars.c (class_getInstanceVariable): Use class_getSuperclass.
	
2010-10-16  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc/runtime.h (class_getIvarLayout): New.
	(class_getWeakIvarLayout): New.
	(class_setIvarLayout): New.
	(class_setWeakIvarLayout): New.
	* ivars.c (class_getIvarLayout): New.
	(class_getWeakIvarLayout): New.
	(class_setIvarLayout): New.
	(class_setWeakIvarLayout): New.	

2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>
	
	* objc/runtime.h (class_copyPropertyList): New.
	(class_getProperty): New.
	(property_getAttributes): New.
	(property_getName): New.
	* ivars.c (class_copyPropertyList): New.
	(class_getProperty): New.
	(property_getAttributes): New.
	(property_getName): New.
	
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* objc-private/runtime.h (__objc_update_classes_with_methods): New.
	* class.c (__objc_update_classes_with_methods): New.
	(objc_getClassList): Do not lock the class lock.
	* methods.c (method_exchangeImplementations): New.
	(method_setImplementation): New.
	* objc/runtime.h (method_setImplementation): New.
	(method_exchangeImplementations): New.
	
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Protocol.m: Include objc/runtime.h and
	objc-private/module-abi-8.h instead of objc/objc-api.h.  Do not
	repeat Protocol's instance variables.
	(struct objc_method_description_list): Do not define here.
	([-conformsTo:]): Reimplemented on top of protocol_conformsTo().
	([descriptionForInstanceMethod:]): Use sel_isEqual() to compare
	selectors directly instead of getting names and then using strcmp.
	([descriptionForClassMethod:]): Same change.
	([-isEqual:]): Reimplemented on top of protocol_isEqual().
	* protocols.c (protocol_getMethodDescription): Use sel_isEqual()
	to compare selectors directly instead of getting names and then
	using strcmp.
	* objc/Protocol.h: Updated comments.
	
2010-10-15  Nicola Pero  <nicola.pero@meta-innovation.com>

	* init.c (__objc_init_protocol): New function which fixes up a
	protocol's class pointer, registers it with the runtime, register
	all protocol selectors and registers associated protocols too.
	(objc_init_statics): Detect if we are initializing protocols, and
	if so, use __objc_init_protocol instead of only fixing up the
	class pointer.
	(__objc_init_protocls): Use __objc_init_protocol.
	* objc-private/module-abi-8.h: Updated comments.
	* objc-private/runtime.h
	(__objc_register_selectors_from_description_list): New.
	* selector.c (__objc_register_selectors_from_description_list):
	New.  (struct objc_method_description_list): Declare.
	* Protocol.m ([-descriptionForInstanceMethod:]): Use sel_get_name
	when accessing the name of a method, which is now correctly a SEL.
	([-descriptionForClassMethod:]): Same change.
	* protocols.c (protocol_getMethodDescription): Same change.
	* objc/runtime.h: Updated comments.
	(sel_registerTypedName): Fixed typo in function name.
	
2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

	PR libobjc/23214
	* init.c (objc_init_statics): Do not skip the initialization of a
	statics list if the first object has already been initialized; in
	the case of Protocols, while the first one may have been
	initialized, some others may not have been initialized yet.

2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

	* Makefile.in (OBJC_DEPRECATED_H): Added
	objc_get_uninstalled_dtable, objc_object_alloc.h and
	struct_objc_static_instances.h.

2010-10-13  Nicola Pero  <nicola.pero@meta-innovation.com>

	* encoding.c (method_copyReturnType): New.
