Re: [ReZound-users] Progress report
Status: Beta
Brought to you by:
ddurham
From: John O. <jo...@mc...> - 2005-10-15 16:51:50
|
On Saturday 15 October 2005 02:07 am, Davy wrote: > I'm *really* surprised that you wouldn't get compiler/linker errors if > rezound was trying to link to fftw3 since tons of API changed in v3 and > rezound even checks for v2 if I'm remember correctly. > > However, when fftw is built, you can choose to compile it to use floats > or doubles (32bit vs 64bit floating-point types) Unfortunately, the > library is named the same way whichever way you do it. Thus, if rezound > expects doubles and the fftw lib was configured to use floats, then > segfaults would likely occur. > > I believe fftw v2 builds for doubles by default. If the lib was built > with the configure flag --enable-float, rezound has know way of knowing > that and will link against the lib expecting doubles and segfaults will > ensue. I guess rezound could have a configure flag to change the way > it expects fftw to be linked, but you'd still have to know which way the > lib was built and either rebuilt it, or rebuilt rezound (with the flag). > > Worse, sometimes LADSPA plugins that use fftw expect it opposite of > rezound and that will cause segfaults as well, but it'll just seem as > though the ladspa plugin has a bug or something. > > I don't even know if the new fftw v3 fixes this issue.. it's really just > a packaging issue more than their code. Although, it's really an > annoying way for them to give the choice and not change the libname to > something like libfftwf.a/so and libfftwd.a/so (which is the way some > distroes package it actually). > > Anyway.. try looking into that John.. Check how fftw v2 is being > configured in the emerge. > > Thanks, > Davy > > derek holzer wrote: > > Hi John, > > > > John Ouzts wrote: > >> I have a second Gentoo AMD64 machine where I separately compiled and > >> separately fully installed both the CVS and the Gentoo ebuild > >> versions of ReZound. In both cases ReZound segfaults when the play > >> button is pressed. > > > > I went around and a round for a week with Rezound segfaulting on > > Gentoo, until I worked out that it was compiled against the wrong FFTW > > library. On Gentoo, you'll need to make sure it uses FFTW 2.1.5. You > > can install FFTW 3 afterward the compile so long as it doesn't get rid > > of the FFTW 2.1.5 shared objects. > > > > That's what worked for me at least. Ideally, Rezound would support the > > latest FFTW (which is what most distros use by default by now, I > > imagine). > > > > d. Many thanks to Derek and Davy. I have the following installed on my machine: fftw-2.1.5-r1 fftw-3.0.1-r2 Here is the complete ebuild for rezound, which calls for fftw v2: # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/media-sound/rezound/rezound-0.12.0_beta.ebuild,v 1.3 2005/09/09 13:19:09 flameeyes Exp $ inherit eutils MY_P="${P/_/}" S="${WORKDIR}/${MY_P}" DESCRIPTION="Sound editor and recorder" HOMEPAGE="http://rezound.sourceforge.net" SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 ~ppc x86" IUSE="16bittmp alsa flac jack nls oss portaudio soundtouch vorbis" RDEPEND="virtual/x11 =sci-libs/fftw-2* >=x11-libs/fox-1.2.4 >=media-libs/audiofile-0.2.3 >=media-libs/ladspa-sdk-1.12 >=media-libs/ladspa-cmt-1.15 alsa? ( >=media-libs/alsa-lib-1.0 ) flac? ( >=media-libs/flac-1.1.0 ) jack? ( media-sound/jack-audio-connection-kit ) portaudio? ( >=media-libs/portaudio-18 ) soundtouch? ( >=media-libs/libsoundtouch-1.2.1 ) vorbis? ( media-libs/libvorbis media-libs/libogg )" # optional packages (don't need to be installed during emerge): # # >=media-sound/lame-3.92 # app-cdr/cdrdao DEPEND="${RDEPEND} sys-devel/autoconf sys-devel/automake sys-devel/bison sys-devel/flex" src_compile() { # fix compilation errors on ppc, where some # of the required functions aren't defined #test "${ARCH}" = ppc && epatch ${FILESDIR}/undefined-functions.patch # following features can't be disabled if already installed: # -> flac, oggvorbis, soundtouch local sampletype="" use 16bittmp && sampletype="--enable-internal-sample-type=int16" use 16bittmp || sampletype="--enable-internal-sample-type=float" econf \ $(use_enable alsa) \ $(use_enable jack) \ $(use_enable nls) \ $(use_enable oss) \ $(use_enable portaudio) \ ${sampletype} \ --enable-ladspa \ --enable-largefile \ || die "configure failed" emake || die "make failed" } src_install() { make DESTDIR="${D}" install || die "make install failed" # remove wrong doc directory rm -rf ${D}/usr/doc/${PN} dodoc docs/{AUTHORS,NEWS,README*} dodoc docs/{TODO_FOR_USERS_TO_READ,*.txt} docinto code dodoc docs/code/* } Following Derek's advice, I unmerged fftw-3.0.1-r2 and ReZound 0.12.0, and re-emerged ReZound without fftw-3.0.1-r2 on the machine. Unfortunately it still segfaults on pressing the Play button. So I unmerged ReZound again, and got a fresh copy of the source from CVS. After bootstrap,configure,make and make install, it segfaults on pressing the Play button. Next I tracked down the amd64-compatible ebuild for fftw-2.1.5-r1. It says: pkg_setup() { einfo "" einfo "This ebuild installs double and single precision versions of library" einfo "This involves some name mangling, as supported by package and required" einfo "by some apps that use it." einfo "By default, the symlinks to non-mangled names will be created off" einfo "double-precision version. In order to symlink to single-precision use" einfo "SINGLE=yes emerge fftw" einfo "" } Just to rule out that it had ever been compiled for singles, I unmerged and re-emerged it. Again ReZound segfaults on pressing the Play button. So sadly there is no joy in Muddville. Thanks again, John |