Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 153731 - The fftw-2.1.5-as-needed.patch of sci-libs/fftw-2.1.5-r1 causes librfftw to not be built
Summary: The fftw-2.1.5-as-needed.patch of sci-libs/fftw-2.1.5-r1 causes librfftw to n...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
: 153186 153346 153404 153882 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-11-01 11:38 UTC by Glenn Johnson
Modified: 2007-02-24 19:46 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Portage log file of fftw-2.1.5-r1 ebuild (sci-libs:fftw-2.1.5-r1:20061101-180543.log,295.49 KB, text/x-log)
2006-11-01 11:44 UTC, Glenn Johnson
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Glenn Johnson 2006-11-01 11:38:31 UTC
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
Comment 1 Glenn Johnson 2006-11-01 11:44:49 UTC
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.
Comment 2 Markus Dittrich (RETIRED) gentoo-dev 2006-11-01 14:33:01 UTC
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
Comment 3 Alexis Ballier gentoo-dev 2006-11-01 14:35:46 UTC
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.
Comment 4 Alexis Ballier gentoo-dev 2006-11-03 04:50:52 UTC
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
Comment 5 Markus Dittrich (RETIRED) gentoo-dev 2006-11-03 05:28:38 UTC
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
Comment 6 Olivier Fisette (RETIRED) gentoo-dev 2006-11-03 07:01:18 UTC
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.
Comment 7 Alexis Ballier gentoo-dev 2006-11-07 04:44:20 UTC
*** Bug 153404 has been marked as a duplicate of this bug. ***
Comment 8 Alexis Ballier gentoo-dev 2006-11-07 04:47:02 UTC
*** Bug 153346 has been marked as a duplicate of this bug. ***
Comment 9 Alexis Ballier gentoo-dev 2006-11-07 04:48:30 UTC
*** Bug 153186 has been marked as a duplicate of this bug. ***
Comment 10 Alexis Ballier gentoo-dev 2007-02-24 19:46:24 UTC
*** Bug 153882 has been marked as a duplicate of this bug. ***