--- Begin Message ---
Package: fftw3
Version: 3.3.1-1
Severity: normal
Tags: experimental patch
Forwarded: [email protected]
libfftw3-mpi-3 is not linked against mpi and fftw3 resulting in
incorrect dependencies and potential issues in ld --as-needed builds,
see the dpkg-shlibdep warnings in the build logs.
Attached a patch that fixes the issue.
It has a bit unnecessary noise as it was generated with autoreconf,
please consider regenerating the autotools files during the build so you
only need to patch the .am files (patch for that also attached)
Description: link threads and mpi libraries against fftw3 and mpi
Author: Julian Taylor <[email protected]>
Forwarded: [email protected]
Index: fftw3-3.3.1/mpi/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/mpi/Makefile.am 2012-02-21 23:51:56.000000000 +0000
+++ fftw3-3.3.1/mpi/Makefile.am 2012-03-18 17:15:12.498045049 +0000
@@ -24,6 +24,7 @@
libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@[email protected] @MPILIBS@
if THREADS
mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
Index: fftw3-3.3.1/threads/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/threads/Makefile.am 2012-02-20 16:04:55.000000000 +0000
+++ fftw3-3.3.1/threads/Makefile.am 2012-03-18 17:15:12.498045049 +0000
@@ -26,6 +26,7 @@
vrank-geq1-rdft2.c f77api.c f77funcs.h
libfftw3@PREC_SUFFIX@_threads_la_CFLAGS = $(PTHREAD_CFLAGS)
libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_threads_la_LIBADD = ../libfftw3@[email protected]
libfftw3@PREC_SUFFIX@_omp_la_SOURCES = api.c conf.c openmp.c \
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
Index: fftw3-3.3.1/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/Makefile.am 2012-02-21 23:58:34.000000000 +0000
+++ fftw3-3.3.1/Makefile.am 2012-03-18 17:15:12.498045049 +0000
@@ -14,7 +14,7 @@
ACLOCAL_AMFLAGS=-I m4
SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api \
-threads libbench2 . tests mpi doc tools m4
+libbench2 . threads tests mpi doc tools m4
EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
SIMD_LIBS = \
Index: fftw3-3.3.1/m4/acx_mpi.m4
===================================================================
--- fftw3-3.3.1.orig/m4/acx_mpi.m4 2012-02-20 16:04:55.000000000 +0000
+++ fftw3-3.3.1/m4/acx_mpi.m4 2012-03-18 17:15:12.498045049 +0000
@@ -63,10 +63,10 @@
])
if test x = x"$MPILIBS"; then
- AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
- [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=""])],
+ [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=""])],
[Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
- AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=" "
+ AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=""
AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
fi
if test x = x"$MPILIBS"; then
Index: fftw3-3.3.1/Makefile.in
===================================================================
--- fftw3-3.3.1.orig/Makefile.in 2012-02-21 23:59:08.000000000 +0000
+++ fftw3-3.3.1/Makefile.in 2012-03-18 17:15:38.798044989 +0000
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.2 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -133,14 +133,16 @@
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = support genfft kernel simd-support dft rdft reodft api \
- threads libbench2 . tests mpi doc tools m4
+ libbench2 . threads tests mpi doc tools m4
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,'; \
@@ -326,7 +328,7 @@
@MAINTAINER_MODE_TRUE@GENFFT = genfft
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = support $(GENFFT) kernel simd-support dft rdft reodft api \
-threads libbench2 . tests mpi doc tools m4
+libbench2 . threads tests mpi doc tools m4
EXTRA_DIST = COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
SIMD_LIBS = \
@@ -460,7 +462,7 @@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libfftw3@[email protected]: $(libfftw3@PREC_SUFFIX@_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_la_DEPENDENCIES)
+libfftw3@[email protected]: $(libfftw3@PREC_SUFFIX@_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_la_DEPENDENCIES) $(EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES)
$(libfftw3@PREC_SUFFIX@_la_LINK) -rpath $(libdir) $(libfftw3@PREC_SUFFIX@_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_la_LIBADD) $(LIBS)
mostlyclean-compile:
@@ -706,6 +708,10 @@
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
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
@@ -742,6 +748,8 @@
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*) \
@@ -931,20 +939,20 @@
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags ctags-recursive dist \
- dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
- dist-xz dist-zip distcheck distclean distclean-compile \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-tags distcleancheck distdir distuninstallcheck dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-libLTLIBRARIES \
- install-man install-pdf install-pdf-am install-pkgconfigDATA \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags tags-recursive uninstall uninstall-am \
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar \
+ dist-tarZ dist-xz dist-zip distcheck distclean \
+ distclean-compile distclean-generic distclean-hdr \
+ distclean-libtool distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-pkgconfigDATA install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
Index: fftw3-3.3.1/configure
===================================================================
--- fftw3-3.3.1.orig/configure 2012-02-21 23:59:05.000000000 +0000
+++ fftw3-3.3.1/configure 2012-03-18 17:15:36.210044995 +0000
@@ -3168,11 +3168,11 @@
# 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 -'
@@ -13043,7 +13043,7 @@
if test x = x"$MPILIBS"; then
ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init"
if test "x$ac_cv_func_MPI_Init" = xyes; then :
- MPILIBS=" "
+ MPILIBS=""
fi
fi
Index: fftw3-3.3.1/mpi/Makefile.in
===================================================================
--- fftw3-3.3.1.orig/mpi/Makefile.in 2012-02-21 23:59:07.000000000 +0000
+++ fftw3-3.3.1/mpi/Makefile.in 2012-03-18 17:15:37.946044991 +0000
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.2 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -88,7 +88,8 @@
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \
"$(DESTDIR)$(includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
-libfftw3@PREC_SUFFIX@_mpi_la_LIBADD =
+libfftw3@PREC_SUFFIX@_mpi_la_DEPENDENCIES = \
+ ../libfftw3@[email protected]
am__objects_1 = any-true.lo api.lo block.lo choose-radix.lo conf.lo \
dtensor.lo rearrange.lo wisdom-api.lo f03-wrap.lo
am__objects_2 = transpose-alltoall.lo transpose-pairwise.lo \
@@ -304,6 +305,7 @@
SRC = any-true.c api.c block.c choose-radix.c conf.c dtensor.c fftw3-mpi.h ifftw-mpi.h rearrange.c wisdom-api.c f03-wrap.c
libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@[email protected] @MPILIBS@
@OPENMP_TRUE@@THREADS_FALSE@mpi_bench_CFLAGS = $(OPENMP_CFLAGS)
@THREADS_TRUE@mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
@COMBINED_THREADS_FALSE@@THREADS_TRUE@LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_threads.la
@@ -380,7 +382,7 @@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libfftw3@PREC_SUFFIX@_mpi.la: $(libfftw3@PREC_SUFFIX@_mpi_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_mpi_la_DEPENDENCIES)
+libfftw3@PREC_SUFFIX@_mpi.la: $(libfftw3@PREC_SUFFIX@_mpi_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_mpi_la_DEPENDENCIES) $(EXTRA_libfftw3@PREC_SUFFIX@_mpi_la_DEPENDENCIES)
$(libfftw3@PREC_SUFFIX@_mpi_la_LINK) $(am_libfftw3@PREC_SUFFIX@_mpi_la_rpath) $(libfftw3@PREC_SUFFIX@_mpi_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_mpi_la_LIBADD) $(LIBS)
clean-noinstPROGRAMS:
@@ -391,7 +393,7 @@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-mpi-bench$(EXEEXT): $(mpi_bench_OBJECTS) $(mpi_bench_DEPENDENCIES)
+mpi-bench$(EXEEXT): $(mpi_bench_OBJECTS) $(mpi_bench_DEPENDENCIES) $(EXTRA_mpi_bench_DEPENDENCIES)
@rm -f mpi-bench$(EXEEXT)
$(mpi_bench_LINK) $(mpi_bench_OBJECTS) $(mpi_bench_LDADD) $(LIBS)
Index: fftw3-3.3.1/threads/Makefile.in
===================================================================
--- fftw3-3.3.1.orig/threads/Makefile.in 2012-02-21 23:59:08.000000000 +0000
+++ fftw3-3.3.1/threads/Makefile.in 2012-03-18 17:15:38.702044988 +0000
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11.2 from Makefile.am.
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -105,7 +105,8 @@
@COMBINED_THREADS_FALSE@@OPENMP_TRUE@@THREADS_TRUE@ $(libdir)
@OPENMP_TRUE@@THREADS_FALSE@am_libfftw3@PREC_SUFFIX@_omp_la_rpath = \
@OPENMP_TRUE@@THREADS_FALSE@ -rpath $(libdir)
-libfftw3@PREC_SUFFIX@_threads_la_LIBADD =
+libfftw3@PREC_SUFFIX@_threads_la_DEPENDENCIES = \
+ ../libfftw3@[email protected]
am_libfftw3@PREC_SUFFIX@_threads_la_OBJECTS = \
libfftw3@PREC_SUFFIX@_threads_la-api.lo \
libfftw3@PREC_SUFFIX@_threads_la-conf.lo \
@@ -306,6 +307,7 @@
libfftw3@PREC_SUFFIX@_threads_la_CFLAGS = $(PTHREAD_CFLAGS)
libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_threads_la_LIBADD = ../libfftw3@[email protected]
libfftw3@PREC_SUFFIX@_omp_la_SOURCES = api.c conf.c openmp.c \
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
vrank-geq1-rdft2.c f77api.c f77funcs.h
@@ -386,9 +388,9 @@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libfftw3@PREC_SUFFIX@_omp.la: $(libfftw3@PREC_SUFFIX@_omp_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_omp_la_DEPENDENCIES)
+libfftw3@PREC_SUFFIX@_omp.la: $(libfftw3@PREC_SUFFIX@_omp_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_omp_la_DEPENDENCIES) $(EXTRA_libfftw3@PREC_SUFFIX@_omp_la_DEPENDENCIES)
$(libfftw3@PREC_SUFFIX@_omp_la_LINK) $(am_libfftw3@PREC_SUFFIX@_omp_la_rpath) $(libfftw3@PREC_SUFFIX@_omp_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_omp_la_LIBADD) $(LIBS)
-libfftw3@PREC_SUFFIX@_threads.la: $(libfftw3@PREC_SUFFIX@_threads_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_threads_la_DEPENDENCIES)
+libfftw3@PREC_SUFFIX@_threads.la: $(libfftw3@PREC_SUFFIX@_threads_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_threads_la_DEPENDENCIES) $(EXTRA_libfftw3@PREC_SUFFIX@_threads_la_DEPENDENCIES)
$(libfftw3@PREC_SUFFIX@_threads_la_LINK) $(am_libfftw3@PREC_SUFFIX@_threads_la_rpath) $(libfftw3@PREC_SUFFIX@_threads_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_threads_la_LIBADD) $(LIBS)
mostlyclean-compile:
Index: fftw3-3.3.1/mpi/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/mpi/Makefile.am 2012-02-21 23:51:56.000000000 +0000
+++ fftw3-3.3.1/mpi/Makefile.am 2012-03-18 17:06:22.674046307 +0000
@@ -24,6 +24,7 @@
libfftw3@PREC_SUFFIX@_mpi_la_SOURCES = $(SRC) $(TRANSPOSE_SRC) $(DFT_SRC) $(RDFT_SRC) $(RDFT2_SRC)
libfftw3@PREC_SUFFIX@_mpi_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_mpi_la_LIBADD = ../libfftw3@[email protected] @MPILIBS@
if THREADS
mpi_bench_CFLAGS = $(PTHREAD_CFLAGS)
Index: fftw3-3.3.1/threads/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/threads/Makefile.am 2012-02-20 16:04:55.000000000 +0000
+++ fftw3-3.3.1/threads/Makefile.am 2012-03-18 17:06:22.674046307 +0000
@@ -26,6 +26,7 @@
vrank-geq1-rdft2.c f77api.c f77funcs.h
libfftw3@PREC_SUFFIX@_threads_la_CFLAGS = $(PTHREAD_CFLAGS)
libfftw3@PREC_SUFFIX@_threads_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
+libfftw3@PREC_SUFFIX@_threads_la_LIBADD = ../libfftw3@[email protected]
libfftw3@PREC_SUFFIX@_omp_la_SOURCES = api.c conf.c openmp.c \
threads.h dft-vrank-geq1.c ct.c rdft-vrank-geq1.c hc2hc.c \
Index: fftw3-3.3.1/Makefile.am
===================================================================
--- fftw3-3.3.1.orig/Makefile.am 2012-02-21 23:58:34.000000000 +0000
+++ fftw3-3.3.1/Makefile.am 2012-03-18 17:06:22.678046308 +0000
@@ -14,7 +14,7 @@
ACLOCAL_AMFLAGS=-I m4
SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api \
-threads libbench2 . tests mpi doc tools m4
+libbench2 . threads tests mpi doc tools m4
EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in
SIMD_LIBS = \
Index: fftw3-3.3.1/m4/acx_mpi.m4
===================================================================
--- fftw3-3.3.1.orig/m4/acx_mpi.m4 2012-02-20 16:04:55.000000000 +0000
+++ fftw3-3.3.1/m4/acx_mpi.m4 2012-03-18 17:06:52.682046237 +0000
@@ -63,10 +63,10 @@
])
if test x = x"$MPILIBS"; then
- AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
- [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=""])],
+ [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=""])],
[Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
- AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=" "
+ AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=""
AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
fi
if test x = x"$MPILIBS"; then
signature.asc
Description: OpenPGP digital signature
--- End Message ---