Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 125218 - sci-libs/fftw-3.1 doesn't compile with USE="3dnow"
Summary: sci-libs/fftw-3.1 doesn't compile with USE="3dnow"
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
: 125370 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-03-06 04:24 UTC by Andreas Mann
Modified: 2006-05-01 10:51 UTC (History)
3 users (show)

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


Attachments
ebuild to compile on AMD-K7 as well ... by disabling shared libs (fftw-3.1.ebuild,2.15 KB, text/plain)
2006-03-07 10:37 UTC, Rüdiger Saßmannshausen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Mann 2006-03-06 04:24:54 UTC
While upgrading to fftw-3.1 I got the following configure error:

>>>
einstein ~ # emerge -av1 =sci-libs/fftw-3.1


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] sci-libs/fftw-3.1 [3.0.1-r2] USE="3dnow -sse -sse2" 0 kB

Total size of downloads: 0 kB

Do you want me to merge these packages? [Yes/No] y
>>> Emerging (1 of 1) sci-libs/fftw-3.1 to /
[...]
/usr/bin/confcache --confcache-ignore /var/tmp/.distcc --confcache-dir /var/tmp/confcache ./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --enable-shared --enable-threads --enable-float --enable-k7 --build=i686-pc-linux-gnu
configure: loading cache config.cache
checking for a BSD-compatible install... (cached) /bin/install -c
checking whether build environment is sane... yes
checking for gawk... (cached) gawk
checking whether make sets $(MAKE)... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... (cached) i686-pc-linux-gnu
checking host system type... (cached) i686-pc-linux-gnu
configure: error: --enable-k7 is incompatible with --enable-shared.

!!! Please attach the following file when filing a report to bugs.gentoo.org:
!!! /var/tmp/portage/fftw-3.1/work/fftw-3.1-single/config.log

!!! ERROR: sci-libs/fftw-3.1 failed.
Call stack:
  ebuild.sh, line 1933:   Called dyn_compile
  ebuild.sh, line 971:   Called src_compile
  fftw-3.1.ebuild, line 51:   Called econf 'compile' '--enable-shared' '--enable-threads' '--enable-float'

!!! econf failed
!!! If you need support, post the topmost build error, and the call stack if relevant.
<<<

Compiling with USE="-3dnow" works. fftw-3.0.1-r2 doesn't have this problem (it too enabled both --enable-k7 and --enable-shared)

>>>
einstein ~ # emerge --info

Portage 2.1_pre5-r4 (default-linux/x86/2006.0, gcc-3.4.5, glibc-2.3.6-r3, 2.6.15-gentoo-r5 i686)
=================================================================
System uname: 2.6.15-gentoo-r5 i686 AMD Athlon(tm) Processor
Gentoo Base System version 1.12.0_pre16
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
dev-lang/python:     2.4.2-r1
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-r1
sys-devel/binutils:  2.16.1-r2
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla-firefox/searchplugins /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/hal/fdi /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig confcache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://chl.fem.tu-ilmenau.de ftp://ftp.tu-ilmenau.de/Mirrors/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
LANG="de_DE@euro"
LC_ALL="de_DE@euro"
LINGUAS="de en"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 3dnow X a52 aac apache2 apm arts avi bash-completion berkdb bitmap-fonts bzip2 crypt cups dba dts dv dvd dvdr dvdread eds emboss fbcon foomaticdb gd gdbm gif gpm gstreamer gtk gtk2 imlib ipv6 java jikes jpeg junit kde kdexdeltas libg++ libwww mad matroska mikmod mmx mng motif mozilla mozsvg mp3 mpeg mysql ncurses nls nptl nvidia offensive ogg opengl pam pdflib perl php png python qt quicktime readline real samba sdl session slang source speex spell ssl svg tcpd theora tiff truetype truetype-fonts type1-fonts udev usb vcd vorbis win32codecs wmf xine xml xml2 xmms xprint xsl xv xvid zlib elibc_glibc kernel_linux linguas_de linguas_en userland_GNU"
Unset:  ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LDFLAGS
<<<
Comment 1 Markus Dittrich (RETIRED) gentoo-dev 2006-03-06 06:37:06 UTC
Hi Andreas,

Thanks for reporting! I'll have a look at it.

Best,
Markus
Comment 2 Rüdiger Saßmannshausen 2006-03-07 10:37:19 UTC
Created attachment 81620 [details]
ebuild to compile on AMD-K7 as well ... by disabling shared libs
Comment 3 Rüdiger Saßmannshausen 2006-03-07 10:49:17 UTC
In fftw 3.1 they changed the behavior of the config-script, if
- k7-cpu is used and
- shared libraries should be built
In this case the script stops.
I think, this has something to do with inserting new assembler-code especially for the k7-cpus.

I changed the ebuild, so that it doesn't create shared libs, if a k7-cpu is used. (Detected via useflag "3dnow".

As I am not a very well programmer, and this is my first attempt to fix something in an ebuild ... please someone test it.

Regards

Ruedi
Comment 4 Markus Dittrich (RETIRED) gentoo-dev 2006-03-07 14:06:35 UTC
*** Bug 125370 has been marked as a duplicate of this bug. ***
Comment 5 Markus Dittrich (RETIRED) gentoo-dev 2006-03-07 14:08:38 UTC
Hi folks,

Thanks for your reports and fixes. Indeed, from the fftw Changelog

------------------- snip ----------------------
2006-01-21  Matteo Frigo  <athena@fftw.org>
       * configure.ac: Report that --enable-k7 is incompatible with --enable-shared.

-------------------------------------------------

Hence, I've just disabled building of shared libs on k7.
The updated ebuild should be on the mirrors in an hour or so.

Thanks,
Markus 
Comment 6 PaX Team 2006-04-05 06:11:05 UTC
i guess the proper fix would be to fix the asm instead, added to my todo list.
Comment 7 Markus Dittrich (RETIRED) gentoo-dev 2006-04-05 07:05:50 UTC
(In reply to comment #6)
> i guess the proper fix would be to fix the asm instead, added to my todo list.
> 

Thank you very much! Please re-open the bug once there are any news on
this so I can get in touch with upstream as well.

best,
Markus
Comment 8 SpanKY gentoo-dev 2006-04-10 15:33:44 UTC
erm you should be disabling 3dnow support, not shared lib support
Comment 9 Markus Dittrich (RETIRED) gentoo-dev 2006-04-10 22:01:49 UTC
(In reply to comment #8)
> erm you should be disabling 3dnow support, not shared lib support
> 

Right, my bad, and thanks for pointing this out :(
I've removed the 3dnow useflag in favor of shared lib
support for k7. 

Thanks,
Markus

Comment 10 PaX Team 2006-05-01 10:51:24 UTC
(In reply to comment #7)
> Thank you very much! Please re-open the bug once there are any news on
> this so I can get in touch with upstream as well.

i took a look and it turns out that the solution is in upstream's hand as all the non-PIC .S files have apparently been generated by some tool, so the proper fix would be in that tool, not by manually patching the generated code. the files in question are dft/k7/*.S and i have no idea who/how generates them, but upstream should know.