2013-10-04  Nenad Vukicevic <nenad@intrepid.com>

	Add UPC backtrace to Portals4 runtime.
	* Makefile.am: UPC_BACKTRACE_SUP is common define now.
	(UPC_RUNTIME_SRC): Portals4, add UPC backtrace files.
	* Makefile.in: Re-generate.
	* configure.ac: Check for UPC backtrace options is common
	to SMP and Portals4 runtimes.
	* configure: Re-generate.
	* portals4/gupcr_backtrace.c: New. Port from the SMP implementation.
	* portals4/gupcr_backtrace.h: Ditto.
	* portals4/gupcr_barrier.c (gupcr_barrier_id): Make it global.
	* portals4/gupcr_barrier.h: Ditto.
	* portals4/gupcr_env.c (gupcr_env_kind): Add ENV_UPC_BACKTRACE.
	(gupcr_env_var_table): Add ENV_UPC_BACKTRACE.
	(gupcr_env_init): Add support for ENV_UPC_BACKTRACE.
	* portals4/gupcr_main.c (gupcr_init): Initialized UPC backtrace
	if enabled.
	* portals4/gupcr_utils.c (gupcr_backtrace): Add.
	(gupcr_create_temp_file): Add.
	(gupcr_set_backtrace):Add.
	(gupcr_is_backtrace_enabled): Add.
	* portals4/gupcr_utils.h: Add prototypes for the new utility
	functions.

2013-09-27  Gary Funck  <gary@intrepid.com>

	Implement non-blocking transfer operations for SMP runtime.
	* Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc.
	* Makefile.in: Re-generate.
	* configure: Re-generate.
	* smp/gcc-upc-lib.in: Add __UPC_NB__ definition.
	* smp/gupcr_nb.upc: New. Non-blocking transfers library.

2013-09-26  Nenad Vukicevic  <nenad@intrepid.com>

	* Makefile.am (UPC_BACKTRACE_SUP): Remove upc_backtrace_sup.c.
	* Makefile.in: Re-generate.
	* configure.ac: Remove detection of libbfd.  Add
	HAVE_UPC_BACKTRACE_ADDR2LINE and GUPCR_BACKTRACE_ADDR2LINE
	definitions.
	* configure: Re-generate.
	* config.h.in: Re-generate.
	* configure.tgt (LIBS): Remove libbfd and libdl.
	* smp/upc_backtrace.c (__upc_backtrace): Use addr2line to generate
	source code references.
	(__upc_abs_execname): Use pointer instead of large array declaration.
	(__upc_backtrace_init): Allocate space for __upc_abs_execname.
	* smp/upc_backtrace.h: Remove libbfd support function prototype.
	* smp/upc_backtrace_sup.c: Delete.

2013-09-10  Nenad Vukicevic  <nenad@intrepid.com>

	Implement non-blocking transfer operations for Portals4 runtime.
	* Makefile.am (UPC_RUNTIME_SRC): Add upc_nb.upc, upc_nb_sup.h,
	upc_nb_sup.c for Portals4 source files.
	* Makefile.in: Re-generate.
	* portals4/gcc-upc-lib.in: Add __UPC_NB__ definition.
	* portals4/gupcr_env.c (gupcr_facility_table): Add FC_NB facility.
	* portals4/gupcr_main.c (gupcr_init): Add NB initialization.
	(gupcr_fini): Add NB finalization.
	* portals4/gupcr_nb.upc: New. Non-blocking transfers library.
	* portals4/gupcr_nb_sup.c: New. Non-blocking transfers support.
	* portals4/gupcr_nb_sup.h: New. Non-blocking transfers support.
	* portals4/gupcr_portals.h: Add GUPCR_PTL_PTE_NB for non-blocking
	transfers.
	(gupcr_portals_call_with_status): PTL_EQ_EMPTY is not an error.
	* portals4/gupcr_utils.h (gupcr_facility_t): Add enum value for FC_NB.

2013-09-09  Nenad Vukicevic  <nenad@intrepid.com>

	Added UPC non-blocking transfer header file.
	* Makefile.am (UPC_HDRS): Add upc_nb.h
	* Makefile.in: Re-generate.
	* include/upc_nb.h: New.  Required per 1.3 spec.

2013-08-06  Gary Funck  <gary@intrepid.com>

	Implement atomic operations library for SMP runtime.
	* ../Makefile.def: Add dependencies for libatomic and libbacktrace.
	* ../Makefile.in: Re-generate.
	* Makefile.am: Add gen-inline-libgupc.pl gen-upc-ld-script.pl.
	Add autogen rules to build smp/upc_atomic.upc.
	* Makefile.in: Re-generate.
	* include/upc_atomic.h: Add UPC_*_OP definitions.
	* include/upc_ops.def: New. Describe UPC atomic operations.
	* include/upc_types.def: New. Describe UPC atomic types.
	* include/upc_types.h: Add UPC_*_OP definitions.
	* smp/gcc-upc-lib.in: Define __UPC_ATOMIC__ and add typedef
	for upc_atomicdomain_t.
	* smp/upc_atomic.def: New. Autogen definition file for upc_atomic.upc.
	* smp/upc_atomic.tpl: New. Autogen template file for upc_atomic.upc.
	* smp/upc_atomic.upc: New. Generate from smp/upc_atomic.def.
	* smp/upc_config.h: Add defines for LONG_LONG_BITS and SIZE_T_BITS.
	* smp/upc_main.c: (__upc_fatal) Fix bug in handling of variadic args.

2013-07-24  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_atomic_sup.c: Use correct type for EQ declaration.
	* portals4/gupcr_coll_sup.c: Ditto.
	* portals4/gupcr_shutdown.c: Ditto.

2013-06-12  Nenad Vukicevic  <nenad@intrepid.com>

	* testsuite/lib/libgupc-dg.exp: Check GUPC P4 runtime for SLURM
	or YOD configuration and use appropriate commands to run tests.

2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>

	* testsuite/libgupc.upc/upc.exp: Changed list of tests to exclude
	separate compilation units (*_sep.upc).

2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>

	* include/gasp_upc.h: Cleanup to conform to GCC codding style
	(mainly fixing comments, but also some prototypes, defiens, ...).
	include/gcc-upc.h: Ditto.
	* include/pupc.h: Ditto.
	* include/upc.h: Ditto.
	* include/upc_collective.h: Ditto.
	* include/upc_tick.h: Ditto.
	* include/upc_types.h: Ditto.
	* portals4/gcc-upc-lib.in: Ditto.
	* portals4/gupcr_access.c: Ditto.
	* portals4/gupcr_access.h: Ditto.
	* portals4/gupcr_addr.c: Ditto.
	* portals4/gupcr_alloc.upc: Ditto.
	* portals4/gupcr_clock.c: Ditto.
	* portals4/gupcr_coll_broadcast.upc: Ditto.
	* portals4/gupcr_coll_reduce.in: Ditto.
	* portals4/gupcr_coll_reduce.upc: Ditto.
	* portals4/gupcr_config.h: Ditto.
	* portals4/gupcr_defs.h: Ditto.
	* portals4/gupcr_gmem.c: Ditto.
	* portals4/gupcr_gmem.h: Ditto.
	* portals4/gupcr_lock_sup.h: Ditto.
	* portals4/gupcr_main.c: Ditto.
	* portals4/gupcr_mem.c: Ditto.
	* portals4/gupcr_pgm_info.c: Ditto.
	* portals4/gupcr_portals.c: Ditto.
	* portals4/gupcr_pts.h: Ditto.
	* portals4/gupcr_runtime.c: Ditto.
	* portals4/gupcr_shutdown.c: Ditto.
	* portals4/gupcr_tick.c: Ditto.
	* portals4/gupcr_utils.c: Ditto.
	* portals4/gupcr_utils.h: Ditto.

2013-06-07  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_atomic.upc: Cleanup calls to gupc_fatal_error.
	Message starts with lowercase letter, no need for thread
	identification as it will be included automatically, cleanup
	message content.
	* portals4/gupcr_atomic_sup.c: Ditto.
	* portals4/gupcr_barrier.c: Ditto.
	* portals4/gupcr_broadcast.c: Ditto.
	* portals4/gupcr_coll_init.upc: Ditto.
	* portals4/gupcr_coll_reduce.in: Ditto.
	* portals4/gupcr_coll_reduce.upc: Ditto.
	* portals4/gupcr_coll_sup.c: Ditto.
	* portals4/gupcr_env.c: Ditto.
	* portals4/gupcr_lock.upc: Ditto.
	* portals4/gupcr_lock_sup.c: Ditto.

2013-06-06  Nenad Vukicevic  <nenad@intrepid.com>

	Update copyright years.

2013-06-06  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_atomic.upc (upc_atomic_query): Compile error fix.

2013-06-06  Gary Funck  <gary@intrepid.com>

	* smp/upc_main.c (__upc_fatal): Extend interface to
	support printf-like formatting of fatal error messages.
	* smp/upc_sup.h (__upc_fatal): Adjust prototype.
	(__upc_exit): Add nothrow attribute to prototype.

2013-06-06  Gary Funck  <gary@intrepid.com>

	* include/upc.h: Re-fix. Delete all of the (deprecated) declarations
	of prototype for upc_local_alloc().  It has been
	removed in the UPC 1.3 spec.

2013-06-05  Nenad Vukicevic  <nenad@intrepid.com>

	Add support for UPC atomics to Portals4 runtime.
	* Makefile.am (UPC_RUNTIME_SRC): Add atomic files.
	(UPC_HDRS): Add atomic files.
	* Makefile.in: Re-generate.
	* include/upc_atomic.h: New. UPC atomic interface.
	* portals4/gcc-upc-lib.in (__UPC_ATOMIC__): Add.
	Add definition of upc_atomicdomain_t.
	* portals4/gupcr_atomic.upc: New. UPC atomic implementation.
	* portals4/gupcr_atomic_sup.c: New. UPC atomic support functions.
	* portals4/gupcr_atomic_sup.h: New.
	* portals4/gupcr_env.c (gupcr_facility_table): Add atomic facility.
	* portals4/gupcr_main.c (gupcr_init): Add atomic initialization.
	(gupcr_fini): Add atomic finalization.
	* portals4/gupcr_portals.c (gupcr_get_atomic_size): Add.
	* portals4/gupcr_portals.h (gupcr_get_atomic_size): Add.
	* portals4/gupcr_utils.c (gupcr_get_buf_as_hex): Add.
	* portals4/gupcr_utils.h (gupcr_facility_t): Add atomic facility.

2013-05-09  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_env.c: Add UPC_FIRSTTOUCH environment variable
	as a no-op.  Misc fixes in comments for ON/OFF -> YES/NO.
	(gupcr_env_init): Handle UPC_FIRSTTOUCH as no-op.

2013-05-09  Nenad Vukicevic  <nenad@intrepid.com>

	Add support for remote put optimization with usage of volatile MD.
	configure.ac: Add configuration option
	(--with-upc-max-outstanding-puts) for maximum number of
	outstanding remote put operations.
	* config.h.in: Re-generate.
	configure: Re-generate.
	* portals4/gupcr_gmem.c: Add gupcr_gmem_high_mark_puts variable.
	Add gupcr_gmem_low_mark_puts variable.
	(gupcr_gmem_put): Use volatile MD if transfer size is
	smaller then the volatile maximum size.  Add checking for maximum
	number of outstanding puts (flow control).
	* portals4/gupcr_gmem.h (gupcr_gmem_xfer_info_t): Add md_volatile
	field.
	* portals4/gupcr_portals.c: Add gupcr_max_volatile_size variable.
	(gupcr_portals_ni_init): Initialize max volatile size from NI
	limits.
	* portals4/gupcr_portals.h: Add GUPCR_PORTALS_MAX_VOLATILE_SIZE
	define.  Add gupcr_max_volatile_size extern definition.

2013-04-18  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_gmem.c (gupcr_gmem_init): Add debug logging for
	GMEM location/size.
	* portals4/gupcr_lock_sup.c (gupcr_lock_init): Fix the debug print
	format for GMEM size.

2013-04-11  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Fix check for correct bounce buffer size value where
	suffix multiplier (e.g. "k") was always expected.  Small fix for
	correct checking of the "multilib" setting.
	* configure: Re-generate.

2013-04-09  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_lock.upc (upc_unlock): Add missing upc_fence.
	* smp/upc_lock.upc (upc_unlock): Ditto.

2013-04-02  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_utils.c (gupcr_is_node_local_memory_enabled); Rename
	from gupcr_is_node_local_memory.  Fixing error from the previous
	update.

2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_env.c (gupcr_env_boolean): Rename from gupcr_env_switch.
	Change options to NO/no/0 or YES/yes/1.
	(gupcr_env_init): New names for node memory and forcetouch options
	set routines.
	* portals4/gupcr_node.c (gupcr_node_local_alloc): Ditto.
	(gupcr_node_init): Ditto.
	* portals4/gupcr_utils.c (gupcr_set_node_local_memory): Rename from
	gupcr_set_node_local_mem_enabled.
	(gupcr_set_forcetouch): Rename from gupcr_set_forcetouch_enabled.
	* portals4/gupcr_utils.h: Ditto.

2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>

	Add shared memory page by page touch on startup.
	* configure.ac: Add --with-upc-memory-page-size switch.
	* config.h.in: Re-generate.
	* configure: Re-generate.
	* portals4/gupcr_env.c: Add UPC_FORCETOUCH env variable. Set to
	1 (one) by default.
	(gupcr_env_init): Decode UPC_FORCETOUCH env variable.
	* portals4/gupcr_node.c (gupcr_mem_check): Touch each page
	of the local shared memory to make sure that memory is NUMA local.
	* portals4/gupcr_utils.c (gupcr_set_forcetouch_enabled): Add.
	(gupcr_is_forcetouch_enabled): Add.
	* portals4/gupcr_utils.h (gupcr_set_forcetouch_enabled): Add.
	(gupcr_is_forcetouch_enabled): Add.

2013-04-01  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_main.c (gupcr_init): Initialize runtime
	interface first and set MYTHREAD right after, making sure that
	MYTHREAD is valid while going through the Portals runtime
	initialization.
	Fix the error reporting on threads number mismatch.

2013-03-30  Gary Funck  <gary@intrepid.com>

	* include/upc.h: Delete (deprecated) declaration
	of prototype for upc_local_alloc().  It has been
	removed in the UPC 1.3 spec.

2013-03-30  Gary Funck  <gary@intrepid.com>

	Implement upc_castable library support (per UPC 1.3 spec.)
	* Makefile.am: Add upc_castable.h as an exported header file.
	Add smp/upc_castable.upc and portals4/gupcr_castable.upc
	to list of runtime source files.
	* Makefile.in: Re-generate.
	* include/upc_castable.h: New.
	* portals4/gupcr_castable.upc: New.
	* smp/upc_castable.upc: New.

2013-03-30  Gary Funck  <gary@intrepid.com>

	* portals4/gupcr_coll_reduce.in: Change printf format in
	error message to match the type of upc_op_t, which is
	now 'unsigned long'.
	* portals4/gupcr_coll_reduce.upc: Re-generate.

2013-03-29  Gary Funck  <gary@intrepid.com>

	Implement and use upc_types.h (per UPC 1.3 spec.)
	* Makefile.am: Add upc_types.h as an exported header file.
	* Makefile.in: Re-generate.
	* collectives/upc_coll_err.upc: Fix check for out-of-range
	collective operation op code.  Use UPC_MAX_COLL_OP.
	* include/upc_collective.h: #include upc_types.h
	Define UPC_MAX_COLL_OP, the maximum collectives opcode value.
	* include/upc_types.h: New.

2013-03-27  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Add configuration option for selecting a job
	launcher (slurm, yod).  Default is slurm.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* portals4/gupcr_runtime.c: Select the right pmi.h based on
	the job launcher configuration.

2013-02-20  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.tgt: Add "-lpthread" if linking with
	portals4 runtime.  Newer systems are linking with
	the ld.gold which does no allow for linking to
	required libraries through intermediate objects/libraries.

2012-12-11  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: As libgupc is not built yet, make sure
	that UPC compiler does not pre-include gcc-upc.h and
	gcc-upc-lib.h while performing configuration checks.
	* configure: Regenerate.

2012-11-27  Gary Funck  <gary@intrepid.com>

	* config/default/upc-crt-config.h: Remove check for
	TARGET_ASM_NAMED_SECTION.
	* smp/upc_config.h: Avoid multiple definition of __USE_GNU.
	* smp/upc_lock.upc: Use local search (") quoting in #include.
	* upc-crtstuff.c: Update copyright notice and fix minor typos.

2012-11-19  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_mem.c (upc_memput): Add appropriate checks
	for proper UPC data ordering.  All requests in size above the
	GUPCR_PORTALS_MAX_ORDERED_SIZE must be treated as strict.
	(upc_memcopy): Ditto.
	(upc_memset): Ditto.

2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>

	* portals4/gupcr_portals.c (gupcr_get_datatype): Rename
	to gupcr_get_atomic_datatype to name it correctly.  Use
	PTL_DOUBLE_COMPLEX atomic type as a container for 16 bytes
	CSWAP operations.  The MCS lock implementation requires CSWAP
	on a pointer to shared which is 16 bytes in the struct
	configuration.
	* portals4/gupcr_portals.h: Rename gupcr_get_datatype.
	* portals4/gupcr_lock_sup.c (gupcr_lock_swap): Ditto.
	(gupcr_lock_cswap): Ditto.

2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>

	Prevent data tearing on accessing a pointer to shared in
	the shared address space.
	* portals4/gupcr_lock_sup.c (gupcr_lock_get): New.
	* portals4/gupcr_lock_sup.h: Add extern def for gupcr_lock_get.
	* portals4/gupcr_lock.upc (upc_unlock): Access data that can
	be changed by other threads via Portals interface.

2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>

	Replace the usage of spin locks to regular UPC locks in
	the heap allocation implementation.
	* Makefile.am (UPC_RUNTIME_SRC): Remove spin lock source
	files. Add gupcr_lock.h.
	* Makefile.in; Regenerate.
	* portals4/gupcr_lock.h: New. External definitions for heap
	allocation locks.
	* portals4/gupcr_lock.upc: Declare heap allocation locks.
	(gupcr_lock_heap_sup_init): New. Initialize heap allocation locks.
	* portals4/gupcr_alloc.upc: Remove spin lock declarations.
	(gupcr_alloc_init): Remove spin lock initialization.
	(gupcr_heap_init_info): Replace spin lock with UPC lock.
	(gupcr_heap_region_alloc): Ditto.
	(gupcr_heap_alloc): Ditto.
	(gupcr_heap_free): Ditto.
	* portals4/gupcr_lock_sup.h (gupcr_lock_heap_sup_init): Add external
	definition.
	* portals4/gupcr_lock_sup.c (gupcr_lock_init): Call the heap
	allocation locks initialization.
	* portals4/gupcr_slock.h: Delete.
	* portals4/gupcr_slock.upc: Delete.

2012-11-08  Nenad Vukicevic  <nenad@intrepid.com>

	* testsuite/lib/libgupc.exp: Set the "-B" option at the right
	place so we support command that runs the tests on multiple
	targets.  The previous version failed on building RPMs that
	tested "unix,unix/-fstack-protector" targets.

2012-10-26  Nenad Vukicevic  <nenad@intrepid.com>

	Place shared initialization code into the .text
	section instead of a separate .upc_init section.
	* config/default/upc-crt-config.h (UPC_INIT_SECTION_BEGIN):
	Delete.
	(UPC_INIT_SECTION_END): Delete.
	* config/darwin/upc-crt-config.h: Ditto.
	* upc-crtstuff.c: Remove declarations for .upc_init
	section start/end.

2012-10-24  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_main.c (__upc_monitor_threads): Allow for MPIR
	debug connection while waiting for threads.  STAT requires
	job launcher to periodically call MPIR_Breakpoint().  If
	killpg() fails call exit() instead of abort to avoid recursion
	in handling signals.

2012-10-24  Nenad Vukicevic  <nenad@intrepid.com>

	* Makefile.am: Add more files for cleanup.
	* Makefile.in: Regenerate.
	* smp/upc_tick.c: Add proper casting for calculating
	  nanoseconds from sec/usec if gettimeofday() call was used.

2012-10-23  Nenad Vukicevic  <nenad@intrepid.com>
            Gary Funck  <gary@intrepid.com>

	Implement Portals4-based UPC runtime.
	* configure.ac: Add a check for --with-upc-runtime=portals4.
	Disable multilib when building libgupc for the portals4 based
	UPC runtime.  Portals4 does not currently support
	32-bit targets.  Implement additional UPC runtime configuration
	switches, currently supported by the portals4 based UPC
	runtime.  Check if the user has requested that 'doxygen'
	design documentation generation is enabled.
	* configure.tgt: Add portals4 library linker switches if
	the portals4 based runtime has been enabled via a configure option.
	* Makefile.am: Add make rules to build the portals4 based runtime
	when enabled via a configuration option.
	* aclocal.m4: Re-generate.
	* config.h.in: Re-generate.
	* configure: Re-generate.
	* Makefile.in: Re-generate.
	* testsuite/Makefile.in: Re-generate.
	* ax_prog_doxygen.m4: New. Doxygen support.
	* dox-filter-config-h: New. Doxygen support.
	* doxygen-include.am: New. Doxygen support.
	* doxygen.sty.in: New. Doxygen support.
	* header.tex.in: New. Doxygen support.
	* portals4/doxygen.cfg.in: New. Doxygen support.
	* collectives/gen-upc-coll-reduce.pl: Add additional pattern
	substitutions when expanding collectives customized for use
	with portals.
	* collectives/upc_coll_prefix_reduce.in: Ditto.
	* collectives/upc_coll_reduce.in: Ditto.
	* portals4/gcc-upc-lib.in: New.
	* portals4/gupcr_access.c: New.
	* portals4/gupcr_access.h: New.
	* portals4/gupcr_addr.c: New.
	* portals4/gupcr_alloc.h: New.
	* portals4/gupcr_alloc.upc: New.
	* portals4/gupcr_barrier.c: New.
	* portals4/gupcr_barrier.h: New.
	* portals4/gupcr_broadcast.c: New.
	* portals4/gupcr_broadcast.h: New.
	* portals4/gupcr_clock.c: New.
	* portals4/gupcr_coll_broadcast.upc: New.  Collectives support
	that uses portals4 collective operations.
	* portals4/gupcr_coll_init.upc: New. Ditto.
	* portals4/gupcr_coll_reduce.in: New. Ditto.
	* portals4/gupcr_coll_reduce.upc: New. Ditto.
	* portals4/gupcr_coll_sup.c: New. Ditto.
	* portals4/gupcr_coll_sup.h: New. Ditto.
	* portals4/upc_coll.h: New. Ditto.
	* portals4/gupcr_config.h: New.
	* portals4/gupcr_defs.h: New.
	* portals4/gupcr_env.c: New.
	* portals4/gupcr_gmem.c: New.
	* portals4/gupcr_gmem.h: New.
	* portals4/gupcr_lib.h: New.
	* portals4/gupcr_lock_sup.c: New.
	* portals4/gupcr_lock_sup.h: New.
	* portals4/gupcr_lock.upc: New.
	* portals4/gupcr_main.c: New.
	* portals4/gupcr_mem.c: New.
	* portals4/gupcr_node.c: New.
	* portals4/gupcr_node.h: New.
	* portals4/gupcr_node_mem_mmap.c: New.
	* portals4/gupcr_node_mem_posix.c: New.
	* portals4/gupcr_pgm_info.c: New.
	* portals4/gupcr_portals.c: New.
	* portals4/gupcr_portals.h: New.
	* portals4/gupcr_pts.h: New.
	* portals4/gupcr_runtime.c: New.
	* portals4/gupcr_runtime.h: New.
	* portals4/gupcr_shutdown.c: New.
	* portals4/gupcr_shutdown.h: New.
	* portals4/gupcr_slock.h: New.
	* portals4/gupcr_slock.upc: New.
	* portals4/gupcr_sup.h: New.
	* portals4/gupcr_sync.h: New.
	* portals4/gupcr_tick.c: New.
	* portals4/gupcr_utils.c: New.
	* portals4/gupcr_utils.h: New.
	* testsuite/lib/libgupc-dg.exp: Build 'yod' command line
	when running tests with the portals4 based UPC runtime.
	* testsuite/lib/libgupc.exp: Add 'yod' switches
	when running tests with the portals4 based UPC runtime.

2012-10-16  Nenad Vukicevic  <nenad@intrepid.com>

	Add MCS lock implementation - fix for some 32 bit targets.
	* Makefile.am (UPC_RUNTIME_SRC): Add upc_lock_sup.c file.
	* Makefile.in: Regenerate.
	* smp/upc_lock_sup.c: New. Provide 8 byte CSWAP for targets
	that don't have it (PowerPC).

2012-10-15  Nenad Vukicevic  <nenad@intrepid.com>

	Add MCS lock implementation.
	* configure.ac: Add max number of locks held by a thread.
	* configure: Regenerate.
	* Makefile.am (UPC_RUNTIME_SRC): Add lock related new files.
	Removed upc_lock.c.
	* Makefile.in: Regenerate.
	* config.h.in: Regenerate.
	* smp/upc_defs.h: Remove definition of upc_lock_t (new
	implementation has more fields that are lock implementation
	specific). Remove alloc lock from the upc_info_p as UPC lock
	is used to protect alloc routines.
	* smp/upc_lock.c: Delete.
	* smp/upc_lock.h: Add prototype for lock init routine.
	* smp/upc_lock_sup.h: MCS lock support routines for
	signalling, swap, and compare/swap.
	* smp/upc_main.c (__upc_per_thread_init): Call lock init.
	  (GUPCR_START): Remove init of alloc lock.
	* smp/upc_lock.upc: New. New MCS lock implementation.

2012-10-03  Gary Funck  <gary@intrepid.com>

	* gen-inline-libgupc.pl: Add logic to check for //begin
	directives with no matching end.

2012-10-02  nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Check for backtrace additional libraries only
	if backtrace is enabled.
	* configure: Regenerate.
	* smp/upc_backtrace.c (__upc_backtrace): Change default trace
	file to 'backtrace.THREAD-ID'.
	(__upc_backtrace_init): Install backtrace signal handler only
	if backtrace is enabled for faults.
	(__upc_fault_handler): Do not announce signals, just restore
	signals, print backtrace, and return.  This causes a signal to
	be taken again, but this time monitor thread is informed.
	(__upc_fatal_backtrace): No need to check env variable as signal
	handler is conditionally installed.

2012-09-26  Gary Funck  <gary@intrepid.com>

	* collectives/upc_coll_sort.upc: Remove reference to
	deprecated upc_local_alloc function.
	* configure.ac: Revert - do not restore saved LIBS value
	when checking for librt.
	* configure: Re-generate.
	* include/upc.h (upc_all_free, upc_all_freeg, upc_all_lock_free,
	upc_all_lock_freeg): New. Define collective de-allocation functions.
	(upc_local_allocg, upc_local_alloc): Add "deprecated" attribute.
	* include/upc_tick.h: New. Define wall/clock timer library functions.
	* Makefile.am (include/upc_tick.h, smp/upc_tick.c): New.
	* Makefile.in: Re-generate.
	* smp/upc_allocg.upc (upc_all_freeg): New.
	* smp/upc_alloc.upc (upc_local_alloc): Delete.
	(upc_all_free): New.
	* smp/upc_config.h: Include time-related system header files.
	* smp/upc_libg.c (upc_all_lock_freeg): New.
	* smp/upc_lib.h (upc_local_alloc): Delete prototype.
	(upc_all_free, upc_all_lock_free): New prototype.
	(upc_tick_t): New typedef.
	(upc_ticks_now, upc_ticks_to_ns): New prototype.
	* smp/upc_lock.c (upc_all_lock_free): New.
	* smp/upc_tick.c: New.

2012-09-20  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_main.c (__upc_monitor_threads): Install
	SIGTERM handler for the monitor thread.  Use process
	group (instead of PID) for killpg().  Announce child
	KILL signal if upc global exit is not underway.
	(__upc_sigterm_handler): New. Terminate the program on
	SIGTERM to the monitor thread.

2012-09-04  Nenad Vukicevic  <nenad@intrepid.com>

	Move MPIR related variables/functions into a separate file.
	* Makefile.am (UPC_RUNTIME_SRC): Add upc_debug.c
	* Makefile.in: Regenerate.
	* smp/upc_main.c: Move MPIR specific variables into upc_debug.c.
	(MPIR_Breakpoint): Delete. Move into upc_debug.c.
	(MPIR_i_am_starter): Delete. Move into upc_debug.c.
	(MPIR_ignore_queues): Delete. Move into upc_debug.c.
	(MPIR_force_to_main): Delete. Move into upc_debug.c.
	* smp/upc_debug.c: New. All MPIR related variables and procedures
	are in this file now.

2012-09-04  Nenad Vukicevic  <nenad@intrepid.com>

	Add backtrace logging into files.
	* upc_backtrace.h (GUPCR_BACKTRACE_FILE_ENV): New. File prefix
	for backtrace log file.
	* upc_backtrace.c (__upc_backtrace): Save backtrace logs into the
	file if environment variable UPC_BACKTRACEFILE is defined.  Do not
	show traces above upc_main.
	(__upc_backtrace_thread_map): Rename to __upc_backtrace_monitor.
	(__upc_backtrace_monitor): If logging into files is specified, monitor
	thread sends backtrace signal to all UPC threads.

2012-08-30  Nenad Vukicevic  <nenad@intrepid.com>

	* upc_defs.h (upc_info_struct): Added host name and
	flag for MPIR partial attach support.
	* upc_main.c: Add MPIR_partial_attach_ok support.
	(__upc_init): Set start flag for all threads based on
	the debugging mode.  Initialize hostname in the info
	structure.
	(__upc_run_this_thread): Wait on start flag if necessary.
	(__upc_run_threads): Release threads after MPIR_Breakpoint().
	Set host_name and executable_name in the info structure.
	(__upc_print_help_and_exit): Removed help for unused flag
	-fupc-pthreads-per-process-N.

2012-08-29  Nenad Vukicevic  <nenad@intrepid.com>

	* upc_backtrace.h (__upc_backtrace_restore_handlers): New.
	Prototype.
	* upc_backtrace.c (__upc_backtrace_restore_handlers): New.
	Restore default signal handlers.
	(__upc_backtrace_init): Install handlers for additional signals:
	SIGABRT, SIGILL, SIGFPE, and SIGBUS.
	(__upc_fault_handlers): Add handling of additional signals.
	* upc_main.c (__upc_fatal): Restore default handlers before calling
	backtrace and abort.

2012-08-28  Nenad Vukicevic  <nenad@intrepid.com>

	* include/gcc-upc.h (upc_fence): Delete. Replaced with the
	library specific definition in gcc-upc-lib.h
	(__BERKELEY_UPC_RUNTIME__): Delete. Remove conditional compile
	for upc_fence and upc_poll if compiled with the Berkeley
	runtime as they are already provided in gcc-upc-lib.h.
	* smp/gcc-upc-lib.in (upc_fence): Add.
	* smp/upc_access.h (__upc_fence): Add prototype.
	* smp/upc_access.c (__upc_fence): Add SMP upc_fence implementation.

2012-08-22  Nenad Vukicevic  <nenad@intrepid.com>

	* upc_defs.h: Additianl clean-up related to the new barrier
	implementation.
	(upc_barrier_id_t): Delete.
	(upc_barrier_info_t): Delete.
	(upc_barrier_info_p): Delete.
	(upc_info_t): Remove barrier from the upc info structure.
	(__upc_barrier_id): New.
	* upc_barrier.upc (__upc_barrier_id): Make it global.
	* upc_backtrace.c (__upc_backtrace): Print barrier ID from the
	new implementation.

2012-08-15  Nenad Vukicevic  <nenad@intrepid.com>

	Add tree based barrier implementation for SMP-based UPC run-time.
	* configure.ac: Add configuration for the barrier tree fanout.
	Add checking for __sync_fetch_and_add built-in function.
	* configure: Re-generate.
	* config.h.in: Re-generate.
	* Makefile.am (AM_UPCFLAGS): Added -fno-strict-aliasing
	to prevent alias warning when converting from pointer-to-shared
	into its internal representation.
	(UPC_RUNTIME_SRC): Remove upc_barrier.c.
	(UPC_RUNTIME_SRC): Add upc_barrier.upc.
	* Makefile.in: Re-generate.
	* smp/gcc-upc-lib.in: Add inclusion of atomic/spin_until code when
	compiling inside the target library.  Replace lib_atomic_cas name
	to lib_atomic to cover more then CAS atomic.
	* smp/upc_barrier.c: Delete.
	* smp/upc_barrier.upc: Add. A new tree based barrier implementation.
	* smp/upc_config.h (INT_MIN): Make it available for inlined code
	under int_min_max.
	* smp/upc_main.c (__upc_per_thread_init): Add call to initialize
	barrier implementation.
	* smp/upc_sync.h (__upc_atomic_cas): Move from upc_sysdep.h.
	(__upc_sync_fetch_and_add): New.
	(__upc_spin_until): Move from upc_sysdep.h.
	(__upc_num_cpus): Move from upc_sysdep.h.
	* smp/upc_sysdep.h (__upc_atomic_cas): Delete.
	(__upc_spin_until): Delete.
	(__upc_num_cpus): Delete.
	* smp/upc_sup.h (__upc_barrier_init): Add external definition.
	(__upc_map_to_local): New.  Map shared pointer into local address.

2012-07-31  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Added help description for --with-bfd,
	--with-bfd-include, and --with-bfd-lib.
	* configure: Re-generate.

2012-07-31  Gary Funck  <gary@intrepid.com>

	* configure.ac: Remove extra white space at end-of-line.
	* Makefile.am: Ditto.
	* Makefile.in: Re-generate.

2012-07-31  Gary Funck  <gary@intrepid.com>

	* configure.ac: Improve diagnostics for options
	that control UPC stack backtrace support.
	* configure: Re-generate.

2012-07-31  Gary Funck  <gary@intrepid.com>

	* configure.ac: Shorten long lines.  Improve the
	consistency of first letter capitalization and
	remove periods from all except AC_DEFINE's.
	* acinclude.m4: Ditto.
	* configure: Re-generate.
	* config.h.in: Re-generate.

2012-07-14  Gary Funck  <gary@intrepid.com>

	* acinclude.m4 (LIBGUPC_CHECK_SYNC_BUILTINS): Remove
	set-but-not-used variable in the check for builtin sync. ops.
	* configure: Re-generate.

2012-07-03  Gary Funck  <gary@intrepid.com>

	* libgupc.texi: Include gpl_v3.texi instead of gpl.texi.

2012-06-09  Nenad Vukicevic  <nenad@intrepid.com>

	* Makefile.am: Removed indented spaces on if/endif.

2012-06-08  Nenad Vukicevic  <nenad@intrepid.com>
	
	Add backtrace support for UPC SMP run-time.
	* configure.ac: Added UPC backtrace configuration
	options (--enable-upc-backtrace, --enable-upc-backtrace-gdb,
	--with-upc-backtrace-gdb, --enable-upc-backtrace-signal,
	--with_upc-backtrace-signal). Fix the check for 'gettime' to
	save/restore libraries on the check line.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.am (AM_CPPFLAGS): Add include path for bfd.h.
	(UPC_RUNTIME_SRC): Add new source files for backtrace.
	(UPC_BACKTRACE_SUP): New.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* configure.tgt (LIBS): Added options for linking with libbfd,
	libdl. Added -export-dynamic if -rdynamic option is supported.
	* smp/upc_backtrace.h: New. Backtrace API.
	* smp/upc_backtrace.c: New. Backtrace support functions.
	* smp/upc_backtrace_sup.c: New.  Source file/line search support
	functions.
	* smp/upc_main.c (__upc_fatal): Added call to backtrace.
	(__upc_monitor_threads): Added code to continue monitoring threads
	if the wait() was interrupted by a signal (e.g. backtrace request
	signal).
	* smp/upc_sysdep.h (__upc_create_temp_file): Add prototype.
	* smp/upc_sysdep.c (__upc_create_temp_file): Made public.

2012-05-19  Gary Funck  <gary@intrepid.com>

	* smp/upc_main.c (__upc_per_thread_init):
	Change the declaration of GUPCR_INIT_ARRAY_START
	and GUPCR_INIT_ARRAY_END so that the optimizer does
	not conclude that the per-thread initialization procedure table
	has only a single element.

2012-05-04  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Check for gupc driver only.
	Use gupc driver instead of xgupc. Add -fno-upc-pre-include
	on the command line to prevent inclusion of gcc-upc.h
	* configure: Regenerate.
	* Makefile.am (AM_CPPFLAGS): Add -isystem option to
	allow compiler to find upc.h.
	* Makefile.in: Regenerate.
	* include/upc.h (upc_global_lock_alloc): Fix prototype.
	(upc_all_lock_alloc): Fix prototype.
	* include/upc_collective.h (upc_coll_init): Fix prototype.
	* testsuite/lib/libgupc.exp: Added appropriate options to
	compile the tests with gupc from the build tree.

2012-05-02  Nenad Vukicevic  <nenad@intrepid.com>

	Add memory fence to the low level lock support routines
	that are called for multiple places in the run-time.
	* smp/upc_sysdep.c (__upc_acquire_lock): Add a memory fence
	once lock is acquired.
	(__upc_try_acquire_lock): Add a memory fence is lock is
	acquired.
	(__upc_release_lock): Add a memory fence before releasing
	the lock.
	* smp/upc_lock.c (upc_lock): Remove memory fence.
	(upc_lock_attempt): Ditto.
	(upc_unlock): Ditto.

2012-04-30  Nenad Vukicevic  <nenad@intrepid.com>

	* testsuite/libgupc.upc/upc.exp: Use '-fupc-threads'
	option instead of '-n' as the new GUPC driver does not
	support it.

2012-04-16  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_lock.c (upc_lock): Adding a fence as per the
	language specification.  This also forces the processor to
	discard all speculaive memory fetches.
	(upc_lock_attempt): Ditto.
	(upc_ulock): Ditto.

2012-04-13  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_sync.h (GUPCR_WRITE_FENCE): Change write fence
	for PPC processors to use light weight sync instruction.
	* smp/upc_sysdep.c (__upc_atomic_get_bit): Introduce a read barrier
	to force processor to discard all speculative memory fetches.

2012-03-26  Nenad Vukicevic  <nenad@intrepid.com>

	* testsuite/lib/libgupc.exp: Added fortran-modules.exp
	for explicit load from the gcc testsuite directory. It is
	a required file for gcc-dg.exp.

2012-02-02  Nenad Vukicevic  <nenad@intrepid.com>

	* Makefile.am: Prevent install from adding suffix to the
	link script (gupc.ld).
	(toolexeclib_SCRIPTS) remove upc link script.
	(nodist_toolexeclib_HEADERS) add upc link script.
	* Makefile: Regenerate.
	* configure: Regenerate.

2012-01-24  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_pgm_info.c (__upc_validate_pgm_info): Fix the error
	where the very first entry on the compiled thread info list is
	not checked.

2012-01-09  Gary Funck  <gary@intrepid.com>

	* smp/upc_pgm_info.c (__upc_validate_pgm_info):  Ignore intervening
	null bytes in the UPC program information section, to ensure that
	all configuration information strings are processed.  Allow
	static THREADS compilations to be mixed with dynamic THREADS
	compilations as long as the static THREADS values all match.

2011-12-19  Nenad Vukicevic  <nenad@intrepid.com>

	Improve handling of shared pointer vaddr field. Make sure
	that upc_addrfield() always returns an offset of the shared variable
	from the beginning of the shared section.
	* smp/upc_pts.h (GUPCR_PTS_VADDR): Macro definition returns the
	offset of the shared variable in the shared section.
	(GUPCR_PTS_SET_VADDR): Macro definition accepts the offset of the
	shared variable in the shared section and sets the value of the
	vaddr: offset for packed pts rep, address for struct pts rep.
	* smp/upc_main.c (__upc_init): Adjust the argument for setting of
	pointer-to-shared vaddr field.
	* smp/upc_alloc.upc: Adjust the argument for building a
	pointer-to-shared to the offset of the shared variable in the
	shared section.

2011-12-17  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Remove erroneous check for enable_shared. Build
	libgupc only as a static library as shared data sections from
	all the UPC compilations must be combined into a single
	contiguous section.
	* configure.tgt: Always include the necessary libraries required by
	libgupc on the command line. This is necessary as we don't build
	libgupc as a dynamic link library.
	* configure: Re-generate.

2011-11-19  Gary Funck  <gary@intrepid.com>

	* smp/upc_sync.h (GUPCR_WRITE_FENCE, GUPCR_READ_FENCE):
	For powerpc, also check __PPC__ pre-processor definition,
	as 'PPC' is apparently not defined on 64-bit PPC targets.
	* smp/upc_sysdep.c (__upc_atomic_cas): Implement as external
	procedure only if builtin compare-and-swap is unavailable.
	* smp/upc_sysdep.h (__upc_atomic_cas): Ditto.

2011-11-09  Nenad Vukicevic  <nenad@intrepid.com>

	* config/default/upc-crtstuff.mak (ALL_CRT_CFLAGS): Remove
	$(INCLUDES) as it might contain relative include paths that
	are not correct for current build directory.
	(GCC_SRCDIR_INC): Rename from GCC_SRCDIR_CONF_INC.  Added necessary
	include paths to build in the current libgupc build directory.

2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_sup.h (__upc_sptr_to_addr): Fixed the warning where
	  'void *' type was used in arithmetic.
	* smp/upc_mem.h (__upc_memget): Ditto.
	* (__upc_memput): Ditto.

2011-10-27  Nenad Vukicevic  <nenad@intrepid.com>

	* upc-crtstuff.c: Remove unnecessary includes that caused
	multiple defined warnings.

2011-10-26  Gary Funck  <gary@intrepid.com>

	Rename "GCC/UPC" to "GNU UPC", "UPC" to "GUPC", and
	"libupc" to "libgupc".
	* top-level/libgupc: rename from libupc.
	* configure.ac: Change "GCC UPC" references to "GNU UPC".
	Change "libupc" references to "libgupc".  Change "xupc" references
	to "xgupc".  Change "upc-cmd" references to "gupc".
	Change "gen-gccupc-ld-script.pl" references to "gen-upc-ld-script.pl".
	Change "libupc.spec" references to "libgupc.spec".
	* configure: Re-generate.
	* Makefile.am: Change "libupc" references to "libgupc".
	* Makefile.in: Re-generate.
	* config.h.in: Adjust for rename of libupc to libgupc.
	* configure.tgt: Ditto.
	* acinclude.m4: Ditto.
	* gen-inline-libgupc.pl: Re-name from gen-gccupc-inline-lib.pl
	Change "GCC/UPC" to "GUPC".
	* gen-upc-ld-script.pl: Re-name from gen-gccupc-ld-script.pl.
	* libgupc.texi: Re-name from libupc.texi.
	* libgupc.spec.in: Re-name from libupc.spec.in.
	* smp/upc_pgm_info.c (__upc_validate_pgm_info): Change "GCC/UPC"
	references to "GUPC".
	* smp/upc_main.c (__upc_run_threads): Ditto.
	* smp/upc_gasp.c: Ditto.
	* smp/upc_sysdep.h: Ditto.
        * testsuite/lib/libgupc-dg.exp: Re-name form libupc-dg.exp.
	* testsuite/lib/libgupc.exp: Re-name from libupc.a.
	* testsuite/libgupc.upc: Re-name from libupc.upc.

2011-10-18  Nenad Vukicevic  <nenad@intrepid.com>

	Fix support for large file support on 32-bit machines.

	* smp/upc_config.h: Move inclusion of 'config.h' to the top
	of the include list. This allows all system include files
	to see definition of _FILE_OFFSET_BITS=64 that enables large
	file support.

2011-10-02  Gary Funck  <gary@intrepid.com>

	Move the collectives library sources into their own directory
	and add support for additional runtime implementation models.
	* collectives/gen-upc-coll-reduce.pl: Moved from 'smp' directory.
	* collectives/upc_coll_broadcast.upc: Ditto.
	* collectives/upc_coll_err.upc: Ditto.
	* collectives/upc_coll_exchange.upc: Ditto.
	* collectives/upc_coll_gather_all.upc: Ditto.
	* collectives/upc_coll_gather.upc: Ditto.
	* collectives/upc_coll.h: Ditto.
	* collectives/upc_coll_init.upc: Ditto.
	* collectives/upc_coll_permute.upc: Ditto.
	* collectives/upc_coll_prefix_reduce.in: Ditto.
	* collectives/upc_coll_prefix_reduce.upc: Ditto.
	* collectives/upc_coll_readme.txt: Ditto.
	* collectives/upc_coll_reduce.in: Ditto.
	* collectives/upc_coll_reduce.upc: Ditto.
	* collectives/upc_coll_scatter.upc: Ditto.
	* collectives/upc_coll_sort.upc: Ditto.
	* smp/gcc-upc-lib.in: Moved from 'include' directory.
	* gen-gccupc-inline-lib.pl: Moved from 'smp' directory.
	* gen-gccupc-ld-script.pl: Ditto.
	* configure.ac: Implement support for additional runtime
	models. (Currently, only 'smp' is supported.)
	Build the collectives library from sources in the
	collectives directory.
	* Makefile.am: Likewise.
	* configure: Re-generate.
	* config.h.in: Re-generate.
	* Makefile.in: Re-generate.

2011-09-30  Gary Funck  <gary@intrepid.com>

	Generalize collectives library to support indefinite block sizes.
	* smp/upc_coll_prefix_reduce.in: If 'blk_size' is zero, then set it
	to 'nelems'.
	* smp/upc_coll_reduce.in: Ditto.
	* smp/upc_coll_prefix_reduce.upc: Re-generate.
	* smp/upc_coll_reduce.upc: Re-generate.

2011-09-19  Gary Funck  <gary@intrepid.com>

	* libupc/smp/upc_access.c (__getstf2, __getsxf2):
	Define temporary as "long double" rather than "double" to avoid
	loss of precision.
	* testsuite/libupc.upc/intrepid/test29.upc: Improve the test of
	"long double" by adding checks that required accuracy
	exceeds the accuracy of "double".

2011-09-02  Gary Funck  <gary@intrepid.com>

	Align UPC pointers-to-shared, only if the target enforces
	strict alignment.
	* configure.ac: Derive GUPCR_PTS_ALIGN from __UPC_PTS_ALIGN__,
	  if present.  Define GUPCR_PTS_ALIGN as a config.h variable.
	* smp/upc_pts.h (GUPCR_PTS_ALIGN): Use only if defined.
	* config.h.in: Re-generate.
	* configure: Re-generate.

2011-08-23  Nenad Vukicevic  <nenad@intrepid.com>

	* configure.ac: Enable detection of large file support on
	  32-bit machines.
	* configure: Re-generate.
	* config.h.in: Added define for large file support on 32-bit
	  machines.
	* smp/upc_config.h: Limit number of VM pages to the number
	  of configured VADDR bits.
	* smp/upc_sup.h: Prototype change.
	* smp/upc_vm.c (__upc_vm_alloc): Return an error if no
	  more virtual pages can be allocated.
	  (__upc_vm_alloc): Abort if initial number of VM pages cannot
	  be allocated.
	  (__upc_vm_get_cur_page_alloc): Check for error before NUMA
	  memory region mapping.
	* smp/upc_alloc.upc (__upc_global_heap_alloc): Return NULL pointer
	  if VM pages cannot be allocated.
	  (__upc_local_alloc): Return NULL pointer if memory is not available.

2011-08-16  Gary Funck  <gary@intrepid.com>

	* smp/upc_barrier.c (__upc_notify, __upc_wait):
	  Improve error messages.

2011-08-10  Gary Funck  <gary@intrepid.com>

	Define UPCFLAGS so that it is available in the Makefile,
	and assign CFLAGS as its default value.

	* configure.ac (UPCFLAGS): Default to CFLAGS if not set.
	  (UPCFLAGS): Make it an AC_SUBST() so that it can
	  be referenced in the Makefile.
	* Makefile.am (AM_UPCFLAGS): Make sure that it is update
	  the same as AM_CFLAGS.
	* configure, Makefile.in: Re-generate.

2011-06-06  Nenad Vukicevic  <nenad@intrepid.com>

	* smp/upc_config.h: Change default scheduling policy.
	  Allow the kernel to schedule UPC threads on its own.

2011-05-17  Gary Funck  <gary@intrepid.com>

	* configure.ac (GUPCR_PTS_VADDR_FIELD,
	  Delete unused definitions.
	  configure: Regenerate.

	* smp/upc_pts.h (GUPCR_PTS_THREAD_FIELD,
	  GUPCR_PTS_PHASE_FIELD): Delete unused definitions
	  and references.

	* config.h.in (GUPCR_PTS_THREAD_FIELD,
	  GUPCR_PTS_PHASE_FIELD): Delete unused definitions
	  and references.

	* upc-crtstuff.c: Delete include of "upc-conf.h".

2011-05-03  Gary Funck  <gary@intrepid.com>

	* smp/upc_alloc.upc (__upc_global_heap_alloc,
	  upc_free): Remove extraneous FIXME/TODO comments.

2011-05-01  Gary Funck  <gary@intrepid.com>

	* configure.ac (upc_crtstuff_mak): New AC_SUBST variable.
	* configure.tgt (upc_crtstuff_mak): Find upc-crtstuff.mak
	  on $config_path.
	* Makefile.am (upc_crtstuff_mak): Set make variable to value
	  of configured AC_SUBST value.  This eliminates an automake
	  error caused by a nested 'if' statement.
	* configure, Makefile.in, testsuite/Makefile.in: Regenerate.

2011-04-13  Gary Funck  <gary@intrepid.com>

	* testsuite/lib/libupc.exp (ALWAYS_CFLAGS):
	  Remove -lupc from required default switches.
	  The appropriate library is selected by the
	  libupc.spec file.

2011-03-22  Gary Funck  <gary@intrepid.com>

	* configure.tgt: Move linker switches into libupc.spec.

2011-03-20  Gary Funck  <gary@intrepid.com>

	Place error message strings directly into the calls to
	__upc_fatal(), rather than listing them separately
	as #define's.  The intent of this change is to make
	it easier to internationalize the message text
	using standard tools.

	* include/gcc-upc-lib.in: Remove include of lib_config_msgs
	  named code segment.

	* smp/upc_config.h: Remove #define's used to provide named
	  references to error messages.

	* smp/upc_lock.c, smp/upc_numa.c, smp/upc_access.c,
	  smp/upc_vm.c, smp/upc_main.c, smp/upc_alloc.upc,
	  smp/upc_sysdep.c, smp/upc_affinity.c, smp/upc_addr.c,
	  smp/upc_mem.h, smp/upc_barrier.c: Replace named references
	  with actual error message text strings.

2011-03-20  Gary Funck  <gary@intrepid.com>

	Move UPC start files, end files, and linker specs.
	into libupc.  This reduces the impact on common GCC
	configuration files, and ensures that these UPC-specific
	components are only built when the UPC language dialect is built.

	* upc-crtstuff.c: New file. Moved from gcc/upc/upc-crtstuff.c.

	* config/darwin/upc-crt-config.h: New file. Move defines for
	  UPC-related section begins/ends from gcc/config/darwin.h to here.

	* config/default/upc-crt-config.h: New file. Move defines for
	  UPC-related section begins/ends from gcc/config/upc-conf.h to here.

	* config/default/upc-crtstuff.mak: New file. Default makefile fragment for
	  building the upc-crtbegin and upc-crtend object files.
	  This logic was moved from libgcc/Makefile.in to here.

	* config.h.in: Regenerate with autoheader.  Rename HAVE_GUM_DEBUG
	  to GUPCR_HAVE_GUM_DEBUG.  Add define for HAVE_UPC_LINK_SCRIPT.

	* configure.ac, configure: Include new configure.tgt script
	  towards the end of the logic that configures the smp runtime.
	  Define substitutions for 'config_path', 'XCFLAGS',
	  'XLDFLAGS', 'link_upc_spec', 'upc_crtbegin_spec',
	  'upc_crtend_spec', 'upc_crtstuff_objs'. Add LIBUPC_CRTSTUFF
	  automake conditional.  Fix copyright date in AM_TOP() comment.
	  Define upc-crtbegin.spec libupc.spec upc-crtend.spec as
	  autoconf generated config. files.  Regenerate 'configure'.

	* configure.tgt: New. Target-specific configuration logic.
	  Defines 'config_path', 'upc_crtstuff', 'upc_crtbegin_spec',
	  'upc_crtend_spec', 'upc_crtstuff_objs' variables; these are used
	  to control the build of the UPC-related begin/end files
	  and associated target-specific compiler specification files.

	* libupc.spec.in, upc-crtbegin.spec.in, upc-crtend.spec.in: New.
	  Define target-specific compiler specifications for linking
	  and for inclusion of UPC-related start/end object files
	  when a UPC program is linked.  These files are used
	  to create resulting .spec files that are included via
	  GCC's link spec. when a UPC program is linked.

	* Makefile.am: Add rules to build and install upc-crtbegin.spec,
	  libupc.spec, and upc-crtend.spec from there .in files.
	  Add rules to build the UPC-specific start/end files if the
	  automake conditional LIBUPC_CRTSTUFF is enabled.
	  Fix references to make variables $(UPC_COLL_PREFIX_REDUCE_UPC)
	  and $(UPC_COLL_REDUCE_UPC) in MAINTAINER_MODE block.

        * Makefile.in, testsuite/Makefile.in: Regenerate with automake.

	* smp/Make-defs, smp/Make-deps, smp/Make-rules: Remove.
	  These Makefile fragments have not been used since libupc
	  was re-worked to use automake (when the gupc branch
	  was first checked in).

	* smp/upc_config.h: Move the defintions of GUPCR_INIT_ARRAY_START
	  and GUPCR_INIT_ARRAY_END from smp/upc_main.c to here.

	* smp/upc_main.c: Rename HAVE_GUM_DEBUG to GUPCR_HAVE_GUM_DEBUG.
	  Move the defintions of GUPCR_INIT_ARRAY_START and
	  GUPCR_INIT_ARRAY_END to smp/upc_config.h.

2011-02-22  Gary Funck  <gary@intrepid.com>

	* include/gcc-upc.h (barrier, barrier_notify, barrier_wait,
	  forall, fence): Remove #define's that renamed these deprecated
	UPC keywords into their equivalents in the current UPC
	language specification.

2011-02-08  Gary Funck  <gary@intrepid.com>

	* acinclude.m4, configure.ac, include/gasp.h,
	  include/gasp_upc.h, include/gcc-upc.h, include/gcc-upc-lib.in,
	  include/pupc.h, include/upc_collective.h, include/upc.h,
	  include/upc_relaxed.h, include/upc_strict.h, libupc.texi,
	  smp/upc_access.c, smp/upc_accessg.c, smp/upc_access.h,
	  smp/upc_addr.c, smp/upc_affinity.c, smp/upc_affinity.h,
	  smp/upc_affinity_stub.c, smp/upc_allocg.upc,
	  smp/upc_alloc.upc, smp/upc_barrier.c, smp/upc_config.h,
	  smp/upc_debug.h, smp/upc_defs.h, smp/upc_gasp.c, smp/upc_gum.c,
	  smp/upc_libg.c, smp/upc_lib.h, smp/upc_lock.c, smp/upc_main.c,
	  smp/upc_mem.c, smp/upc_mem.h, smp/upc_numa.c, smp/upc_numa.h,
	  smp/upc_numa_stub.c, smp/upc_pgm_info.c, smp/upc_pts.h,
	  smp/upc_pupc.c, smp/upc_pupc.h, smp/upc_sup.h, smp/upc_sync.h,
	  smp/upc_sysdep.c, smp/upc_sysdep.h, smp/upc_vm.c:
	Update copyright notices.

2010-10-18  Gary Funck  <gary@intrepid.com>

	* smp/upc_alloc.upc: upc_alloc.upc: remove pointer arithmetic on
	  (shared void *) types.

	  Now that GCC/UPC prohibits arithmetic on "(shared void *)" types,
	  re-work the logic in upc_alloc.upc to avoid operating directly on
	  "(shared void *)" type.

2010-10-16  Gary Funck  <gary@intrepid.com>

	* smp/upc_main.c: Fix comment format.

2010-10-16  Gary Funck  <gary@intrepid.com>

	* smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement fixes
	  for SGI/IRIX/MIPS port.

	  The gcc/Makefile.in rules for install-plugin had to be re-written to
	  break up a long list of header files that exceeded the command line
	  limitation imposed by Irix.

	  Access functions for TFmode types had to be implemented.
	  Apparently, this is the mode used for the SGI/MIPS port to represent
	  "long float".

	  See also: gcc/Makefile.in libupc/smp/upc_access.c
	  libupc/smp/upc_access.h libupc/smp/upc_accessg.c

2010-10-16  Nenad Vukicevic  <nenad@intrepid.com>

	* include/gcc-upc.h, smp/upc_main.c: Fix rand() implementation for
	  pthreads run-time.

	  For the pthreads implementation we keep a per-thread random seed
	  number.  This way, calls to rand() function will return the same
	  value on each thread.

	  rand() and srand() functions are redefined as __upc_random and
	  __upc_srandom.

2010-10-10  Gary Funck  <gary@intrepid.com>

	* include/upc_collective.h, smp/gen-upc-coll-reduce.pl,
	  smp/upc_coll_prefix_reduce.upc, smp/upc_coll_reduce.upc:
	  Implement collectives on "long double" objects.

	  See also: libupc/include/upc_collective.h
	  libupc/smp/gen-upc-coll-reduce.pl
	  libupc/smp/upc_coll_prefix_reduce.upc libupc/smp/upc_coll_reduce.upc

2010-10-09  Gary Funck  <gary@intrepid.com>

	* smp/: upc_access.c, upc_access.h, upc_accessg.c: Implement shared
	  access to "long float" data type.

	  See also: libupc/smp/upc_access.c libupc/smp/upc_access.h
	  libupc/smp/upc_accessg.c

2010-09-24  Gary Funck  <gary@intrepid.com>

	* smp/upc_main.c: Fix bug: Failure to initialize per-thread
	  static variables that refer to shared addresses.

	  The shared data initialization routine created by the compiler needs
	  to be called on each threead, because in some cases it will
	  initialize per thread data.  At the moment, the compiler does not
	  generate code that will differentiate between initialization code
	  that should only occur on thread 0, so some additional work may get
	  done.  In the future, that aspect of initialization will be
	  corrected.

2010-09-22  Gary Funck  <gary@intrepid.com>

	* include/gcc-upc-lib.in, include/upc.h, smp/upc_main.c:
	  Fix bug: Nested upc_forall() semantics are not implemented

	  The checkforall test in the Berkeley harness test suite indicated
	  that GCC/UPC was not properly implementing nested upc_forall
	  semantics.  Nested upc_forall statements (both statically or
	  dynamically nested) must implement their affinity clause as if it
	  were "continue"; thus all steps in the loop must execute without
	  regard for affinity.  To implement these semantics a global depth
	  counter, __upc_forall_depth, is maintained by the generated code
	  that implements upc_forall.

	  See also: gcc/c-parser.c gcc/c-tree.h gcc/stub-upc.c
	  gcc/upc/upc-act.c gcc/upc/upc-act.h libupc/include/gcc-upc-lib.in
	  libupc/include/upc.h libupc/smp/upc_main.c

2010-09-18  Gary Funck  <gary@intrepid.com>

	* Makefile.in, config.h.in, configure, configure.ac, include/upc.h,
	  smp/Make-defs, smp/upc_accessg.c, smp/upc_allocg.upc,
	  smp/upc_defs.h, smp/upc_libg.c, smp/upc_main.c, smp/upc_sup.h:
	  Implement -fupc-debug switch.

2010-02-28  Gary Funck  <gary@intrepid.com>

	Initial implementation and checkin.

