summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Funck <gfunck@gcc.gnu.org>2015-08-12 23:58:31 +0000
committerGary Funck <gfunck@gcc.gnu.org>2015-08-12 23:58:31 +0000
commit9a2ad3455c6eb7e52db9331041920a9f87ba11f5 (patch)
tree048673fb3f7aa84b08033ad537a61c94b87700d5
parentf9b438b8edc28cf782734b96e38a33e5e250a719 (diff)
downloadgcc-9a2ad3455c6eb7e52db9331041920a9f87ba11f5.tar.gz
Cherry pick gupc branch updates, up to version 226835.
From-SVN: r226841
-rw-r--r--gcc/ChangeLog.upc106
-rw-r--r--gcc/c-family/c-gimplify.c13
-rw-r--r--gcc/c-family/c-upc-low.c28
-rw-r--r--gcc/c/c-convert.c5
-rw-r--r--gcc/c/c-decl.c3
-rw-r--r--gcc/c/c-typeck.c4
-rw-r--r--gcc/config/rs6000/rs6000.c53
-rw-r--r--gcc/doc/gupc.texi93
-rw-r--r--gcc/doc/install.texi35
-rw-r--r--gcc/doc/invoke.texi69
-rw-r--r--gcc/doc/passes.texi95
-rw-r--r--gcc/doc/sourcebuild.texi6
-rw-r--r--gcc/function.c7
-rw-r--r--gcc/tree-core.h2
-rw-r--r--gcc/tree.c1
-rw-r--r--gcc/tree.h2
-rw-r--r--libgupc/ChangeLog70
-rw-r--r--libgupc/Makefile.in190
-rw-r--r--libgupc/aclocal.m478
-rwxr-xr-xlibgupc/configure115
-rw-r--r--libgupc/configure.ac50
-rw-r--r--libgupc/configure.tgt9
-rw-r--r--libgupc/libgupc.texi69
-rw-r--r--libgupc/portals4/gupcr_nb.upc6
-rw-r--r--libgupc/portals4/gupcr_nb_sup.c10
-rw-r--r--libgupc/portals4/gupcr_node.c2
-rw-r--r--libgupc/portals4/gupcr_pts.h4
-rw-r--r--libgupc/smp/upc_backtrace.c5
-rw-r--r--libgupc/smp/upc_pts.h4
-rw-r--r--libgupc/smp/upc_sysdep.c6
-rw-r--r--libgupc/testsuite/Makefile.in60
31 files changed, 859 insertions, 341 deletions
diff --git a/gcc/ChangeLog.upc b/gcc/ChangeLog.upc
index e11807eaafc..20c244b69a1 100644
--- a/gcc/ChangeLog.upc
+++ b/gcc/ChangeLog.upc
@@ -1,8 +1,94 @@
+2015-08-12 Gary Funck <gary@intrepid.com>
+
+ Cherry pick gupc branch updates, up to version 226835.
+
2015-07-16 Gary Funck <gary@intrepid.com>
Merge GCC 5.2 release into gupc-5-branch.
Merge gcc-5-branch version 225864 into gupc-5-branch.
+2015-06-23 Gary Funck <gary@intrepid.com>
+
+ * function.c (assign_parm_setup_reg): Improve check for
+ struct PTS.
+
+2015-06-06 Gary Funck <gary@intrepid.com>
+
+ * config/rs6000/rs6000.c (rs6000_pass_by_reference):
+ Check for UPC struct pointer-to-shared type,
+ if using V4 ABI (typical of 32 bit target).
+
+2015-05-27 Gary Funck <gary@intrepid.com>
+
+ * config/rs6000/rs6000.c (rs6000_return_in_memory):
+ Generalize check for struct PTS to handle various ABI's.
+ (rs6000_function_arg_boundary): Simplify the check for struct PTS.
+ (rs6000_function_value): Improve formatting.
+
+2015-05-24 Gary Funck <gary@intrepid.com>
+
+ * tree-core.h, tree.h: Fix typo introduced in revision 209120.
+
+2015-05-23 Gary Funck <gary@intrepid.com>
+
+ * config/rs6000/rs6000.c (rs6000_function_arg_boundary):
+ Disable ABI warning for UPC pointer-to-shared types
+ or the PTS representation type.
+
+2015-05-22 Gary Funck <gary@intrepid.com>
+
+ * config/rs6000/rs6000.c (s6000_function_arg_boundary):
+ Check for UPC pointer-to-shared type in logic that
+ handles new ABI for types that are aligned at >= 16 bytes.
+
+2015-05-22 Gary Funck <gary@intrepid.com>
+
+ Fix RTL check for "struct-PTS".
+ * function.c (assign_parm_setup_reg): Don't call mark_reg_pointer()
+ with a UPC pointer-to-shared.
+
+2015-05-13 Gary Funck <gary@intrepid.com>
+
+ Fix ICE when initializing a global shared variable of type __int128.
+ * c/c-convert.c (convert):
+ Drop 'shared' qualifier for all conversions.
+ Previously, this was done only for types that
+ shared the same main variant.
+
+2015-05-12 Gary Funck <gary@intrepid.com>
+
+ Fix ICE when compiling nested functions.
+ * c-family/c-gimplify.c: Revert to trunk.
+ * c/c-decl.c (finish_function):
+ Move call to upc_genericize here.
+ * c-family/c-upc-low.c (upc_genericize_function): Renamed.
+ Was: upc_genericize_fndecl.
+ Remove logic that attempted to explicitly save/restore
+ current_function_decl.
+ (upc_genericize_function_tree): Delete.
+
+2015-05-11 Gary Funck <gary@intrepid.com>
+
+ Remove asserts which check for attempt to qualify an ARRAY_TYPE.
+ Caused an ICE when compiling gcc.dg/pointer-array-quals-*.c.
+ * c/c-typeck.c (qualify_type): Revert to trunk.
+
+2015-05-08 Gary Funck <gary@intrepid.com>
+
+ Revert cosmetic changes to trunk to avoid spurious differences.
+ * tree.c: Remove extra blank line.
+ * c/c-typeck.c: Add back extra blank line.
+
+2015-04-30 Gary Funck <gary@intrepid.com>
+
+ * doc/passes.texi: Add @section command for "UPC Transformation".
+
+2015-04-29 Gary Funck <gary@intrepid.com>
+
+ * doc/gupc.texi, doc/install.texi, doc/invoke.texi,
+ doc/passes.texi, doc/sourcebuild.texi:
+ Update GUPC documentation.
+
2015-04-12 Gary Funck <gary@intrepid.com>
Merge trunk version 222024 into gupc-5-branch.
@@ -1235,7 +1321,7 @@
Merge trunk version 185278 into gupc branch.
* c-decl.c (c_build_pointer_type): For UPC pointer-to-shared types
call build_pointer_type() to apply UPC-specific qualifiers.
- * top-level/configure.ac: factor the checking for posix hostst
+ * top-level/configure.ac: factor the checking for posix hosts
out of the libgomp section so that it can also be used by libgupc.
* top-level/configure: Re-generate.
* DEV-PHASE: bump to 4.8.0-1.
@@ -1418,7 +1504,7 @@
* gcc/ada/mlib-tgt-specific-darwin.adb: Ditto.
* gcc/ada/gcc-interface/Makefile.in: Ditto.
* top-level/configure: Re-generate.
- * gcc/configure: Re-genrate.
+ * gcc/configure: Re-generate.
2011-10-26 Gary Funck <gary@intrepid.com>
@@ -1715,7 +1801,7 @@
Merge trunk version 177548 into gupc branch.
* config/i386/i386.c (ix86_promote_function_mode):
Do not promote UPC pointers-to-shared to Pmode.
- * c-family/c-ommon.c (pointer_int_sum):
+ * c-family/c-common.c (pointer_int_sum):
Also check the pointer operand, rather than just
its type, when making the decision to derive
the equivalent unshared type.
@@ -2498,7 +2584,7 @@
It had been incorrectly spelled as Objc.
* c-family/c.opt: Add UPC for the various switches
that are valid for both C and ObjC.
- * c-fmaily/c-opts.c: Add CL_UPC to the list of
+ * c-family/c-opts.c: Add CL_UPC to the list of
supported options switches when compiling assembly
language.
* lto/lto-lang.c (use_upc_dwarf2_extensions,
@@ -2532,7 +2618,7 @@
C preprocessor. This is not necessary because
UPC is a derivative of C99, and does not need
a different language kind.
- * c-fmaily/c-opts.c (c_common_handle_option):
+ * c-family/c-opts.c (c_common_handle_option):
Call set_std_c99() when processing the
"--lang upc" switch, instead of setting the
language kind to CL_UPC.
@@ -2900,7 +2986,7 @@
Merge trunk version 177548 into gupc branch.
* config/i386/i386.c (ix86_promote_function_mode):
Do not promote UPC pointers-to-shared to Pmode.
- * c-family/c-ommon.c (pointer_int_sum):
+ * c-family/c-common.c (pointer_int_sum):
Also check the pointer operand, rather than just
its type, when making the decision to derive
the equivalent unshared type.
@@ -2920,7 +3006,7 @@
* upc/upc-genericize.c (upc_expand_put): Fix bug, where strict/relaxed
qualification was incorrectly derived from the source operand.
(upc_genericize_fndecl): New.
- (upc_gnericize): Call upc_genericize_fndecl() to avoid calling
+ (upc_genericize): Call upc_genericize_fndecl() to avoid calling
c_genericize() more than once in the event of nested procedures.
(upc_genericize_real_imag_ref): Rename,
was: upc_genericize_real_image_ref.
@@ -3476,7 +3562,7 @@
2011-04-29 Gary Funck <gary@intrepid.com>
- * upc/upc-gimplify.c (upc_expsnd_get): Improve error diagnostics.
+ * upc/upc-gimplify.c (upc_expand_get): Improve error diagnostics.
(upc_expand_put): Ditto.
(upc_shared_addr): Ditto.
(upc_gimplify_sync_stmt): Ditto.
@@ -4247,7 +4333,7 @@
It had been incorrectly spelled as Objc.
* c-family/c.opt: Add UPC for the various switches
that are valid for both C and ObjC.
- * c-fmaily/c-opts.c: Add CL_UPC to the list of
+ * c-family/c-opts.c: Add CL_UPC to the list of
supported options switches when compiling assembly
language.
* lto/lto-lang.c (use_upc_dwarf2_extensions,
@@ -4281,7 +4367,7 @@
C preprocessor. This is not necessary because
UPC is a derivative of C99, and does not need
a different language kind.
- * c-fmaily/c-opts.c (c_common_handle_option):
+ * c-family/c-opts.c (c_common_handle_option):
Call set_std_c99() when processing the
"--lang upc" switch, instead of setting the
language kind to CL_UPC.
diff --git a/gcc/c-family/c-gimplify.c b/gcc/c-family/c-gimplify.c
index 739d95b064f..4e7a96f2be7 100644
--- a/gcc/c-family/c-gimplify.c
+++ b/gcc/c-family/c-gimplify.c
@@ -58,7 +58,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "langhooks.h"
#include "langhooks-def.h"
-#include "c-upc-low.h"
#include "flags.h"
#include "dumpfile.h"
#include "c-pretty-print.h"
@@ -141,8 +140,8 @@ ubsan_walk_array_refs_r (tree *tp, int *walk_subtrees, void *data)
/* Convert the tree representation of FNDECL from C frontend trees to
GENERIC. */
-static void
-c_common_genericize (tree fndecl)
+void
+c_genericize (tree fndecl)
{
FILE *dump_orig;
int local_dump_flags;
@@ -181,14 +180,6 @@ c_common_genericize (tree fndecl)
c_genericize (cgn->decl);
}
-void
-c_genericize (tree fndecl)
-{
- if (flag_upc)
- upc_genericize (fndecl);
- c_common_genericize (fndecl);
-}
-
static void
add_block_to_enclosing (tree block)
{
diff --git a/gcc/c-family/c-upc-low.c b/gcc/c-family/c-upc-low.c
index 687aceedbc7..b518cb04b30 100644
--- a/gcc/c-family/c-upc-low.c
+++ b/gcc/c-family/c-upc-low.c
@@ -98,7 +98,7 @@ static void upc_genericize_compound_expr (tree *, int);
static void upc_genericize_cond_expr (tree *, int);
static void upc_genericize_decl_expr (tree *);
static tree upc_genericize_expr (tree *, int *, void *);
-static void upc_genericize_fndecl (tree);
+static void upc_genericize_function (tree);
static void upc_genericize_field_ref (location_t, tree *);
static void upc_genericize_forall_stmt (tree *);
static void upc_genericize_indirect_ref (location_t, tree *);
@@ -1322,19 +1322,16 @@ upc_genericize_body (tree *body_p, tree fndecl)
input_location = saved_location;
}
-/* Convert the function tree rooted at FNDECL into GENERIC.
- After some initial set up, call upc_genericize_body()
- on the function body. */
+/* Convert the tree representation of FNDECL, along with all nested
+ functions defined within it, into the GENERIC form. */
static void
-upc_genericize_function_tree (tree fndecl)
+upc_genericize_function (tree fndecl)
{
- tree oldfn;
+ struct cgraph_node *cgn;
gcc_assert (DECL_SAVED_TREE (fndecl));
- oldfn = current_function_decl;
- current_function_decl = fndecl;
if (DECL_STRUCT_FUNCTION (fndecl))
push_cfun (DECL_STRUCT_FUNCTION (fndecl));
else
@@ -1349,22 +1346,11 @@ upc_genericize_function_tree (tree fndecl)
upc_instrument_func (fndecl);
}
- current_function_decl = oldfn;
pop_cfun ();
-}
-
-/* Convert the tree representation of FNDECL, along with all nested
- functions defined within it, into the GENERIC form. */
-static void
-upc_genericize_fndecl (tree fndecl)
-{
- struct cgraph_node *cgn;
- /* Lower this function and any nested functions. */
- upc_genericize_function_tree (fndecl);
cgn = cgraph_node::get_create (fndecl);
for (cgn = cgn->nested; cgn; cgn = cgn->next_nested)
- upc_genericize_fndecl (cgn->decl);
+ upc_genericize_function (cgn->decl);
}
/* If the accumulated UPC initialization statement list is
@@ -1389,7 +1375,7 @@ upc_write_init_func (void)
void
upc_genericize (tree fndecl)
{
- upc_genericize_fndecl (fndecl);
+ upc_genericize_function (fndecl);
}
/* Return TRUE if either DECL's type is a UPC shared type, or if
diff --git a/gcc/c/c-convert.c b/gcc/c/c-convert.c
index 40cbcc5e8fe..1c8f22f94bf 100644
--- a/gcc/c/c-convert.c
+++ b/gcc/c/c-convert.c
@@ -103,9 +103,8 @@ convert (tree type, tree expr)
/* Drop 'shared' qualifier when considering conversions
of expression values. */
- if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (TREE_TYPE (expr))
- && upc_shared_type_p (type))
- return fold_convert_loc (loc, build_upc_unshared_type(type), expr);
+ if (upc_shared_type_p (type))
+ type = build_upc_unshared_type(type);
if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (TREE_TYPE (expr))
&& (TREE_CODE (TREE_TYPE (expr)) != COMPLEX_TYPE
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index b4ccd230fb8..057a5e4e712 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -65,6 +65,7 @@ along with GCC; see the file COPYING3. If not see
#include "c-family/c-common.h"
#include "c-family/c-objc.h"
#include "c-family/c-upc.h"
+#include "c-family/c-upc-low.h"
#include "c-family/c-pragma.h"
#include "c-family/c-ubsan.h"
#include "c-lang.h"
@@ -9198,6 +9199,8 @@ finish_function (void)
if (!decl_function_context (fndecl))
{
invoke_plugin_callbacks (PLUGIN_PRE_GENERICIZE, fndecl);
+ if (flag_upc)
+ upc_genericize (fndecl);
c_genericize (fndecl);
/* ??? Objc emits functions after finalizing the compilation unit.
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index c6303f9b977..76cfbaccb47 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -359,9 +359,6 @@ qualify_type (tree type, tree like)
int result_quals;
tree result_block_factor = NULL_TREE;
- gcc_assert (type && TREE_CODE (type) != ARRAY_TYPE);
- gcc_assert (like && TREE_CODE (like) != ARRAY_TYPE);
-
/* If the two named address spaces are different, determine the common
superset address space. If there isn't one, raise an error. */
if (!addr_space_superset (as_type, as_like, &as_common))
@@ -11638,6 +11635,7 @@ build_binary_op (location_t location, enum tree_code code,
return ret;
}
+
/* Convert EXPR to be a truth-value, validating its type for this
purpose. LOCATION is the source location for the expression. */
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 98b90503d3d..87679d026e1 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -9233,22 +9233,26 @@ rs6000_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
/* Otherwise fall through to more conventional ABI rules. */
}
-#if HAVE_UPC_PTS_STRUCT_REP
- if (POINTER_TYPE_P (type) && upc_shared_type_p (TREE_TYPE (type)))
- return true;
-#endif
-
/* The ELFv2 ABI returns homogeneous VFP aggregates in registers */
if (rs6000_discover_homogeneous_aggregate (TYPE_MODE (type), type,
NULL, NULL))
return false;
+ /* TYPE is a UPC pointer-to-shared type
+ and its underlying representation is an aggregate. */
+ bool upc_struct_pts_p = (POINTER_TYPE_P (type)
+ && upc_shared_type_p (TREE_TYPE (type)))
+ && AGGREGATE_TYPE_P (upc_pts_rep_type_node);
+ /* If TYPE is a UPC struct PTS type, handle it as an aggregate type. */
+ bool aggregate_p = AGGREGATE_TYPE_P (type)
+ || upc_struct_pts_p;
+
/* The ELFv2 ABI returns aggregates up to 16B in registers */
- if (DEFAULT_ABI == ABI_ELFv2 && AGGREGATE_TYPE_P (type)
+ if (DEFAULT_ABI == ABI_ELFv2 && aggregate_p
&& (unsigned HOST_WIDE_INT) int_size_in_bytes (type) <= 16)
return false;
- if (AGGREGATE_TYPE_P (type)
+ if (aggregate_p
&& (aix_struct_return
|| (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 8))
return true;
@@ -9560,6 +9564,18 @@ rs6000_function_arg_boundary (machine_mode mode, const_tree type)
|| DEFAULT_ABI == ABI_ELFv2)
&& type && TYPE_ALIGN (type) > 64)
{
+
+ /* If the underlying UPC pointer-to-shared representation
+ an aggregate, and TYPE is either a pointer-to-shared
+ or the PTS representation type, then return the 16-byte
+ alignment and skip the ABI warning. */
+ if (upc_pts_rep_type_node
+ && AGGREGATE_TYPE_P (upc_pts_rep_type_node)
+ && ((POINTER_TYPE_P (type)
+ && upc_shared_type_p (TREE_TYPE (type)))
+ || (TYPE_MAIN_VARIANT (type) == upc_pts_rep_type_node)))
+ return 128;
+
/* "Aggregate" means any AGGREGATE_TYPE except for single-element
or homogeneous float/vector aggregates here. We already handled
vector aggregates above, but still need to check for float here. */
@@ -10835,18 +10851,16 @@ rs6000_pass_by_reference (cumulative_args_t cum ATTRIBUTE_UNUSED,
if (!type)
return 0;
-#if HAVE_UPC_PTS_STRUCT_REP
- if (DEFAULT_ABI == ABI_V4 && POINTER_TYPE_P (type)
- && upc_shared_type_p (TREE_TYPE (type)))
- {
- if (TARGET_DEBUG_ARG)
- fprintf (stderr,
- "function_arg_pass_by_reference: V4 UPC ptr to shared\n");
- return 1;
- }
-#endif
+ /* TYPE is a UPC pointer-to-shared type
+ and its underlying representation is an aggregate. */
+ bool upc_struct_pts_p = (POINTER_TYPE_P (type)
+ && upc_shared_type_p (TREE_TYPE (type)))
+ && AGGREGATE_TYPE_P (upc_pts_rep_type_node);
+ /* If TYPE is a UPC struct PTS type, handle it as an aggregate type. */
+ bool aggregate_p = AGGREGATE_TYPE_P (type)
+ || upc_struct_pts_p;
- if (DEFAULT_ABI == ABI_V4 && AGGREGATE_TYPE_P (type))
+ if (DEFAULT_ABI == ABI_V4 && aggregate_p)
{
if (TARGET_DEBUG_ARG)
fprintf (stderr, "function_arg_pass_by_reference: V4 aggregate\n");
@@ -31902,7 +31916,8 @@ rs6000_function_value (const_tree valtype,
if ((INTEGRAL_TYPE_P (valtype)
&& GET_MODE_BITSIZE (mode) < (TARGET_32BIT ? 32 : 64))
- || (POINTER_TYPE_P (valtype) && !upc_shared_type_p (TREE_TYPE (valtype))))
+ || (POINTER_TYPE_P (valtype)
+ && !upc_shared_type_p (TREE_TYPE (valtype))))
mode = TARGET_32BIT ? SImode : DImode;
if (DECIMAL_FLOAT_MODE_P (mode) && TARGET_HARD_FLOAT && TARGET_FPRS)
diff --git a/gcc/doc/gupc.texi b/gcc/doc/gupc.texi
index 528b01f740e..e967dbc9386 100644
--- a/gcc/doc/gupc.texi
+++ b/gcc/doc/gupc.texi
@@ -28,7 +28,7 @@ any later version published by the Free Software Foundation; with the
Invariant Sections being ``GNU General Public License'' and ``Funding
Free Software'', the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below). A copy of the license is
-included in the
+included in the
@c man end
section entitled ``GNU Free Documentation License''.
@ignore
@@ -80,20 +80,20 @@ Boston, MA 02110-1301, USA@*
@chapter @command{gupc}--- UPC compiler for parallel computers
@command{gupc} provides a compilation and execution environment for
-programs written in the UPC (Unified Parallel C) language.
+programs written in the UPC (Unified Parallel C) language.
@menu
-* Gupc Intro:: Introduction to gupc.
+* GUPC Intro:: Introduction to gupc.
* Threads:: Number of Execution Threads.
-* Invoking Gupc:: How to use gupc.
-* Gupc Options:: Gupc Options.
-* Seealso:: Referencies.
-* Gupc Bugs:: Report Gupc Problems.
-* Contributors:: Gupc Contributors.
+* Invoking GUPC:: How to use gupc.
+* GUPC Options:: GUPC Options.
+* See also:: References.
+* GUPC Bugs:: Report GUPC Problems.
+* Contributors:: GUPC Contributors.
* Index:: Index.
@end menu
-@node Gupc Intro
+@node GUPC Intro
@section Introduction to @command{gupc}
@c man begin DESCRIPTION
@@ -171,14 +171,14 @@ execution option.
@c man end
-@node Invoking Gupc
+@node Invoking GUPC
@section Invoking @command{gupc}
@c man begin SYNOPSIS
gupc @r{[}@var{options}@r{]} @file{files}
@c man end
-@node Gupc Options
+@node GUPC Options
@section @command{gupc} Options
@c man begin OPTIONS
@@ -188,8 +188,8 @@ gupc @r{[}@var{options}@r{]} @file{files}
@table @gcctabopt
@item -v
@cindex @option{-v}
-Print (on standard error output) the commands executed to run the stages
-of compilation. Also print the version number of the compiler driver
+Print (on standard error output) the commands executed to run the stages
+of compilation. Also print the version number of the compiler driver
program and of the preprocessor and the compiler proper.
@end table
@@ -200,11 +200,12 @@ program and of the preprocessor and the compiler proper.
@cindex @option{-x}
All source files ending in @file{.upc}, @file{.c}, or @file{.upci} will
be compiled by the @command{gupc} compiler. The @option{-x upc} option
-tells the compiler to process all of the following file names as
-UPC source code, ignoring the default language typically associated
+tells the compiler to process all of the following file names as
+UPC source code, ignoring the default language typically associated
with filename extensions.
-@item -fupc-threads-N
+@item -fupc-threads=N
+@cindex @option{-fupc-threads}
Specify the number of threads at compile-time as @option{N}. See the
Number of Threads section, above.
@@ -215,10 +216,10 @@ is directly mapped to one pthread.
@item -fupc-inline-lib
@cindex @option{-fupc-inline-lib}
-Inline UPC run-time library calls. This option is turned on by default
-when compiled with optimization and the @option{-fno-upc-inline-lib} option
-must be specified to turn it off. In general, inlining of run-time
-library calls produces larger code. Turn it off if more
+Inline UPC run-time library calls. This option is turned on by default
+when compiled with optimization and the @option{-fno-upc-inline-lib} option
+must be specified to turn it off. In general, inlining of run-time
+library calls produces larger code. Turn it off if more
condensed code is required.
@item -fupc-pre-include
@@ -242,9 +243,9 @@ Totalview debugger.
@item -fupc-debug
@cindex @option{-fupc-debug}
-Generate calls to the UPC run-time library that include source filename and line
-number information that is used to print more informative error messages when
-errors are detected at run-time.
+Generate calls to the UPC run-time library that include source filename
+and line number information that is used to print more informative
+error messages when errors are detected at run-time.
@end table
@subsection Instrumentation Options
@@ -252,12 +253,12 @@ errors are detected at run-time.
@table @gcctabopt
@item -fupc-instrument
@cindex @option{-fupc-instrument}
-Instrument UPC shared accesses and library calls using GASP tool
+Instrument UPC shared accesses and library calls using GASP tool
support. This option implies @option{-fno-upc-inline-lib}.
@item -fupc-instrument-functions
@cindex @option{-fupc-instrument-functions}
-Instrument functions calls using GASP tool support. This option implies
+Instrument functions calls using GASP tool support. This option implies
@option{-fupc-instrument} and @option{-fno-upc-inline-lib}.
@end table
@@ -281,7 +282,7 @@ command line.
@file{UPC_program}
@r{[}@option{number of threads}@r{]}
@r{[}@option{heap size}@r{]}
-@r{[}@option{affinity options}@r{]}
+@r{[}@option{affinity options}@r{]}
@r{[}@option{program arguments}@r{]}
@table @gcctabopt
@@ -321,16 +322,16 @@ specifies that threads are evenly scheduled over available CPUs.
(A CPU is a processor with a single core or a core unit in a multicore
processor.)
@item strict
-is similar to cpu scheduling except that one to one mapping of
+is similar to cpu scheduling except that one to one mapping of
threads and CPUs is required.
@item node
-specifies that threads are scheduled on nodes if a NUMA-aware kernel
-is available.
+specifies that threads are scheduled on nodes if a NUMA-aware kernel
+is available.
@item auto
specifies that the UPC run-time should not manage scheduling of UPC threads.
@end table
-@item -sched-cpu-avoid n1,n2,..
+@item -sched-cpu-avoid n1,n2,..
@cindex @option{-sched-cpu-avoid}
Specifies the availability of CPUs for UPC thread scheduling. The UPC
run-time will not schedule any thread on the specified CPUs.
@@ -351,36 +352,36 @@ lets the kernel decide the memory allocation policy.
@c man end
@node Seealso
-@section Referencies
+@section References
@c man begin SEEALSO
gcc(1), cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
-@uref{http://upc.lbl.gov/publications/UPC-TR-Original99.pdf}
-Introduction to UPC and Language Specification,
+@w{@uref{http://upc.lbl.gov/publications/UPC-TR-Original99.pdf}}
+Introduction to UPC and Language Specification,
William W. Carlson et al., LLNL, CCS-TR-99-157, May 13, 1999
-@uref{http://www.gwu.edu/~upc/docs/upc_specs_1.2.pdf}
-UPC Language Specification,
-Tarek A. El-Ghazawi et al, February 25, 2001
+@w{@uref{http://upc.lbl.gov/publications/upc-spec-1.3.pdf}}
+UPC Language Specifications, Version 1.3
+A publication of the UPC Consortium
-@uref{http://gasp.hcs.ufl.edu/}
-GASP Tool Interface,
+@uref{http://gasp.hcs.ufl.edu/ppw/}
+GASP Tool Interface,
University of Florida
-@uref{http://www.gccupc.org}
+@uref{http://www.gccupc.org}
GNU UPC web site
-@uref{http://www.gwu.edu/~upc/software/gnu-upc-ml.html}
-GNU UPC Mailing List is an electronic forum for discussing
-news announcements, bug reports, planned developments, and other
+@uref{http://www.gwu.edu/~upc/software/gnu-upc-ml.html}
+GNU UPC Mailing List is an electronic forum for discussing
+news announcements, bug reports, planned developments, and other
topics of interest to GNU UPC developers and users.
-@c man end
+@c man end
-@node Gupc Bugs
-@section Report Gupc Problems
+@node GUPC Bugs
+@section Report GUPC Problems
@c man begin BUGS
Report bugs at @uref{http://gccupc.org/bugs}.
@c man end
@@ -398,7 +399,7 @@ William W. Carlson @email{wwc@@super.org}.
@c man begin AUTHOR
See the Info entry for @command{gupc}, or
-@uref{http://gcc.gnu.org/onlinedocs/gcc/Contributors.html}
+@uref{http://gcc.gnu.org/onlinedocs/gcc/Contributors.html}
for contributors to GCC and GUPC.
@c man end
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index d8d393985c3..45536aa9fa1 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -1597,6 +1597,9 @@ support for @code{libquadmath} on systems supporting it.
Specify that the GNU Offloading and Multi Processing Runtime Library
should not be built.
+@item --disable-libgupc
+Specify that the run-time libraries used by GNU UPC should not be built.
+
@item --disable-libvtv
Specify that the run-time libraries used by vtable verification
should not be built.
@@ -2081,6 +2084,38 @@ When you use this option, you should ensure that @var{dir} includes
tools.
@end table
+@subheading UPC-Specific Options
+
+The following options apply to the build of the GCC front end;
+they control aspects of UPC code generation.
+
+@table @code
+
+@item --enable-upc-link-script
+Enable UPC's use of a custom linker script; this
+will define the UPC shared section as a no load
+section on targets where this feature is supported
+
+@item --with-upc-pts=@var{struct} or @var{packed}
+Specify the representation of a UPC pointer-to-shared.
+The @var{packed} representation is the default.
+The @var{struct} representation supports configurations
+with a larger range for the number of UPC threads,
+the maximum UPC blocking factor, and address offsets within
+a UPC thread.
+
+@item --with-upc-pts-vaddr-order=@var{last} or @var{first}
+Specify the position of the address offset field in the UPC
+pointer-to-shared representation. The @var{last} position
+is the default.
+
+@item --with-upc-pts-packed-bits=@var{phase},@var{thread},@var{vaddr}
+Specify the bit distribution of the fields
+in the packed UPC pointer-to-shared representation.
+The default values are @samp{20,10,34}.
+
+@end table
+
@subheading Java-Specific Options
The following option applies to the build of the Java front end.
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f84a1994aa1..760cc95a4c5 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -169,7 +169,11 @@ in the following sections.
-aux-info @var{filename} -fallow-parameterless-variadic-functions @gol
-fno-asm -fno-builtin -fno-builtin-@var{function} @gol
-fhosted -ffreestanding -fopenacc -fopenmp -fopenmp-simd @gol
+-fupc -fupc-threads=@var{N} -fupc-pthreads-model-tls @gol
+-fupc-inline-lib -fupc-pre-include -fupc-debug -dwarf-2-upc @gol
+-fupc-instrument -fupc-instrument-functions @gol
-fms-extensions -fplan9-extensions -trigraphs -traditional -traditional-cpp @gol
+-trigraphs -traditional -traditional-cpp @gol
-fallow-single-precision -fcond-mismatch -flax-vector-conversions @gol
-fsigned-bitfields -fsigned-char @gol
-funsigned-bitfields -funsigned-char}
@@ -1929,6 +1933,71 @@ Enable handling of OpenMP's SIMD directives with @code{#pragma omp}
in C/C++ and @code{!$omp} in Fortran. Other OpenMP directives
are ignored.
+@item -fupc
+@opindex fupc
+@cindex Enable UPC
+Enable the usage of UPC language extension features for C.
+When @option{-fupc} is specified, enable the UPC language
+extension features for C. The present implementation conforms
+to version 1.3 of the UPC language and library specifications
+@w{@uref{http://upc.lbl.gov/publications/upc-spec-1.3.pdf}}.
+This is an experimental feature, and the compiler ABI is subject
+to change in future versions of GCC.
+
+@item -fupc-threads=N
+@opindex fupc-threads
+Specify the number of UPC threads at compile-time as @option{N}. If this
+option is not present or the value of @option{N} is 0, the number of
+threads will be specified dynamically when the program is executed.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-pthreads-model-tls
+@opindex fupc-pthreads-model-tls
+Compile for the POSIX threads (pthreads) environment. Each UPC thread
+is directly mapped to one pthread.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-inline-lib
+@opindex fupc-inline-lib
+Inline various UPC run-time library routines. This option is
+enabled by default when compiled with @option{-O1} or higher.
+The @option{-fno-upc-inline-lib} option will disable inlining
+of the UPC runtime.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-pre-include
+@opindex fupc-pre-include
+Pre-include the UPC runtime header files. This option is enabled
+by default when @option{-fupc} is asserted.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -dwarf-2-upc
+@opindex dwarf-2-upc
+Generate UPC-specific symbolic DWARF-2 debugging information. This
+debugging information is processed by UPC-aware debuggers including
+GDB-UPC, a variant of the GDB debugger, and the commercially available
+Rogue Wave Totalview and Allinea DDT debuggers.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-debug
+@opindex fupc-debug
+Generate calls to the UPC run-time library that include source filename
+and line number information; this information is used to print more
+informative error messages when errors are detected at run-time.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-instrument
+@opindex fupc-instrument
+Instrument UPC shared accesses and library calls using GASP tool
+support API. This option implies @option{-fno-upc-inline-lib}.
+The @option{-fupc} must also be present for this option to take effect.
+
+@item -fupc-instrument-functions
+@opindex fupc-instrument-functions
+Instrument functions calls using GASP tool support. This option implies
+@option{-fupc-instrument} and @option{-fno-upc-inline-lib}.
+The @option{-fupc} must also be present for this option to take effect.
+
@item -fcilkplus
@opindex fcilkplus
@cindex Enable Cilk Plus
diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi
index 32ad9fc16e5..609ac6300f0 100644
--- a/gcc/doc/passes.texi
+++ b/gcc/doc/passes.texi
@@ -18,6 +18,7 @@ where near complete.
@menu
* Parsing pass:: The language front end turns text into bits.
+* UPC Transformation:: Transform UPC constructs into equivalent C.
* Cilk Plus Transformation:: Transform Cilk Plus Code to equivalent C/C++.
* Gimplification pass:: The bits are turned into something we can optimize.
* Pass manager:: Sequencing the optimization passes.
@@ -104,6 +105,100 @@ that is more descriptive than "rest_of".
The middle-end will, at its option, emit the function and data
definitions immediately or queue them for later processing.
+@node UPC Transformation
+@section UPC Transformation
+@cindex UPC
+
+If UPC compilation is enabled via the flag @option{-fupc},
+all UPC constructs are transformed into equivalent C operations
+and/or calls to the UPC runtime library (@file{libgupc}).
+The majority of this transformation occurs near the end of the parsing pass
+and before the gimplification pass. This transformation
+pass is implemented in the file @file{c-family/c-upc-low.c}.
+
+UPC constructs are handled in the @code{C} parser when the
+@option{-fupc} option is asserted. The UPC language is specified as
+a series of extensions to ISO C99. GNU UPC conforms to version 1.3
+of the UPC Language Specification
+@w{(@uref{http://upc.lbl.gov/publications/upc-spec-1.3.pdf}).}
+
+UPC introduces three type qualifiers: ``shared'', ``strict'',
+and ``relaxed''. `shared'' qualified memory may be remote to
+the currently executing UPC thread. The ``strict'' and ``relaxed''
+qualifiers further modify accesses to UPC shared memory. A ``strict''
+UPC shared access has more stronger memory consistency properties
+than a ``relaxed'' access. UPC introduces an additional ``layout qualifier''
+(also known as the blocking factor) which controls the layout of
+UPC shared arrays. The following example illustrates the use of
+UPC-specific type qualifiers:
+@smallexample
+ shared strict int x;
+ shared relaxed int y;
+ /* Below, ``[100]'' is the layout qualifier. */
+ shared [100] float A[100*THREADS*10];
+@end smallexample
+
+UPC also defines several synchronization statements
+which are specified as reserved words: ``upc_barrier'', ``upc_fence'',
+``upc_notify'', and ``upc_wait''. Additionally, an
+iterator statement, ``upc_forall'' is defined; it is similar
+to the ``for'' statement, but has an additional (fourth)
+``affinity clause'' which constrains UPC shared accesses for
+each iteration of the loop.
+
+UPC introduces two reserved identifiers:
+@table @code
+@item MYTHREAD
+The thread number (in the range @code{0..THREADS-1})
+of the currently executing UPC thread.
+@item THREADS
+The number of UPC threads specified for the current
+program execution.
+@end table
+
+The major components of the UPC language extension transform passe are:
+@itemize @bullet
+@item UPC shared memory accesses:
+Read accesses to UPC shared memory are translated into calls
+to various ``get'' functions implemented in the UPC runtime library.
+Write accesses to UPC shared memory are translated into calls
+to various ``put'' routines implemented in the UPC runtime library.
+@item UPC shared variable allocation and references:
+Variables qualified by the UPC ``shared'' qualifier must be allocated
+in UPC shared memory which can be accessed by all UPC threads.
+It is common for a UPC thread to be implemented as an operating
+system process and for UPC threads to execute on different computing
+nodes often connected by specialized high speed networks.
+Therefore, UPC shared variable declarations must be consolidated
+and allocated separately from regular @code{C} global variables.
+
+@item UPC pointer-to-shared arithmetic:
+UPC pointers-to-shared have three components: ``thread'',
+``phase'', and ``offset''. The ``thread'' gives the thread number
+of the thread that has affinity to the globally shared data. The ``offset''
+gives the offset of the data within shared data allocated on the
+target thread. The ``phase'' is used to implement the properties
+defined by the UPC ``layout qualifier''. UPC pointer-to-shared
+arithmetic requires several multiplications and modulo operations
+to implement the more general cases. The UPC transformation pass
+translates UPC pointer-to-shared arithmetic into an equivalent
+series of @code{C} arithmetic operations.
+
+@item UPC pointer-to-shared conversions:
+UPC pointers-to-shared can be converted into @code{C}
+pointers if the current UPC has affinity to the referenced
+UPC shared memory. The UPC transformation pass translates
+conversions from UPC pointers-to-shared into a call to
+the UPC runtime which will implement the conversion if it
+it meets the affinity constraint.
+
+@item UPC synchronization statements:
+The UPC language defined synchronization statements
+(for example, ``upc_barrier'') are translated into
+calls to the UPC runtime.
+
+@end itemize
+
@node Cilk Plus Transformation
@section Cilk Plus Transformation
@cindex CILK_PLUS
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index c6ef40e5db7..f0d06c6d016 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -91,6 +91,9 @@ The Go runtime library. The bulk of this library is mirrored from the
@item libgomp
The GNU Offloading and Multi Processing Runtime Library.
+@item libgupc
+The GNU UPC runtime library.
+
@item libiberty
The @code{libiberty} library, used for portability and for some
generally useful data structures and algorithms. @xref{Top, ,
@@ -1854,6 +1857,9 @@ Target supports @option{-freorder-blocks-and-partition}.
@item fstack_protector
Target supports @option{-fstack-protector}.
+@item fupc
+Target supports UPC via @option{-fupc}.
+
@item gas
Target uses GNU @command{as}.
diff --git a/gcc/function.c b/gcc/function.c
index a3e3e214335..d953fbe371b 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -3294,6 +3294,13 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm,
set_dst_reg_note (linsn, REG_EQUIV, equiv_stack_parm, parmreg);
}
+ /* Do not target UPC pointers-to-shared values into a pointer
+ register if they are represented as struct's. */
+ if (POINTER_TYPE_P (TREE_TYPE (parm))
+ && upc_shared_type_p (TREE_TYPE (TREE_TYPE (parm)))
+ && AGGREGATE_TYPE_P (upc_pts_rep_type_node))
+ return;
+
/* For pointer data type, suggest pointer register. */
if (POINTER_TYPE_P (TREE_TYPE (parm)))
mark_reg_pointer (parmreg,
diff --git a/gcc/tree-core.h b/gcc/tree-core.h
index 81daacdfc72..1c4f9441a9e 100644
--- a/gcc/tree-core.h
+++ b/gcc/tree-core.h
@@ -1370,7 +1370,7 @@ struct GTY((user)) tree_type_common {
unsigned no_force_blk_flag : 1;
unsigned needs_constructing_flag : 1;
unsigned transparent_aggr_flag : 1;
- unsigned reupc_strict_flag : 1;
+ unsigned restrict_flag : 1;
unsigned contains_placeholder_bits : 2;
ENUM_BITFIELD(machine_mode) mode : 8;
diff --git a/gcc/tree.c b/gcc/tree.c
index 8e68f4620ec..272d145ad36 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -235,7 +235,6 @@ struct type_cache_hasher : ggc_cache_hasher<type_hash *>
static GTY ((cache)) hash_table<type_cache_hasher> *type_hash_table;
-
/* Hash table and temporary node for larger integer const values. */
static GTY (()) tree int_cst_node;
diff --git a/gcc/tree.h b/gcc/tree.h
index a60992457ca..fdaeb5032b2 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -1773,7 +1773,7 @@ extern machine_mode element_mode (const_tree t);
/* If nonzero, this type is `restrict'-qualified, in the C sense of
the term. */
-#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.reupc_strict_flag)
+#define TYPE_RESTRICT(NODE) (TYPE_CHECK (NODE)->type_common.restrict_flag)
/* If nonzero, this type is `shared'-qualified, in the UPC dialect */
#define TYPE_UPC_SHARED(NODE) (TYPE_CHECK (NODE)->base.u.bits.upc_shared_flag)
diff --git a/libgupc/ChangeLog b/libgupc/ChangeLog
index 71641d524c3..810061d1688 100644
--- a/libgupc/ChangeLog
+++ b/libgupc/ChangeLog
@@ -1,3 +1,53 @@
+2015-08-08 Nenad Vukicevic <nenad@intrepid.com>
+
+ * configure.ac: Check for existence of execinfo library
+ on BSD systems as it is required for backtrace.
+ * configure: Re-generate.
+ * configure.tgt: Add execinfo library on the link line if
+ necessary.
+ * portals4/gupcr_node.c (gupcr_mem_private): File number must
+ be -1 on BSD systems for anonymous maps.
+ * smp/upc_sysdep.c (__upc_strsignal): Add support for SUN. Do
+ not declare sys_siglist on netBSD (already in signal.h).
+ (__upc_create_runtime_heap): File number must be -1 on BSD
+ systems for anonymous maps.
+ * smp/upc_backtrace.c: Fix compile warnings.
+
+2015-08-03 Nenad Vukicevic <nenad@intrepid.com>
+
+ * configure.ac: Remove unnecessary check for
+ -rdynamic.
+ * configure: Re-generate.
+ * configure.tgt: Add option for exporting dynamic symbols
+ only if linker supports it.
+
+2015-07-25 Gary Funck <gary@intrepid.com>
+
+ * libgupc.texi: Change menu ordering to agree with node ordering.
+
+2015-07-24 Gary Funck <gary@intrepid.com>
+
+ * smp/upc_pts.h (GUPCR_ONE): Define as unsigned constant,
+ to avoid overflow warnings.
+ * portals4/gupcr_pts.h (GUPCR_ONE): Ditto.
+
+2015-07-03 Nenad Vukicevic <nenad@intrepid.com>
+
+ * portals4/gupcr_nb.upc (upc_memset_nb, upc_memset_nbi): Complete
+ upc_memset() with upc fence. Otherwise it will not be completed by
+ the non-blocking sync functions.
+
+2015-05-18 Gary Funck <gary@intrepid.com>
+
+ * configure.ac: Set minimum automake version to 1.11.6.
+ * aclocal.m4, configure, Makefile.in, testsuite/Makefile.in:
+ Re-generate with automake 1.11.6.
+
+2015-04-30 Nenad Vukicevic <nenad@intrepid.com>
+
+ * portals4/gupcr_nb_sup.c (gupc_nb_put/get): Fix bug. Increment
+ number of outstanding implicit transfers.
+
2014-11-01 Nenad Vukicevic <nenad@intrepid.com>
* portals4/gupcr_gmem.c (gupc_gmem_get): Advance remote offset
@@ -50,7 +100,7 @@
* portals4/gcc-upc-lib.in: Use stddef.h for size_t
instead of sys/types.h as it might break on some
systems.
-
+
2014-05-27 Nenad Vukicevic <nenad@intrepid.com>
* upc_main.c (__upc_run_threads): Set O_APPEND flag
@@ -127,7 +177,7 @@
* configure.ac: Remove check for cc1upc.
* configure: Re-generate.
- * portals4/gcc-upc-lib.in: Protect upc_atomicdomain_t declartion
+ * portals4/gcc-upc-lib.in: Protect upc_atomicdomain_t declaration
with #pragma upc upc_code.
* smp/gcc-upc-lib.in: Ditto.
@@ -591,7 +641,7 @@
* 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.
+ nanoseconds from sec/micro-sec if gettimeofday() call was used.
2012-10-23 Nenad Vukicevic <nenad@intrepid.com>
Gary Funck <gary@intrepid.com>
@@ -702,7 +752,7 @@
* 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.
+ signaling, 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.
@@ -825,7 +875,7 @@
2012-08-22 Nenad Vukicevic <nenad@intrepid.com>
- * upc_defs.h: Additianl clean-up related to the new barrier
+ * upc_defs.h: Additional clean-up related to the new barrier
implementation.
(upc_barrier_id_t): Delete.
(upc_barrier_info_t): Delete.
@@ -910,7 +960,7 @@
* 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,
@@ -984,7 +1034,7 @@
* 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.
+ discard all speculative memory fetches.
(upc_lock_attempt): Ditto.
(upc_ulock): Ditto.
@@ -1341,11 +1391,11 @@
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
+ * smp/upc_config.h: Move the definitions 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
+ Move the definitions of GUPCR_INIT_ARRAY_START and
GUPCR_INIT_ARRAY_END to smp/upc_config.h.
2011-02-22 Gary Funck <gary@intrepid.com>
@@ -1438,7 +1488,7 @@
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
+ to be called on each thread, 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
diff --git a/libgupc/Makefile.in b/libgupc/Makefile.in
index f0936815401..d5625a47c14 100644
--- a/libgupc/Makefile.in
+++ b/libgupc/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -20,6 +20,23 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -166,6 +183,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
am__installdirs = "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(infodir)" \
"$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(libsubincludedir)" \
"$(DESTDIR)$(libsubincludedir)" "$(DESTDIR)$(toolexeclibdir)"
@@ -445,6 +468,11 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DATA = $(toolexeclib_DATA)
HEADERS = $(libsubinclude_HEADERS) $(nodist_libsubinclude_HEADERS) \
$(nodist_noinst_HEADERS) $(nodist_toolexeclib_HEADERS)
@@ -460,9 +488,11 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
- { test ! -d "$(distdir)" \
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr "$(distdir)"; }; }
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -491,6 +521,8 @@ am__relativize = \
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
ADDR2LINE = @ADDR2LINE@
@@ -867,7 +899,7 @@ all: $(BUILT_SOURCES) config.h
.SUFFIXES:
.SUFFIXES: .c .dvi .lo .o .obj .ps .upc
-am--refresh:
+am--refresh: Makefile
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/doxygen-include.am $(am__configure_deps)
@for dep in $?; do \
@@ -892,6 +924,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
+$(srcdir)/doxygen-include.am:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
@@ -903,10 +936,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
config.h: stamp-h1
- @if test ! -f $@; then \
- rm -f stamp-h1; \
- $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
- else :; fi
+ @if test ! -f $@; then rm -f stamp-h1; else :; fi
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
@@ -932,7 +963,6 @@ upc-crtend.spec: $(top_builddir)/config.status $(srcdir)/upc-crtend.spec.in
cd $(top_builddir) && $(SHELL) ./config.status $@
install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
@$(NORMAL_INSTALL)
- test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
@list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -940,6 +970,8 @@ install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \
}
@@ -961,9 +993,9 @@ clean-toolexeclibLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgupc.la: $(libgupc_la_OBJECTS) $(libgupc_la_DEPENDENCIES)
+libgupc.la: $(libgupc_la_OBJECTS) $(libgupc_la_DEPENDENCIES) $(EXTRA_libgupc_la_DEPENDENCIES)
$(libgupc_la_LINK) -rpath $(toolexeclibdir) $(libgupc_la_OBJECTS) $(libgupc_la_LIBADD) $(LIBS)
-libgupc_pt.la: $(libgupc_pt_la_OBJECTS) $(libgupc_pt_la_DEPENDENCIES)
+libgupc_pt.la: $(libgupc_pt_la_OBJECTS) $(libgupc_pt_la_DEPENDENCIES) $(EXTRA_libgupc_pt_la_DEPENDENCIES)
$(libgupc_pt_la_LINK) $(am_libgupc_pt_la_rpath) $(libgupc_pt_la_OBJECTS) $(libgupc_pt_la_LIBADD) $(LIBS)
mostlyclean-compile:
@@ -2208,9 +2240,7 @@ uninstall-html-am:
uninstall-info-am:
@$(PRE_UNINSTALL)
- @if test -d '$(DESTDIR)$(infodir)' && \
- (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -2284,8 +2314,11 @@ maintainer-clean-aminfo:
done
install-toolexeclibDATA: $(toolexeclib_DATA)
@$(NORMAL_INSTALL)
- test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
@list='$(toolexeclib_DATA)'; test -n "$(toolexeclibdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2299,13 +2332,14 @@ uninstall-toolexeclibDATA:
@$(NORMAL_UNINSTALL)
@list='$(toolexeclib_DATA)'; test -n "$(toolexeclibdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(toolexeclibdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(toolexeclibdir)" && rm -f $$files
+ dir='$(DESTDIR)$(toolexeclibdir)'; $(am__uninstall_files_from_dir)
install-libsubincludeHEADERS: $(libsubinclude_HEADERS)
@$(NORMAL_INSTALL)
- test -z "$(libsubincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libsubincludedir)"
@list='$(libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libsubincludedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libsubincludedir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2319,13 +2353,14 @@ uninstall-libsubincludeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libsubincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libsubincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libsubincludedir)'; $(am__uninstall_files_from_dir)
install-nodist_libsubincludeHEADERS: $(nodist_libsubinclude_HEADERS)
@$(NORMAL_INSTALL)
- test -z "$(libsubincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libsubincludedir)"
@list='$(nodist_libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libsubincludedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libsubincludedir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2339,13 +2374,14 @@ uninstall-nodist_libsubincludeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(nodist_libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libsubincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libsubincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libsubincludedir)'; $(am__uninstall_files_from_dir)
install-nodist_toolexeclibHEADERS: $(nodist_toolexeclib_HEADERS)
@$(NORMAL_INSTALL)
- test -z "$(toolexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)"
@list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2359,9 +2395,7 @@ uninstall-nodist_toolexeclibHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(toolexeclibdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(toolexeclibdir)" && rm -f $$files
+ dir='$(DESTDIR)$(toolexeclibdir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
@@ -2532,13 +2566,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -2573,7 +2604,11 @@ dist-gzip: distdir
$(am__remove_distdir)
dist-bzip2: distdir
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__remove_distdir)
dist-lzma: distdir
@@ -2581,7 +2616,7 @@ dist-lzma: distdir
$(am__remove_distdir)
dist-xz: distdir
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
@@ -2612,6 +2647,8 @@ distcheck: dist
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
@@ -2621,7 +2658,7 @@ distcheck: dist
*.zip*) \
unzip $(distdir).zip ;;\
esac
- chmod -R a-w $(distdir); chmod a+w $(distdir)
+ chmod -R a-w $(distdir); chmod u+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
@@ -2631,6 +2668,7 @@ distcheck: dist
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -2659,8 +2697,16 @@ distcheck: dist
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
- @$(am__cd) '$(distuninstallcheck_dir)' \
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -2697,10 +2743,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
@@ -2747,8 +2798,11 @@ install-dvi: install-dvi-recursive
install-dvi-am: $(DVIS)
@$(NORMAL_INSTALL)
- test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
@list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2764,18 +2818,22 @@ install-html: install-html-recursive
install-html-am: $(HTMLS)
@$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
@list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
$(am__strip_dir) \
- if test -d "$$d$$p"; then \
+ d2=$$d$$p; \
+ if test -d "$$d2"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
$(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
+ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
else \
- list2="$$list2 $$d$$p"; \
+ list2="$$list2 $$d2"; \
fi; \
done; \
test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
@@ -2787,9 +2845,12 @@ install-info: install-info-recursive
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
- test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+ fi; \
for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -2807,8 +2868,7 @@ install-info-am: $(INFO_DEPS)
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
@$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ @if $(am__can_run_installinfo); then \
list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
@@ -2822,8 +2882,11 @@ install-pdf: install-pdf-recursive
install-pdf-am: $(PDFS)
@$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
@list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2835,8 +2898,11 @@ install-ps: install-ps-recursive
install-ps-am: $(PSS)
@$(NORMAL_INSTALL)
- test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
@list='$(PSS)'; test -n "$(psdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+ fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -2883,8 +2949,8 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
all all-am all-local all-multi am--refresh check check-am \
clean clean-aminfo clean-generic clean-libtool clean-multi \
clean-toolexeclibLTLIBRARIES ctags ctags-recursive dist \
- dist-all dist-bzip2 dist-gzip dist-info dist-lzma dist-shar \
- dist-tarZ dist-xz dist-zip distcheck distclean \
+ dist-all dist-bzip2 dist-gzip dist-info dist-lzip dist-lzma \
+ dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
distclean-compile distclean-generic distclean-hdr \
distclean-libtool distclean-multi distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
diff --git a/libgupc/aclocal.m4 b/libgupc/aclocal.m4
index 07894e60cd1..cfd193be334 100644
--- a/libgupc/aclocal.m4
+++ b/libgupc/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -19,12 +20,15 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
-# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
@@ -34,7 +38,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.11.1], [],
+m4_if([$1], [1.11.6], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -50,19 +54,21 @@ m4_define([_AM_AUTOCONF_VERSION], [])
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11.1])dnl
+[AM_AUTOMAKE_VERSION([1.11.6])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
@@ -144,14 +150,14 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 10
+# serial 12
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -191,6 +197,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -255,7 +262,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -320,10 +327,13 @@ AC_DEFUN([AM_DEP_TRACK],
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
@@ -545,12 +555,15 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
@@ -569,8 +582,8 @@ AC_SUBST(install_sh)])
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
+# 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -590,7 +603,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
[disable], [m4_define([am_maintainer_other], [enable])],
[m4_define([am_maintainer_other], [enable])
m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode's default is 'disable' unless 'enable' is passed
AC_ARG_ENABLE([maintainer-mode],
[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
@@ -701,12 +714,15 @@ else
fi
])
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
@@ -729,13 +745,14 @@ esac
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
+# serial 5
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -743,13 +760,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -825,12 +842,14 @@ Check your system clock])
fi
AC_MSG_RESULT(yes)])
-# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
@@ -853,13 +872,13 @@ fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
+# serial 3
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
@@ -868,13 +887,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -896,10 +915,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
-[# Always define AMTAR for backward compatibility.
-AM_MISSING_PROG([AMTAR], [tar])
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
m4_if([$1], [v7],
- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
@@ -970,12 +990,14 @@ AC_SUBST([am__untar])
# Find a compiler for Unified Parallel C. -*- Autoconf -*-
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
AC_DEFUN([AM_PROG_UPC],
[dnl We need OBJEXT and EXEEXT, but Autoconf doesn't offer any public
dnl macro to compute them. Use AC_PROG_CC instead.
diff --git a/libgupc/configure b/libgupc/configure
index fe584368f0d..b3c4b885689 100755
--- a/libgupc/configure
+++ b/libgupc/configure
@@ -737,6 +737,7 @@ UPCFLAGS
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
+am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
@@ -3434,11 +3435,11 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
-# Always define AMTAR for backward compatibility.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
@@ -4374,6 +4375,7 @@ fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
@@ -4398,6 +4400,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -4457,7 +4460,7 @@ else
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -4665,6 +4668,7 @@ else
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -4722,7 +4726,7 @@ else
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -7880,7 +7884,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
10.0,*86*-darwin8*|10.0,*-darwin[91]*)
_lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
+ 10.[012][,.]*)
_lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
10.*)
_lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
@@ -9422,7 +9426,7 @@ _LT_EOF
if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
&& test "$tmp_diet" = no
then
- tmp_addflag=
+ tmp_addflag=' $pic_flag'
tmp_sharedflag='-shared'
case $cc_basename,$host_cpu in
pgcc*) # Portland Group C compiler
@@ -11632,7 +11636,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11635 "configure"
+#line 11639 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11738,7 +11742,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11741 "configure"
+#line 11745 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15176,13 +15180,64 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_upc_backtrace" >&5
-$as_echo "$enable_upc_backtrace" >&6; }
+# Check for execinfo library (needed on BSD systems for UPC backtracing)
+case "${target}" in
+ *-*-freebsd* | *-*-openbsd* | *-*-netbsd )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace in -lexecinfo" >&5
+$as_echo_n "checking for backtrace in -lexecinfo... " >&6; }
+if test "${ac_cv_lib_execinfo_backtrace+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lexecinfo $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char backtrace ();
+int
+main ()
+{
+return backtrace ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_execinfo_backtrace=yes
+else
+ ac_cv_lib_execinfo_backtrace=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_execinfo_backtrace" >&5
+$as_echo "$ac_cv_lib_execinfo_backtrace" >&6; }
+if test "x$ac_cv_lib_execinfo_backtrace" = x""yes; then :
+ execinfo_lib="yes"
+fi
+
+ if test "x$execinfo_lib" = xyes; then
+ enable_execinfo_lib=yes
+ else
+ enable_upc_backtrace=no
+ fi
+ ;;
+ *) ;;
+esac
if test "$enable_upc_backtrace" = yes; then
$as_echo "#define HAVE_UPC_BACKTRACE 1" >>confdefs.h
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_upc_backtrace" >&5
+$as_echo "$enable_upc_backtrace" >&6; }
# Check for user specified GDB
@@ -15341,42 +15396,6 @@ $as_echo "$upc_backtrace_signal" >&6; }
fi
if test "$enable_upc_backtrace" = yes; then
- # Check for "-rdynamic" for UPC backtrace
- case "${host}" in
- *-*-darwin*)
- if test x$build = x$host; then
- export_sym_check="nm${exeext} -g"
- elif test x$host = x$target; then
- export_sym_check="$gcc_cv_nm -g"
- else
- export_sym_check=
- fi
- ;;
- *)
- if test x$build = x$host; then
- export_sym_check="objdump${exeext} -T"
- elif test x$host = x$target; then
- export_sym_check="$gcc_cv_objdump -T"
- else
- export_sym_check=
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
-$as_echo_n "checking for -rdynamic... " >&6; }
- if test "x$export_sym_check" != x; then
- echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c \
- -o conftest > /dev/null 2>&1
- if $export_sym_check conftest | grep foobar > /dev/null; then
- have_rdynamic=yes
- else
- have_rdynamic=no
- fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_rdynamic" >&5
-$as_echo "$have_rdynamic" >&6; }
-
# Check if backtrace can use addr2line
if test x"$ADDR2LINE" != x""; then
diff --git a/libgupc/configure.ac b/libgupc/configure.ac
index 0395f6f183e..f8439599693 100644
--- a/libgupc/configure.ac
+++ b/libgupc/configure.ac
@@ -85,7 +85,7 @@ target_alias=${target_alias-$host_alias}
# -Wall: turns on all automake warnings...
# -Wno-portability: ...except this one, since GNU make is required.
# -Wno-override: ... and this one, since we do want this in testsuite.
-AM_INIT_AUTOMAKE([1.11.1 foreign -Wall -Wno-portability -Wno-override])
+AM_INIT_AUTOMAKE([1.11.6 foreign -Wall -Wno-portability -Wno-override])
# UPC disables multilib for portals4 runtime
if echo "${with_upc_runtime}" | grep -v -i '^portals4$' 2>&1 >/dev/null; then
@@ -681,11 +681,23 @@ AC_ARG_ENABLE(upc-backtrace,
[
enable_upc_backtrace=yes
])
-AC_MSG_RESULT($enable_upc_backtrace)
+# Check for execinfo library (needed on BSD systems for UPC backtracing)
+case "${target}" in
+ *-*-freebsd* | *-*-openbsd* | *-*-netbsd )
+ AC_CHECK_LIB(execinfo,backtrace,[execinfo_lib="yes"])
+ if test "x$execinfo_lib" = xyes; then
+ enable_execinfo_lib=yes
+ else
+ enable_upc_backtrace=no
+ fi
+ ;;
+ *) ;;
+esac
if test "$enable_upc_backtrace" = yes; then
AC_DEFINE(HAVE_UPC_BACKTRACE, 1,
[Define to 1 if UPC backtrace is enabled.])
fi
+AC_MSG_RESULT($enable_upc_backtrace)
# Check for user specified GDB
AC_ARG_WITH(upc-backtrace-gdb,
@@ -777,40 +789,6 @@ if test "$enable_upc_backtrace_signal" = yes; then
fi
if test "$enable_upc_backtrace" = yes; then
- # Check for "-rdynamic" for UPC backtrace
- case "${host}" in
- *-*-darwin*)
- if test x$build = x$host; then
- export_sym_check="nm${exeext} -g"
- elif test x$host = x$target; then
- export_sym_check="$gcc_cv_nm -g"
- else
- export_sym_check=
- fi
- ;;
- *)
- if test x$build = x$host; then
- export_sym_check="objdump${exeext} -T"
- elif test x$host = x$target; then
- export_sym_check="$gcc_cv_objdump -T"
- else
- export_sym_check=
- fi
- ;;
- esac
- AC_MSG_CHECKING([for -rdynamic])
- if test "x$export_sym_check" != x; then
- echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c \
- -o conftest > /dev/null 2>&1
- if $export_sym_check conftest | grep foobar > /dev/null; then
- have_rdynamic=yes
- else
- have_rdynamic=no
- fi
- fi
- AC_MSG_RESULT([$have_rdynamic])
-
# Check if backtrace can use addr2line
if test x"$ADDR2LINE" != x""; then
AC_DEFINE(HAVE_UPC_BACKTRACE_ADDR2LINE, 1,
diff --git a/libgupc/configure.tgt b/libgupc/configure.tgt
index af26d246577..7934e75d69e 100644
--- a/libgupc/configure.tgt
+++ b/libgupc/configure.tgt
@@ -101,10 +101,15 @@ if test "$upc_runtime_model" = "portals4"; then
LIBS="$portals4libs $LIBS"
fi
fi
-if test "x${have_rdynamic}" == "xyes"; then
- LIBS="-export-dynamic $LIBS"
+if test "x$enable_execinfo_lib" = "xyes"; then
+ LIBS="-lexecinfo $LIBS"
fi
libgupc_spec="%{!fupc-pthreads*:-lgupc;:-lgupc_pt -lpthread}"
+if test "$enable_upc_backtrace" = yes &&
+ test -n "$export_dynamic_flag_spec"; then
+ dynamic_spec=`echo "$export_dynamic_flag_spec" | sed -e 's/${wl}//'`
+ libgupc_spec="$dynamic_spec ${libgupc_spec}"
+fi
if test "$enable_upc_link_script" = yes; then
libgupc_spec="-T gupc.ld%s ${libgupc_spec}"
fi
diff --git a/libgupc/libgupc.texi b/libgupc/libgupc.texi
index 9e4f02a64b0..1981af5436a 100644
--- a/libgupc/libgupc.texi
+++ b/libgupc/libgupc.texi
@@ -10,7 +10,7 @@
Copyright @copyright{} 2006-2014 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.2 or
+under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
texts being (a) (see below), and with the Back-Cover Texts being (b)
@@ -69,11 +69,10 @@ Boston, MA 02110-1301, USA@*
@top Introduction
@cindex Introduction
-This manual documents the usage of libgupc, the GNU implementation of the
-@uref{http://www.openmp.org, UPC} Application Programming Interface (API)
-for multi-platform shared-memory parallel programming in C/C++ and Fortran.
-
-
+This manual documents the usage of libgupc, the GNU runtime library
+implementation of the
+@w{@uref{http://upc.lbl.gov/publications/upc-spec-1.3.pdf, UPC}}
+language extensions for shared-memory parallel programming in C.
@comment
@comment When you add a new menu item, please keep the right hand
@@ -81,12 +80,13 @@ for multi-platform shared-memory parallel programming in C/C++ and Fortran.
@comment better formatting.
@comment
@menu
-* Enabling UPC:: How to enable UPC for your applications.
+* Enabling UPC:: How to enable UPC for your applications.
+* Configuring Libgupc:: How to configure the UPC runtime library.
* Runtime Library Routines:: The UPC runtime application programming
interface.
+* The libgupc ABI:: Notes on the external ABI presented by libgupc.
* Environment Variables:: Influencing runtime behavior with environment
variables.
-* The libgupc ABI:: Notes on the external ABI presented by libgupc.
* Reporting Bugs:: How to report bugs in GNU UPC.
* Copying:: GNU general public license says
how you can copy and share libgupc.
@@ -94,10 +94,9 @@ for multi-platform shared-memory parallel programming in C/C++ and Fortran.
How you can copy and share this manual.
* Funding:: How to help assure continued work for free
software.
-* Index:: Index of this documentation.
+* Library Index:: Index of this documentation.
@end menu
-
@c ---------------------------------------------------------------------
@c Enabling UPC
@c ---------------------------------------------------------------------
@@ -105,6 +104,48 @@ for multi-platform shared-memory parallel programming in C/C++ and Fortran.
@node Enabling UPC
@chapter Enabling UPC
+To activate the UPC extensions for C, the compile-time
+flag @command{-fupc} must be specified. This enables the UPC language
+extensions which include the @code{shared} type qualifier
+and various synchronization statements such as @code{upc_barrier}.
+The flag also arranges for automatic linking of the UPC runtime library
+(@ref{Runtime Library Routines}).
+
+Alternatively, two command line drivers can be invoked: @command{upc}
+and @command{gupc}. These drivers are wrappers around the @command{gcc}
+and will automatically supply the @option{-fupc} option and
+will default the compilation of @file{*.c} files as UPC language source.
+
+The @samp{libgomp} runtime library supports both a single-node
+Symmetric Memory Processor (@samp{smp}) and a multi-node distributed
+(@samp{portals4}) target configurations. The target configuration
+is selected via the @command{configure} command when the library is
+built. See @ref{Configuring Libgupc} for details.
+
+@c ---------------------------------------------------------------------
+@c Configuring Libgupc
+@c ---------------------------------------------------------------------
+
+@node Configuring Libgupc
+@chapter Configuring Libgupc
+
+@menu
+* SMP Configuration:: How to configure libgupc for SMP single-node
+ operation.
+* Portals4 Configuration:: How to configure libgupc for multi-node
+ operation using the Portals4 communication
+ library.
+@end menu
+
+@node SMP Configuration
+@section SMP Configuration
+@cindex Configuration
+@cindex SMP Configuration
+
+@node Portals4 Configuration
+@section Portals4 Configuration
+@cindex Configuration
+@cindex Portals4 Configuration
@c ---------------------------------------------------------------------
@c Runtime Library Routines
@@ -135,9 +176,11 @@ for multi-platform shared-memory parallel programming in C/C++ and Fortran.
@chapter Reporting Bugs
Bugs in the GNU UPC implementation should be reported via
-@uref{http://gcc.gnu.org/bugzilla/, bugzilla}. In all cases, please add
+@uref{http://gcc.gnu.org/bugzilla/, Bugzilla}. For all cases, please add
"UPC" to the keywords field in the bug report.
+
+
@c ---------------------------------------------------------------------
@c GNU General Public License
@c ---------------------------------------------------------------------
@@ -164,8 +207,8 @@ Bugs in the GNU UPC implementation should be reported via
@c Index
@c ---------------------------------------------------------------------
-@node Index
-@unnumbered Index
+@node Library Index
+@unnumbered Library Index
@printindex cp
diff --git a/libgupc/portals4/gupcr_nb.upc b/libgupc/portals4/gupcr_nb.upc
index 2bd4b7f2ea2..03a77d68295 100644
--- a/libgupc/portals4/gupcr_nb.upc
+++ b/libgupc/portals4/gupcr_nb.upc
@@ -149,6 +149,7 @@ upc_memset_nb (shared void *dst, int c, size_t n)
if (n)
{
upc_memset (dst, c, n);
+ upc_fence;
}
gupcr_trace (FC_NB, "NB MEMSET_NB EXIT");
return UPC_COMPLETE_HANDLE;
@@ -279,7 +280,10 @@ upc_memset_nbi (shared void *dst, int c, size_t n)
{
gupcr_trace (FC_NB, "NB MEMSET_NBI ENTER");
if (n)
- upc_memset (dst, c, n);
+ {
+ upc_memset (dst, c, n);
+ upc_fence;
+ }
gupcr_trace (FC_NB, "NB MEMSET_NBI EXIT");
}
diff --git a/libgupc/portals4/gupcr_nb_sup.c b/libgupc/portals4/gupcr_nb_sup.c
index 830b8b84331..dda1938bcd8 100644
--- a/libgupc/portals4/gupcr_nb_sup.c
+++ b/libgupc/portals4/gupcr_nb_sup.c
@@ -181,7 +181,7 @@ gupcr_nbcb_find (unsigned long id)
}
/**
- * Non-blocking implicit handle GET operation
+ * Non-blocking GET operation
*
* @param[in] sthread Source thread
* @param[in] soffset Source offset
@@ -222,7 +222,9 @@ gupcr_nb_get (size_t sthread, size_t soffset, char *dst_ptr,
n_xfer, rpid, GUPCR_PTL_PTE_NB,
PTL_NO_MATCH_BITS, soffset,
handle ? (void *) *handle : NULL));
- if (!handle)
+ if (handle)
+ gupcr_nb_outstanding += 1;
+ else
gupcr_nbi_md_count += 1;
n_rem -= n_xfer;
local_offset += n_xfer;
@@ -281,7 +283,9 @@ gupcr_nb_put (size_t dthread, size_t doffset, const void *src_ptr,
GUPCR_PTL_PTE_NB, PTL_NO_MATCH_BITS,
doffset, handle ? (void *) *handle : NULL,
PTL_NULL_HDR_DATA));
- if (!handle)
+ if (handle)
+ gupcr_nb_outstanding += 1;
+ else
gupcr_nbi_md_count += 1;
n_rem -= n_xfer;
local_offset += n_xfer;
diff --git a/libgupc/portals4/gupcr_node.c b/libgupc/portals4/gupcr_node.c
index ecba681b3cd..a19c4efe80e 100644
--- a/libgupc/portals4/gupcr_node.c
+++ b/libgupc/portals4/gupcr_node.c
@@ -172,7 +172,7 @@ gupcr_mem_private (size_t size)
{
char *memaddr;
memaddr = mmap (NULL, size, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_ANONYMOUS, 0, OFFSET_ZERO);
+ MAP_PRIVATE | MAP_ANONYMOUS, -1, OFFSET_ZERO);
if (!memaddr || memaddr == MAP_ERROR)
gupcr_fatal_error
("cannot mmap 0x%lx bytes of node's private shared memory (%s)",
diff --git a/libgupc/portals4/gupcr_pts.h b/libgupc/portals4/gupcr_pts.h
index 2538cabf95a..3e4cc1533af 100644
--- a/libgupc/portals4/gupcr_pts.h
+++ b/libgupc/portals4/gupcr_pts.h
@@ -123,10 +123,10 @@ typedef upc_shared_ptr_t upc_dbg_shared_ptr_t;
#endif
#define GUPCR_PTS_TO_REP(V) *((upc_shared_ptr_t *)&(V))
#if GUPCR_TARGET64
-#define GUPCR_ONE 1L
+#define GUPCR_ONE 1UL
#define GUPCR_PTS_REP_T unsigned long
#else
-#define GUPCR_ONE 1LL
+#define GUPCR_ONE 1ULL
#define GUPCR_PTS_REP_T unsigned long long
#endif
#define GUPCR_PTS_VADDR_MASK ((GUPCR_ONE << GUPCR_PTS_VADDR_SIZE) \
diff --git a/libgupc/smp/upc_backtrace.c b/libgupc/smp/upc_backtrace.c
index 4e40e1efb98..936abddf97a 100644
--- a/libgupc/smp/upc_backtrace.c
+++ b/libgupc/smp/upc_backtrace.c
@@ -252,7 +252,7 @@ __upc_fatal_backtrace (void)
const char *btcmd = "backtrace 30\n";
fprintf (stderr, "Thread %d GDB backtrace:\n", MYTHREAD);
/* Get pid and name of the running program. */
- sprintf(pid_buf, "%d", getpid());
+ sprintf(pid_buf, "%ld", (long) getpid());
/* Create temp file for GDB commands. */
if ((fbt = __upc_create_temp_file
("upc_bt_gdb.XXXXXX", tmpf, &err_msg)) == -1)
@@ -319,7 +319,8 @@ __upc_backtrace_monitor (void)
fprintf (stderr, " Thread PID\n");
for (i = 0; i < THREADS; i++)
{
- fprintf (stderr, " %4d %d\n", i, __upc_info->thread_info[i].pid);
+ fprintf (stderr,
+ " %4d %ld\n", i, (long) __upc_info->thread_info[i].pid);
}
}
}
diff --git a/libgupc/smp/upc_pts.h b/libgupc/smp/upc_pts.h
index 92f7e69edb5..a3378b748f2 100644
--- a/libgupc/smp/upc_pts.h
+++ b/libgupc/smp/upc_pts.h
@@ -113,10 +113,10 @@ typedef upc_shared_ptr_t upc_dbg_shared_ptr_t;
#endif
#define GUPCR_PTS_TO_REP(V) *((upc_shared_ptr_t *)&(V))
#if GUPCR_TARGET64
-#define GUPCR_ONE 1L
+#define GUPCR_ONE 1UL
#define GUPCR_PTS_REP_T unsigned long
#else
-#define GUPCR_ONE 1LL
+#define GUPCR_ONE 1ULL
#define GUPCR_PTS_REP_T unsigned long long
#endif
#define GUPCR_PTS_VADDR_MASK ((GUPCR_ONE << GUPCR_PTS_VADDR_SIZE) - GUPCR_ONE)
diff --git a/libgupc/smp/upc_sysdep.c b/libgupc/smp/upc_sysdep.c
index 18d7400a248..2f93f1ce9b6 100644
--- a/libgupc/smp/upc_sysdep.c
+++ b/libgupc/smp/upc_sysdep.c
@@ -56,11 +56,13 @@ char *__upc_strsignal (sig)
int sig;
{
static char sigbuf[64];
-#ifdef __sgi__
+#if defined(__sgi__) || defined(__sun__)
char **sys_siglist = _sys_siglist;
const int nsig = _sys_nsig;
#else
+#ifndef __NetBSD__ // signal.h has pointer decl instead of array
extern const char * const sys_siglist[];
+#endif
const int nsig = NSIG;
#endif
if (sig > 0 && sig < nsig)
@@ -183,7 +185,7 @@ __upc_runtime_alloc (size_t size, os_heap_p *ARG_UNUSED (heap),
#else
alloc = mmap ((void *) 0, size,
PROT_READ | PROT_WRITE,
- MAP_SHARED | MAP_ANONYMOUS, 0, OFFSET_ZERO);
+ MAP_SHARED | MAP_ANONYMOUS, -1, OFFSET_ZERO);
if (!alloc || alloc == MAP_ERROR)
{ *err_msg = strerror(errno); return 0; }
#endif
diff --git a/libgupc/testsuite/Makefile.in b/libgupc/testsuite/Makefile.in
index 29985c77115..647f659fb98 100644
--- a/libgupc/testsuite/Makefile.in
+++ b/libgupc/testsuite/Makefile.in
@@ -1,9 +1,9 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -15,6 +15,23 @@
@SET_MAKE@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
@@ -58,6 +75,11 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -293,7 +315,7 @@ CTAGS:
check-DEJAGNU: site.exp
- srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
+ srcdir='$(srcdir)'; export srcdir; \
EXPECT=$(EXPECT); export EXPECT; \
runtest=$(RUNTEST); \
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
@@ -304,12 +326,12 @@ check-DEJAGNU: site.exp
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi; \
exit $$exit_status
-site.exp: Makefile
+site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
@echo 'Making a new site.exp file...'
@echo '## these variables are automatically generated by make ##' >site.tmp
@echo '# Do not edit here. If you wish to override these values' >>site.tmp
@echo '# edit the last section' >>site.tmp
- @echo 'set srcdir $(srcdir)' >>site.tmp
+ @echo 'set srcdir "$(srcdir)"' >>site.tmp
@echo "set objdir `pwd`" >>site.tmp
@echo 'set build_alias "$(build_alias)"' >>site.tmp
@echo 'set build_triplet $(build_triplet)' >>site.tmp
@@ -317,9 +339,16 @@ site.exp: Makefile
@echo 'set host_triplet $(host_triplet)' >>site.tmp
@echo 'set target_alias "$(target_alias)"' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
- @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
- @test ! -f site.exp || \
- sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+ @list='$(EXTRA_DEJAGNU_SITE_CONFIG)'; for f in $$list; do \
+ echo "## Begin content included from file $$f. Do not modify. ##" \
+ && cat `test -f "$$f" || echo '$(srcdir)/'`$$f \
+ && echo "## End content included from file $$f. ##" \
+ || exit 1; \
+ done >> site.tmp
+ @echo "## End of auto-generated content; you can edit from here. ##" >> site.tmp
+ @if test -f site.exp; then \
+ sed -e '1,/^## End of auto-generated content.*##/d' site.exp >> site.tmp; \
+ fi
@-rm -f site.bak
@test ! -f site.exp || mv site.exp site.bak
@mv site.tmp site.exp
@@ -375,10 +404,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic: