349 lines
11 KiB
Diff
349 lines
11 KiB
Diff
commit 38290c41abbb105ca198411ec3c466ac027f5b8f
|
|
Author: Frank Winkler <frankbook@Franks-MacBook-Air.local>
|
|
Date: Fri Apr 24 16:18:22 2020 +0200
|
|
|
|
Fixed configure options for shared and static builds.
|
|
|
|
1) --with-static-lib=no (force PAPI to build shared libraries and tools)
|
|
2) --with-shlib-tools (use internal libpfm via rpath-link)
|
|
|
|
diff --git a/src/configure.in b/src/configure.in
|
|
index 3cf47edc1..1f58f7c8e 100644
|
|
--- a/src/configure.in
|
|
+++ b/src/configure.in
|
|
@@ -200,9 +200,13 @@ else
|
|
AC_MSG_ERROR([cannot find dlopen and dlerror symbols neither in the base system libraries nor in -ldl])
|
|
fi
|
|
fi
|
|
+
|
|
+# Disable LDL for static builds
|
|
+# if test "x${STATIC}" = "x"; then
|
|
+# LDL=""
|
|
+# fi
|
|
AC_SUBST(LDL)
|
|
-
|
|
-
|
|
+
|
|
if test "$OS" = "CLE"; then
|
|
virtualtimer=times
|
|
tls=__thread
|
|
@@ -827,10 +831,6 @@ AC_ARG_WITH(static_tools,
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
|
|
-if test "$static_lib" = "no"; then
|
|
- AC_MSG_ERROR(Building tests and utilities static but no static papi library to be built)
|
|
-fi
|
|
-
|
|
AC_MSG_CHECKING(for linking with papi shared library of tests and utilities)
|
|
AC_ARG_WITH(shlib_tools,
|
|
[ --with-shlib-tools Specify linking with papi library of tests and utilities],
|
|
@@ -839,6 +839,14 @@ AC_ARG_WITH(shlib_tools,
|
|
[shlib_tools=no
|
|
AC_MSG_RESULT(no)])
|
|
|
|
+if test "$static_lib" = "no"; then
|
|
+ shlib_tools=yes
|
|
+fi
|
|
+
|
|
+if test "$static_lib" = "no" -a "$shlib_tools" = "no"; then
|
|
+ AC_MSG_ERROR(Building tests and utilities static but no static papi library to be built)
|
|
+fi
|
|
+
|
|
if test "$shlib_tools" = "yes"; then
|
|
if test "$shared_lib" != "yes"; then
|
|
AC_MSG_ERROR(Building static but specified shared linking for tests and utilities)
|
|
@@ -847,6 +855,8 @@ if test "$shlib_tools" = "yes"; then
|
|
AC_MSG_ERROR([Building shared but specified static linking])
|
|
fi
|
|
LINKLIB='$(SHLIB)'
|
|
+ #WORKAROUND: if libpfm cannot be found at link time
|
|
+ LDFLAGS="$LDFLAGS -Wl,-rpath-link,$PWD/libpfm4/lib"
|
|
elif test "$shlib_tools" = "no"; then
|
|
if test "$static_lib" != "yes"; then
|
|
AC_MSG_ERROR([Building shared but specified static linking for tests and utilities])
|
|
commit d6f4e34d083f18cfdba38dd5e4bbfb2a580b8a9e
|
|
Author: Frank Winkler <frankbook@Franks-MacBook-Air.local>
|
|
Date: Fri Apr 24 16:38:18 2020 +0200
|
|
|
|
Another test for "--with-static-tools".
|
|
|
|
diff --git a/src/configure.in b/src/configure.in
|
|
index 1f58f7c8e..e8d769578 100644
|
|
--- a/src/configure.in
|
|
+++ b/src/configure.in
|
|
@@ -201,10 +201,6 @@ else
|
|
fi
|
|
fi
|
|
|
|
-# Disable LDL for static builds
|
|
-# if test "x${STATIC}" = "x"; then
|
|
-# LDL=""
|
|
-# fi
|
|
AC_SUBST(LDL)
|
|
|
|
if test "$OS" = "CLE"; then
|
|
@@ -831,6 +827,11 @@ AC_ARG_WITH(static_tools,
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
|
|
+# Disable LDL for static builds
|
|
+# if test "$STATIC" = "-static"; then
|
|
+# LDL=""
|
|
+# fi
|
|
+
|
|
AC_MSG_CHECKING(for linking with papi shared library of tests and utilities)
|
|
AC_ARG_WITH(shlib_tools,
|
|
[ --with-shlib-tools Specify linking with papi library of tests and utilities],
|
|
commit 1c333c9954b872cda1b4d873fa81b14ec58a58a7
|
|
Author: Frank Winkler <frankbook@Franks-MacBook-Air.local>
|
|
Date: Thu Apr 30 18:51:34 2020 +0200
|
|
|
|
Fixed static build.
|
|
- SDE component is disabled
|
|
- "ctest" shlib is disabled
|
|
|
|
diff --git a/src/configure.in b/src/configure.in
|
|
index e8d769578..0eee98ea1 100644
|
|
--- a/src/configure.in
|
|
+++ b/src/configure.in
|
|
@@ -827,10 +827,11 @@ AC_ARG_WITH(static_tools,
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)])
|
|
|
|
-# Disable LDL for static builds
|
|
-# if test "$STATIC" = "-static"; then
|
|
-# LDL=""
|
|
-# fi
|
|
+# Disable LDL AND SDE for static builds
|
|
+if test "$STATIC" = "-static"; then
|
|
+ LDL=""
|
|
+ SDE_ENABLED=
|
|
+fi
|
|
|
|
AC_MSG_CHECKING(for linking with papi shared library of tests and utilities)
|
|
AC_ARG_WITH(shlib_tools,
|
|
@@ -1768,6 +1769,7 @@ for comp in $components; do
|
|
if test "x$comp" = "xsde" ; then
|
|
LDFLAGS="$LDFLAGS $LRT"
|
|
LIBS="$LIBS $LRT"
|
|
+ SDE_ENABLED=1
|
|
fi
|
|
done
|
|
|
|
@@ -1862,6 +1864,7 @@ AC_SUBST(BGP_SYSDIR)
|
|
AC_SUBST(BITFLAGS)
|
|
AC_SUBST(COMPONENT_RULES)
|
|
AC_SUBST(COMPONENTS)
|
|
+AC_SUBST(SDE_ENABLED)
|
|
AC_SUBST(FTEST_TARGETS)
|
|
AC_SUBST(HAVE_NO_OVERRIDE_INIT)
|
|
AC_SUBST(BGPM_INSTALL_DIR)
|
|
diff --git a/src/ctests/Makefile.recipies b/src/ctests/Makefile.recipies
|
|
index b7c1963d7..44e19b398 100644
|
|
--- a/src/ctests/Makefile.recipies
|
|
+++ b/src/ctests/Makefile.recipies
|
|
@@ -11,7 +11,11 @@ MPX = max_multiplex multiplex1 multiplex2 mendes-alt sdsc-mpx sdsc2-mpx \
|
|
MPXPTHR = multiplex1_pthreads multiplex3_pthreads kufrin
|
|
MPI = mpi_hl mpi_omp_hl \
|
|
mpifirst
|
|
+
|
|
+ifeq ($(STATIC),)
|
|
SHARED = shlib
|
|
+endif
|
|
+
|
|
SERIAL = serial_hl serial_hl_ll_comb\
|
|
all_events all_native_events branches calibrate case1 case2 \
|
|
cmpinfo code2name derived describe destroy disable_component \
|
|
@@ -344,8 +348,10 @@ case2: case2.c $(TESTLIB) $(PAPILIB)
|
|
low-level: low-level.c $(TESTLIB) $(DOLOOPS) $(PAPILIB)
|
|
$(CC) $(INCLUDE) $(CFLAGS) $(TOPTFLAGS) low-level.c $(TESTLIB) $(DOLOOPS) $(PAPILIB) $(LDFLAGS) -o low-level
|
|
|
|
+ifeq ($(STATIC),)
|
|
shlib: shlib.c $(TESTLIB) $(PAPILIB)
|
|
$(CC) $(INCLUDE) $(CFLAGS) $(TOPTFLAGS) shlib.c $(TESTLIB) $(PAPILIB) $(LDFLAGS) -o shlib $(LDL)
|
|
+endif
|
|
|
|
exeinfo: exeinfo.c $(TESTLIB) $(PAPILIB)
|
|
-$(CC) $(INCLUDE) $(CFLAGS) $(TOPTFLAGS) exeinfo.c $(TESTLIB) $(PAPILIB) $(LDFLAGS) -o exeinfo
|
|
diff --git a/src/ctests/Makefile.target.in b/src/ctests/Makefile.target.in
|
|
index edc04f1b7..af64e157c 100644
|
|
--- a/src/ctests/Makefile.target.in
|
|
+++ b/src/ctests/Makefile.target.in
|
|
@@ -10,6 +10,7 @@ INCLUDE = -I. -I@includedir@ -I$(testlibdir) -I$(validationlibdir)
|
|
LIBDIR = @libdir@
|
|
LIBRARY = @LIBRARY@
|
|
SHLIB = @SHLIB@
|
|
+STATIC = @STATIC@
|
|
PAPILIB = ../@LINKLIB@
|
|
TESTLIB = $(testlibdir)/libtestlib.a
|
|
LDFLAGS = @LDFLAGS@ @LDL@ @STATIC@
|
|
diff --git a/src/utils/Makefile b/src/utils/Makefile
|
|
index 4abfd6cb8..64a2b8f9f 100644
|
|
--- a/src/utils/Makefile
|
|
+++ b/src/utils/Makefile
|
|
@@ -48,8 +48,13 @@ papi_mem_info: papi_mem_info.o $(PAPILIB)
|
|
papi_multiplex_cost: papi_multiplex_cost.o $(PAPILIB) cost_utils.o
|
|
$(CC) -o papi_multiplex_cost papi_multiplex_cost.o cost_utils.o $(PAPILIB) -lm $(LDFLAGS)
|
|
|
|
+ifneq ($(SDE_ENABLED),)
|
|
papi_native_avail: papi_native_avail.o $(PAPILIB) print_header.o papi_sde_interface.o
|
|
$(CC) -o papi_native_avail papi_native_avail.o $(PAPILIB) print_header.o $(LDFLAGS) papi_sde_interface.o
|
|
+else
|
|
+papi_native_avail: papi_native_avail.o $(PAPILIB) print_header.o
|
|
+ $(CC) -o papi_native_avail papi_native_avail.o $(PAPILIB) print_header.o $(LDFLAGS)
|
|
+endif
|
|
|
|
papi_version: papi_version.o $(PAPILIB)
|
|
$(CC) -o papi_version papi_version.o $(PAPILIB) $(LDFLAGS)
|
|
@@ -65,8 +70,10 @@ cost_utils.o: ../testlib/papi_test.h cost_utils.c
|
|
print_header.o: print_header.h print_header.c
|
|
$(CC) $(INCLUDE) $(CFLAGS) $(OPTFLAGS) -c print_header.c
|
|
|
|
+ifneq ($(SDE_ENABLED),)
|
|
papi_sde_interface.o: papi_sde_interface.c
|
|
$(CC) $(INCLUDE) $(CFLAGS) $(OPTFLAGS) -c papi_sde_interface.c
|
|
+endif
|
|
|
|
clean:
|
|
rm -f *.o *.stderr *.stdout core *~ $(ALL)
|
|
diff --git a/src/utils/Makefile.target.in b/src/utils/Makefile.target.in
|
|
index bcdbe94e9..9c76b37af 100644
|
|
--- a/src/utils/Makefile.target.in
|
|
+++ b/src/utils/Makefile.target.in
|
|
@@ -9,6 +9,7 @@ INCLUDE = -I. -I@includedir@ -I$(testlibdir)
|
|
LIBDIR = @libdir@
|
|
LIBRARY = @LIBRARY@
|
|
SHLIB = @SHLIB@
|
|
+SDE_ENABLED = @SDE_ENABLED@
|
|
PAPILIB = ../@LINKLIB@
|
|
TESTLIB = $(testlibdir)/libtestlib.a
|
|
LDFLAGS = @LDFLAGS@ @LDL@ @STATIC@
|
|
diff --git a/src/utils/papi_native_avail.c b/src/utils/papi_native_avail.c
|
|
index ae6dbb9e5..902ed7996 100644
|
|
--- a/src/utils/papi_native_avail.c
|
|
+++ b/src/utils/papi_native_avail.c
|
|
@@ -51,8 +51,9 @@
|
|
|
|
#include "papi.h"
|
|
#include "print_header.h"
|
|
+#ifdef SDE_ENABLED
|
|
#include "components/sde/interface/papi_sde_interface.h"
|
|
-
|
|
+#endif
|
|
#define EVT_LINE 80
|
|
#define EVT_LINE_BUF_SIZE 4096
|
|
|
|
@@ -84,7 +85,9 @@ print_help( char **argv )
|
|
printf( "\nGeneral command options:\n" );
|
|
printf( "\t-h, --help print this help message\n" );
|
|
printf( "\t-c, --check attempts to add each event\n");
|
|
+#ifdef SDE_ENABLED
|
|
printf( "\t-sde FILE lists SDEs that are registered by the library or executable in FILE\n" );
|
|
+#endif
|
|
printf( "\t-e EVENTNAME display detailed information about named native event\n" );
|
|
printf( "\t-i EVENTSTR include only event names that contain EVENTSTR\n" );
|
|
printf( "\t-x EVENTSTR exclude any event names that contain EVENTSTR\n" );
|
|
@@ -368,6 +371,7 @@ parse_event_qualifiers( PAPI_event_info_t * info )
|
|
return ( 1 );
|
|
}
|
|
|
|
+#ifdef SDE_ENABLED
|
|
void
|
|
invoke_hook_fptr( char *lib_path )
|
|
{
|
|
@@ -394,6 +398,7 @@ invoke_hook_fptr( char *lib_path )
|
|
dlclose(dl_handle);
|
|
return;
|
|
}
|
|
+#endif
|
|
|
|
int
|
|
main( int argc, char **argv )
|
|
@@ -444,6 +449,7 @@ main( int argc, char **argv )
|
|
return 2;
|
|
}
|
|
|
|
+#ifdef SDE_ENABLED
|
|
/*
|
|
The following code will execute if the user wants to list the SDEs in the
|
|
library (or executable) stored in flags.path. This code will not list the
|
|
@@ -514,6 +520,7 @@ skip_lib:
|
|
if( NULL != cmd ) free(cmd);
|
|
}
|
|
no_sdes:
|
|
+#endif //SDE_ENABLED
|
|
|
|
/* Do this code if the event name option was specified on the commandline */
|
|
if ( flags.named ) {
|
|
commit b5111efaf1b234541c94b8ef7e5791bf8eb094b3
|
|
Author: Frank Winkler <frankbook@franks-air.localdomain>
|
|
Date: Thu May 7 09:00:53 2020 +0200
|
|
|
|
Added CFLAG -DSDE.
|
|
|
|
diff --git a/src/configure.in b/src/configure.in
|
|
index 0eee98ea1..781148e5b 100644
|
|
--- a/src/configure.in
|
|
+++ b/src/configure.in
|
|
@@ -1767,6 +1767,7 @@ tests="$tests comp_tests"
|
|
# check for SDE component to determine if we need -lrt in LDFLAGS
|
|
for comp in $components; do
|
|
if test "x$comp" = "xsde" ; then
|
|
+ CFLAGS="$CFLAGS -DSDE"
|
|
LDFLAGS="$LDFLAGS $LRT"
|
|
LIBS="$LIBS $LRT"
|
|
SDE_ENABLED=1
|
|
diff --git a/src/utils/papi_native_avail.c b/src/utils/papi_native_avail.c
|
|
index 902ed7996..7d90c4064 100644
|
|
--- a/src/utils/papi_native_avail.c
|
|
+++ b/src/utils/papi_native_avail.c
|
|
@@ -51,9 +51,10 @@
|
|
|
|
#include "papi.h"
|
|
#include "print_header.h"
|
|
-#ifdef SDE_ENABLED
|
|
+#if SDE
|
|
#include "components/sde/interface/papi_sde_interface.h"
|
|
#endif
|
|
+
|
|
#define EVT_LINE 80
|
|
#define EVT_LINE_BUF_SIZE 4096
|
|
|
|
@@ -85,7 +86,7 @@ print_help( char **argv )
|
|
printf( "\nGeneral command options:\n" );
|
|
printf( "\t-h, --help print this help message\n" );
|
|
printf( "\t-c, --check attempts to add each event\n");
|
|
-#ifdef SDE_ENABLED
|
|
+#if SDE
|
|
printf( "\t-sde FILE lists SDEs that are registered by the library or executable in FILE\n" );
|
|
#endif
|
|
printf( "\t-e EVENTNAME display detailed information about named native event\n" );
|
|
@@ -371,7 +372,7 @@ parse_event_qualifiers( PAPI_event_info_t * info )
|
|
return ( 1 );
|
|
}
|
|
|
|
-#ifdef SDE_ENABLED
|
|
+#if SDE
|
|
void
|
|
invoke_hook_fptr( char *lib_path )
|
|
{
|
|
@@ -449,7 +450,7 @@ main( int argc, char **argv )
|
|
return 2;
|
|
}
|
|
|
|
-#ifdef SDE_ENABLED
|
|
+#if SDE
|
|
/*
|
|
The following code will execute if the user wants to list the SDEs in the
|
|
library (or executable) stored in flags.path. This code will not list the
|
|
@@ -520,7 +521,7 @@ skip_lib:
|
|
if( NULL != cmd ) free(cmd);
|
|
}
|
|
no_sdes:
|
|
-#endif //SDE_ENABLED
|
|
+#endif //SDE
|
|
|
|
/* Do this code if the event name option was specified on the commandline */
|
|
if ( flags.named ) {
|