Add patches that enable features added for krell related products. Update the package file to add a krellpatch variant to control adding the patches.

This commit is contained in:
Jim Galarowicz 2015-07-21 10:20:05 -05:00
parent 0591980cbe
commit 13421dc4aa
4 changed files with 526 additions and 0 deletions

View file

@ -0,0 +1,18 @@
--- libmonitor-20130218/configure 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/configure 2013-02-18 10:34:05.237918411 -0800
@@ -3600,13 +3600,13 @@
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
- CFLAGS="-g -O2"
+ CFLAGS="-g -O0"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
- CFLAGS="-O2"
+ CFLAGS="-O0"
else
CFLAGS=
fi

View file

@ -0,0 +1,395 @@
--- libmonitor-20130218/src/callback.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/callback.c 2013-02-18 10:34:17.839842826 -0800
@@ -173,3 +173,18 @@
MONITOR_DEBUG1("(default callback)\n");
return 0;
}
+
+
+void __attribute__ ((weak))
+monitor_mpi_post_comm_rank(void)
+{
+ MONITOR_DEBUG1("(default callback)\n");
+}
+
+void __attribute__ ((weak))
+monitor_mpi_pcontrol(int level)
+{
+ MONITOR_DEBUG("(default callback) level = %d\n", level);
+}
+
+
--- libmonitor-20130218/src/main.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/main.c 2013-02-18 10:34:17.839842826 -0800
@@ -230,6 +230,44 @@
monitor_fini_library_called = 1;
}
+/*
+ * Internal monitor functions.
+ */
+
+struct monitor_thread_node * __attribute__ ((weak))
+monitor_get_tn(void)
+{
+ return &monitor_main_tn;
+}
+
+int __attribute__ ((weak))
+monitor_get_thread_num(void)
+{
+ return (0);
+}
+
+void __attribute__ ((weak))
+monitor_reset_thread_list(struct monitor_thread_node *main_tn)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+void __attribute__ ((weak))
+monitor_thread_release(void)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+void __attribute__ ((weak))
+monitor_thread_shootdown(void)
+{
+ MONITOR_DEBUG1("(weak)\n");
+ return;
+}
+
+
void
monitor_begin_process_fcn(void *user_data, int is_fork)
{
@@ -625,12 +663,6 @@
return (monitor_main_tn.tn_user_data);
}
-int __attribute__ ((weak))
-monitor_get_thread_num(void)
-{
- return (0);
-}
-
void * __attribute__ ((weak))
monitor_get_addr_thread_start(void)
{
@@ -691,33 +723,3 @@
MONITOR_DEBUG1("(weak)\n");
return (FALSE);
}
-
-/*
- * Internal monitor functions.
- */
-struct monitor_thread_node * __attribute__ ((weak))
-monitor_get_tn(void)
-{
- return &monitor_main_tn;
-}
-
-void __attribute__ ((weak))
-monitor_reset_thread_list(struct monitor_thread_node *main_tn)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
-
-void __attribute__ ((weak))
-monitor_thread_release(void)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
-
-void __attribute__ ((weak))
-monitor_thread_shootdown(void)
-{
- MONITOR_DEBUG1("(weak)\n");
- return;
-}
--- libmonitor-20130218/src/monitor.h 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/monitor.h 2013-02-18 10:34:17.840842821 -0800
@@ -73,6 +73,11 @@
extern void monitor_fini_mpi(void);
extern void monitor_mpi_post_fini(void);
+extern void monitor_mpi_post_comm_rank(void);
+extern void monitor_mpi_pcontrol(int level);
+
+
+
/*
* Monitor support functions.
*/
--- libmonitor-20130218/src/mpi_comm_c.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_c.c 2013-02-18 10:34:17.878842622 -0800
@@ -36,5 +36,8 @@
ret = (*real_mpi_comm_rank)(comm, rank);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
+
+
return (ret);
}
--- libmonitor-20130218/src/mpi_comm_f0.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f0.c 2013-02-18 10:34:17.879842617 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/mpi_comm_f1.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f1.c 2013-02-18 10:34:17.880842612 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/mpi_comm_f2.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_comm_f2.c 2013-02-18 10:34:17.880842612 -0800
@@ -34,4 +34,5 @@
(*real_mpi_comm_size)(comm, &size, ierror);
(*real_mpi_comm_rank)(comm, rank, ierror);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
}
--- libmonitor-20130218/src/pmpi.c 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/pmpi.c 2013-02-18 10:34:17.881842607 -0800
@@ -52,11 +52,15 @@
typedef int mpi_init_thread_fcn_t(int *, char ***, int, int *);
typedef int mpi_finalize_fcn_t(void);
typedef int mpi_comm_fcn_t(void *, int *);
+typedef int mpi_pcontrol_fcn_t(int );
+
typedef void f_mpi_init_fcn_t(int *);
typedef void f_mpi_init_thread_fcn_t(int *, int *, int *);
typedef void f_mpi_finalize_fcn_t(int *);
typedef void f_mpi_comm_fcn_t(int *, int *, int *);
+typedef int f_mpi_pcontrol_fcn_t(int );
+
static mpi_init_fcn_t *real_pmpi_init = NULL;
static f_mpi_init_fcn_t *real_pmpi_init_f0 = NULL;
@@ -83,6 +87,12 @@
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f1 = NULL;
static f_mpi_comm_fcn_t *real_pmpi_comm_rank_f2 = NULL;
+static mpi_pcontrol_fcn_t *real_pmpi_pcontrol = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f0 = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f1 = NULL;
+static f_mpi_pcontrol_fcn_t *real_pmpi_pcontrol_f2 = NULL;
+
+
/*
*----------------------------------------------------------------------
* PMPI_INIT OVERRIDE FUNCTIONS
@@ -297,6 +307,7 @@
ret = (*real_pmpi_comm_size)(comm, &size);
ret = (*real_pmpi_comm_rank)(comm, rank);
monitor_set_mpi_size_rank(size, *rank);
+ monitor_mpi_post_comm_rank();
return (ret);
}
@@ -308,7 +319,9 @@
MONITOR_GET_REAL_NAME_WRAP(rank_var, rank_fcn); \
(*size_var)(comm, &size, ierror); \
(*rank_var)(comm, rank, ierror); \
- monitor_set_mpi_size_rank(size, *rank);
+ monitor_set_mpi_size_rank(size, *rank); \
+ monitor_mpi_post_comm_rank();
+
/*
* In Fortran, MPI_Comm is always int.
@@ -333,3 +346,48 @@
FORTRAN_COMM_RANK_BODY(real_pmpi_comm_size_f2, pmpi_comm_size__,
real_pmpi_comm_rank_f2, pmpi_comm_rank__);
}
+
+
+/*
+ *----------------------------------------------------------------------
+ * PMPI_PCONTROL OVERRIDE FUNCTIONS
+ *----------------------------------------------------------------------
+ */
+
+int
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
+{
+ int ret;
+
+ MONITOR_DEBUG("level = %d\n", level); \
+ MONITOR_GET_REAL_NAME_WRAP(real_pmpi_pcontrol, PMPI_Pcontrol);
+ ret = (*real_pmpi_pcontrol) (level) ;
+ monitor_mpi_pcontrol(level);
+
+ return (ret);
+}
+
+#define FORTRAN_PCONTROL_BODY(var_name, fcn_name)\
+ int ret; \
+ MONITOR_DEBUG("level = %d\n", level); \
+ MONITOR_GET_REAL_NAME_WRAP(var_name, fcn_name); \
+ ret = (*var_name) (level) ; \
+ monitor_mpi_pcontrol(level);
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
+}
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
+}
+
+int
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
+{
+ FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
+}
--- libmonitor-20130218/src/mpi_pcontrol_c.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_c.c 2013-02-18 10:34:17.882842602 -0800
@@ -0,0 +1,30 @@
+/*
+ * Override MPI_Pcontrol in C/C++.
+ *
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef int mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_MPI_Pcontrol;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(MPI_Pcontrol)(int level)
+{
+ int ret, count;
+
+ MONITOR_DEBUG("level = %d\n", level); \
+
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, MPI_Pcontrol);
+ ret = (*real_mpi_pcontrol)(level);
+ monitor_mpi_pcontrol(level);
+
+
+ return (ret);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f0.c 2013-02-18 10:34:17.882842602 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f1.c 2013-02-18 10:34:17.883842597 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol_ in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 1969-12-31 16:00:00.000000000 -0800
+++ libmonitor-20130218-fixes/src/mpi_pcontrol_f2.c 2013-02-18 10:34:17.883842597 -0800
@@ -0,0 +1,24 @@
+/*
+ * Override mpi_pcontrol__ in Fortran.
+ *
+ */
+
+#include "config.h"
+#include "common.h"
+#include "monitor.h"
+
+typedef void mpi_pcontrol_fcn_t(int level);
+#ifdef MONITOR_STATIC
+extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
+#endif
+static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
+
+int
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
+{
+ int count;
+
+ MONITOR_DEBUG1("\n");
+ MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
+ (*real_mpi_pcontrol)(level);
+}
--- libmonitor-20130218/src/Makefile.am 2013-02-17 23:08:32.000000000 -0800
+++ libmonitor-20130218-fixes/src/Makefile.am 2013-02-18 10:34:17.931842343 -0800
@@ -38,10 +38,11 @@
MONITOR_THREAD_FILES = pthread.c
MONITOR_SCRIPT_FILES = monitor-link monitor-run
MONITOR_MPI_FILES = \
- mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c \
- mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c \
- mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c \
- mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c
+ mpi_init_c.c mpi_init_thread_c.c mpi_final_c.c mpi_comm_c.c mpi_pcontrol_c.c \
+ mpi_init_f0.c mpi_init_thread_f0.c mpi_final_f0.c mpi_comm_f0.c mpi_pcontrol_f0.c \
+ mpi_init_f1.c mpi_init_thread_f1.c mpi_final_f1.c mpi_comm_f1.c mpi_pcontrol_f1.c \
+ mpi_init_f2.c mpi_init_thread_f2.c mpi_final_f2.c mpi_comm_f2.c mpi_pcontrol_f2.c
+
include_HEADERS = monitor.h
bin_SCRIPTS =

View file

@ -0,0 +1,106 @@
--- libmonitor-20130218/src/pmpi.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/pmpi.c 2013-04-11 10:03:59.300550393 -0600
@@ -355,7 +355,7 @@
*/
int
-MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level)
+MONITOR_WRAP_NAME(PMPI_Pcontrol)(int level, int *ierror )
{
int ret;
@@ -375,19 +375,19 @@
monitor_mpi_pcontrol(level);
int
-MONITOR_WRAP_NAME(pmpi_pcontrol)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f0, pmpi_pcontrol);
}
int
-MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol_)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f1, pmpi_pcontrol_);
}
int
-MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level)
+MONITOR_WRAP_NAME(pmpi_pcontrol__)(int level, int *ierror )
{
FORTRAN_PCONTROL_BODY(real_pmpi_pcontrol_f2, pmpi_pcontrol__);
}
--- libmonitor-20130218/src/mpi_pcontrol_f0.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f0.c 2013-04-11 10:13:47.783002000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}
--- libmonitor-20130218/src/mpi_pcontrol_f1.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f1.c 2013-04-11 10:14:08.039214000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol_;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol_)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol_)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol_);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}
--- libmonitor-20130218/src/mpi_pcontrol_f2.c 2013-02-18 11:34:17.000000000 -0700
+++ libmonitor-20130218-fixed/src/mpi_pcontrol_f2.c 2013-04-11 10:14:19.000960000 -0600
@@ -7,18 +7,18 @@
#include "common.h"
#include "monitor.h"
-typedef void mpi_pcontrol_fcn_t(int level);
+typedef void mpi_pcontrol_fcn_t(int level, int *ierror);
#ifdef MONITOR_STATIC
extern mpi_pcontrol_fcn_t __real_mpi_pcontrol__;
#endif
static mpi_pcontrol_fcn_t *real_mpi_pcontrol = NULL;
int
-MONITOR_WRAP_NAME(mpi_pcontrol__)(int level)
+MONITOR_WRAP_NAME(mpi_pcontrol__)(int level, int *ierror)
{
int count;
MONITOR_DEBUG1("\n");
MONITOR_GET_REAL_NAME_WRAP(real_mpi_pcontrol, mpi_pcontrol__);
- (*real_mpi_pcontrol)(level);
+ (*real_mpi_pcontrol)(level, ierror);
}

View file

@ -29,6 +29,13 @@ class Libmonitor(Package):
homepage = "http://hpctoolkit.org" homepage = "http://hpctoolkit.org"
version('20130218', svn='http://libmonitor.googlecode.com/svn/trunk/', revision=146) version('20130218', svn='http://libmonitor.googlecode.com/svn/trunk/', revision=146)
variant('krellpatch', default=False, description="build with openspeedshop based patch.")
patch('libmonitorkrell-0000.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0001.patch', when='@20130218+krellpatch')
patch('libmonitorkrell-0002.patch', when='@20130218+krellpatch')
def install(self, spec, prefix): def install(self, spec, prefix):
configure("--prefix=" + prefix) configure("--prefix=" + prefix)