User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060921 Ubuntu/dapper-security Firefox/1.5.0.7 Build Identifier: The current ebuild for sci-libs/fftw-2.1.5 does not install the rfftw libraries. This is because the patch, fftw-2.1.5-as-needed.patch, causes the build to look in the wrong place for linking, breaking the build of rfftw. Simply commenting out the patch step in the ebuild fixes this. Reproducible: Always Steps to Reproduce: 1.Build fftw-2.1.5 2.Try to build something that requires librfftw 3. Actual Results: Build of application needing librfftw will fail because the library is not present on the system. Expected Results: Install the rfftw libraries. Portage 2.1.1 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.17-gentoo-r8 i686) ================================================================= System uname: 2.6.17-gentoo-r8 i686 AMD Athlon(tm) MP 2400+ Gentoo Base System version 1.12.5 Last Sync: Tue, 24 Oct 2006 20:00:02 +0000 ccache version 2.3 [disabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: [Not Present] dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.3 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-mp -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=athlon-mp -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.cites.uiuc.edu/pub/gentoo/ http://open-systems.ufl.edu/mirrors/gentoo http://gentoo.mirrors.pair.com/" LINGUAS="" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/overlays/alternative" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow bash-completion berkdb bitmap-fonts cli cmkopt cracklib crypt cups dlloader dri elibc_glibc fortran gdbm gpm input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog kernel_linux libg++ motif ncurses nis nls nptl nptlonly opengl pam pcre perl ppds pppd python readline reflection samba session smp spl sse ssl symlink tcp tcpd truetype-fonts type1-fonts udev unicode userland_GNU video_cards_apm video_cards_ark video_cards_ati video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_fbdev video_cards_glint video_cards_i128 video_cards_i740 video_cards_i810 video_cards_imstt video_cards_mga video_cards_neomagic video_cards_nsc video_cards_nv video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo xorg zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 100989 [details] Portage log file of fftw-2.1.5-r1 ebuild This is a log file of the ebuild of the fftw-2.1.5-r1 port as it exists in portage currently.
Hmm, everything works just fine here on my P4 with the patch. Could you please post what files fftw actually installs in /usr/lib! Note that, e.g., librfftw.so is actually a symlink to either libdrfftw.so or libsrfftw.so depending on your architecture. Thanks, Markus
I'm now able to reproduce it, rfftw is not built if you build for the first time fftw but it is built if you already have fftw-2 installed. I'll try to investigate this. Alexis.
Ok, so this was definitely not an easy one to understand. The problem is that, when adding the as-needed patch it adds interdependency between the libraries of fftw. Older bugged libtool versions did not handle this correctly and try to relink the library depending on another one during install phase (here, it tries to relink rfftw). Since we install the package in ${D}, it cannot link it correctly with -l{s,d}fftw and fails. The as-needed patch is "required" to build any program that wants to link to rfftw with as-needed, because, otherwise this will result in undefined symbols that are present in fftw but not in rfftw. The libtool bug is a known one, you can have a look at [1], [2] or [3]. The fix for this is to run "libtoolize --copy --force" to update the libtool files of fftw to non bugged ones. Running it in fftw-2.1.5-r1 ebuild between the epatch and econf lines works. Sorry for the as-needed patch that I sent, I didn't even think that such problems could appear. [1] http://lists.debian.org/debian-mentors/2000/10/msg00135.html [2] http://sources.redhat.com/ml/automake/2004-07/msg00126.html [3] http://svn.haxx.se/dev/archive-2003-04/0303.shtml
Hi Alexis, Thanks a lot for tracking this down! I guess we should add an "_elibtoolize --copy --force" with _elibtoolize from autotools.eclass. I'll test this and update the ebuild as soon as I get to it. Thanks, Markus
The fix works for me too so I added it to CVS as 2.1.5-r2. I am pushing this directly to stable since affected stable users might have a pretty hard time tracking the problem. (Some installations of 2.1.5-r1 will have librfftw and others not, for no obvious reason.) This is an example of why we should always revision bump ebuilds when adding "--as-needed" patches, even though most people seem to think otherwise. I commited that patch directly to the stable branch against my better judgment because I was asked to by many developers, and I now regret it.
*** Bug 153404 has been marked as a duplicate of this bug. ***
*** Bug 153346 has been marked as a duplicate of this bug. ***
*** Bug 153186 has been marked as a duplicate of this bug. ***
*** Bug 153882 has been marked as a duplicate of this bug. ***