1
1

Added configure option '--with-bfd-objects' to include the object files from the static BFD library into the VT libraries

(it's strongly recommend for RPM builds of OMPI to avoid BFD incompatibilities)

This commit was SVN r21383.
Этот коммит содержится в:
Matthias Jurenz 2009-06-05 11:28:55 +00:00
родитель 499f0850ae
Коммит fac893838f
4 изменённых файлов: 59 добавлений и 6 удалений

Просмотреть файл

@ -246,4 +246,8 @@
- install header files to 'PREFIX/include/vampirtrace' by default to
avoid conflicts with the OpenMPI integrated version of VT
- fixed faulty searching for matching filter directive
- fixed potential BFD incompatibilities when using the automatic
compiler instumentation of VT from an OpenMPI RPM package:
added configure option '--with-bfd-objects' to include the object
files from the static BFD library into the VT libraries

Просмотреть файл

@ -2,6 +2,9 @@ AC_DEFUN([ACVT_BFD],
[
bfd_error="no"
have_bfd="no"
have_bfd_objects="no"
bfd_obj_dir="$top_vt_builddir/vtlib/extobj/libbfd"
BFDDIR=
BFDINCDIR=
@ -28,6 +31,9 @@ AC_DEFUN([ACVT_BFD],
AC_HELP_STRING([--with-bfd-lib=BFDLIB], [use given bfd lib, default: -lbfd]),
[BFDLIB="$withval"])
AC_ARG_WITH(bfd-objects,
AC_HELP_STRING([--with-bfd-objects], [include bfd lib object files into VT libraries, default: no]))
sav_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $BFDINCDIR"
AC_CHECK_HEADER([bfd.h], [],
@ -37,7 +43,21 @@ AC_DEFUN([ACVT_BFD],
])
CPPFLAGS=$sav_CPPFLAGS
AS_IF([test x"$BFDLIB" = x -a "$bfd_error" = "no"],
AS_IF([test x"$with_bfd_objects" = "xyes" -a x"$BFDLIB" = x -a "$bfd_error" = "no"],
[
AS_IF([test x"$BFDLIBDIR" != x],
[bfdlib_static=`echo $BFDLIBDIR | sed s/\-L//`"libbfd.a"],
[bfdlib_static="/usr/lib/libbfd.a"])
sav_LIBS=$LIBS
LIBS="$LIBS $bfdlib_static"
AC_MSG_CHECKING([whether linking with $bfdlib_static works])
AC_TRY_LINK([],[],
[AC_MSG_RESULT([yes]); BFDLIB=$bfdlib_static],[AC_MSG_RESULT([no])])
LIBS=$sav_LIBS
])
AS_IF([test x"$with_bfd_objects" != "xyes" -a x"$BFDLIB" = x -a "$bfd_error" = "no"],
[
sav_LIBS=$LIBS
LIBS="$LIBS $BFDLIBDIR -lbfd"
@ -53,7 +73,26 @@ AC_DEFUN([ACVT_BFD],
bfd_error="yes"
])
AS_IF([test x"$BFDLIB" != x -a "$bfd_error" = "no"], [have_bfd="yes"])
AS_IF([test x"$with_bfd_objects" = "xyes" -a "$bfd_error" = "no"],
[
parent_dir=`pwd`
mkdir -p "$bfd_obj_dir"
cd "$bfd_obj_dir"
AC_MSG_NOTICE([extracting $BFDLIB])
$AR x $BFDLIB
AS_IF([test $? != "0"], [bfd_error="yes"])
cd "$parent_dir"
BFDLIBDIR=
BFDLIB=
])
AS_IF([test "$bfd_error" = "no"],
[
have_bfd="yes"
AS_IF([test x"$with_bfd_objects" = "xyes"],
[have_bfd_objects="yes"])
])
AC_SUBST(BFDINCDIR)
AC_SUBST(BFDLIBDIR)

Просмотреть файл

@ -128,6 +128,7 @@ AM_CONDITIONAL(AMBUILDCOMPINST_PHAT, test x"$build_compinst_phat" = "xyes")
AM_CONDITIONAL(AMBUILDCOMPINST_XL, test x"$build_compinst_xl" = "xyes")
AM_CONDITIONAL(AMBUILDCOMPINST_FTRACE, test x"$build_compinst_ftrace" = "xyes")
AM_CONDITIONAL(AMHAVEBFD, test x"$have_bfd" = "xyes")
AM_CONDITIONAL(AMHAVEBFDOBJS, test x"$have_bfd" = "xyes" -a x"$have_bfd_objects" = "xyes")
# Check for binary instrumentation by Dyninst
ACVT_CONF_TITLE([Binary instrumentation by Dyninst])

Просмотреть файл

@ -108,9 +108,15 @@ endif
if AMHAVEBFD
BFDINCLUDE = $(BFDINCDIR)
BFDCFLAGS = -DVT_BFD
if AMHAVEBFDOBJS
BFDOBJS = extobj/libbfd/*.$(OBJEXT)
else
BFDOBJS =
endif
else
BFDINCLUDE =
BFDCFLAGS =
BFDOBJS =
endif
if AMHAVELIBERTY
@ -206,25 +212,25 @@ VT_HYB_SOURCES = \
CC = $(MPICC)
AM_CFLAGS = -DBINDIR=\"$(bindir)\" -DDATADIR=\"$(datadir)\" $(RFGCFLAGS) $(BFDCFLAGS) $(MEMHOOKCFLAGS) $(IOWRAPCFLAGS) $(METRCFLAGS)
libvt_a_LIBADD = $(top_builddir)/util/util.$(OBJEXT)
libvt_a_LIBADD = $(top_builddir)/util/util.$(OBJEXT) $(BFDOBJS)
libvt_a_SOURCES = \
$(VT_COMMON_SOURCES) \
$(OPARILIBDIR)/pomp_fwrapper_base.c
libvt_mpi_a_CFLAGS = -DVT_MPI $(AM_CFLAGS) $(MPICFLAGS) $(MPIINCDIR)
libvt_mpi_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT)
libvt_mpi_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT) $(BFDOBJS)
libvt_mpi_a_SOURCES = \
$(VT_COMMON_SOURCES) \
$(VT_MPI_SOURCES)
libvt_omp_a_CFLAGS = $(OMPFLAG) -DVT_OMP $(AM_CFLAGS)
libvt_omp_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT)
libvt_omp_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT) $(BFDOBJS)
libvt_omp_a_SOURCES = \
$(VT_COMMON_SOURCES) \
$(VT_OMP_SOURCES)
libvt_ompi_a_CFLAGS = $(OMPFLAG) -DVT_OMPI $(AM_CFLAGS) $(MPICFLAGS) $(MPIINCDIR)
libvt_ompi_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT)
libvt_ompi_a_LIBADD = pomp_fwrapper_base.$(OBJEXT) $(top_builddir)/util/util.$(OBJEXT) $(BFDOBJS)
libvt_ompi_a_SOURCES = \
$(VT_COMMON_SOURCES) \
$(VT_HYB_SOURCES)
@ -246,3 +252,6 @@ EXTRA_DIST = \
vt_pform_origin.c \
vt_pform_sun.c
DISTCLEANFILES = \
$(BFDOBJS)