Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 136565 - media-sound/jack-audio-connection-kit-0.101.1 will not compile with USE="sse"
Summary: media-sound/jack-audio-connection-kit-0.101.1 will not compile with USE="sse"
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Eldad Zack (RETIRED)
URL:
Whiteboard:
Keywords:
: 150486 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-06-12 11:40 UTC by Chris Smith
Modified: 2006-10-31 17:08 UTC (History)
5 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Smith 2006-06-12 11:40:51 UTC
i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe -DJACK_LOCATION=\"/usr/bin\" -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe -march=i686 -MT libjack_la-port.lo -MD -MP -MF .deps/libjack_la-port.Tpo -c port.c  -fPIC -DPIC -o .libs/libjack_la-port.o
port.c: In function 'x86_3dnow_add2f':
port.c:98: error: unknown register name 'mm0' in 'asm'
port.c:109: error: unknown register name 'mm1' in 'asm'
port.c:109: error: unknown register name 'mm0' in 'asm'
port.c: In function 'x86_3dnow_copyf':
port.c:135: error: unknown register name 'mm0' in 'asm'
port.c:137: error: unknown register name 'mm1' in 'asm'
port.c:139: error: unknown register name 'mm2' in 'asm'
port.c:141: error: unknown register name 'mm3' in 'asm'
port.c:143: error: unknown register name 'mm4' in 'asm'
port.c:145: error: unknown register name 'mm5' in 'asm'
port.c:147: error: unknown register name 'mm6' in 'asm'
port.c:149: error: unknown register name 'xmm7' in 'asm'
port.c:152: error: unknown register name 'mm0' in 'asm'
port.c:154: error: unknown register name 'mm1' in 'asm'
port.c:156: error: unknown register name 'mm2' in 'asm'
port.c:158: error: unknown register name 'mm3' in 'asm'
port.c:160: error: unknown register name 'mm4' in 'asm'
port.c:162: error: unknown register name 'mm5' in 'asm'
port.c:164: error: unknown register name 'mm6' in 'asm'
port.c:166: error: unknown register name 'mm7' in 'asm'
port.c:171: error: unknown register name 'mm0' in 'asm'
port.c:180: error: unknown register name 'mm0' in 'asm'
port.c: In function 'x86_sse_copyf':
port.c:204: error: unknown register name 'xmm0' in 'asm'
port.c:206: error: unknown register name 'xmm1' in 'asm'
port.c:208: error: unknown register name 'xmm2' in 'asm'
port.c:210: error: unknown register name 'xmm3' in 'asm'
port.c:212: error: unknown register name 'xmm4' in 'asm'
port.c:214: error: unknown register name 'xmm5' in 'asm'
port.c:216: error: unknown register name 'xmm6' in 'asm'
port.c:218: error: unknown register name 'xmm7' in 'asm'
port.c:221: error: unknown register name 'xmm0' in 'asm'
port.c:223: error: unknown register name 'xmm1' in 'asm'
port.c:225: error: unknown register name 'xmm2' in 'asm'
port.c:227: error: unknown register name 'xmm3' in 'asm'
port.c:229: error: unknown register name 'xmm4' in 'asm'
port.c:231: error: unknown register name 'xmm5' in 'asm'
port.c:233: error: unknown register name 'xmm6' in 'asm'
port.c:235: error: unknown register name 'xmm7' in 'asm'
port.c:240: error: unknown register name 'xmm0' in 'asm'
port.c:249: error: unknown register name 'xmm0' in 'asm'
port.c: In function 'x86_sse_add2f':
port.c:275: error: unknown register name 'xmm0' in 'asm'
port.c:287: error: unknown register name 'xmm0' in 'asm'
make[2]: *** [libjack_la-port.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
 i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe -DJACK_LOCATION=\"/usr/bin\" -I../config -I.. -I.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe -march=i686 -MT libjack_la-ringbuffer.lo -MD -MP -MF .deps/libjack_la-ringbuffer.Tpo -c ringbuffer.c  -fPIC -DPIC -o .libs/libjack_la-ringbuffer.o
make[2]: Leaving directory `/var/tmp/portage/jack-audio-connection-kit-0.101.1/work/jack-audio-connection-kit-0.101.1/libjack'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/jack-audio-connection-kit-0.101.1/work/jack-audio-connection-kit-0.101.1'
make: *** [all] Error 2

!!! ERROR: media-sound/jack-audio-connection-kit-0.101.1 failed.

The previous version of jack-audio-connection-kit (0.100.7) has the same problem.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2006-06-12 12:15:22 UTC
Compiles fine here w/ gcc-4.1.1. 

Reopen with emerge --info and 'emerge -pv jack-audio-connection-kit' output, please.
Comment 2 Chris Smith 2006-06-12 12:30:01 UTC
# emerge -pv jack-audio-connection-kit

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

Calculating dependencies  ... done!
[ebuild   R   ] media-sound/jack-audio-connection-kit-0.101.1  USE="alsa doc jack-tmpfs mmx oss sndfile sse -caps -debug -netjack -portaudio" 0 kB

# emerge --info
Portage 2.1 (default-linux/x86/2006.0, gcc-4.1.1/vanilla, glibc-2.4-r3, 2.6.16-gentoo-r9 i686)
=================================================================
System uname: 2.6.16-gentoo-r9 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz
Gentoo Base System version 1.12.1
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
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-r2
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/eselect/compiler /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -march=i686 -mtune=pentium4 -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig candy distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com http://mirrors.tds.net/gentoo http://open-systems.ufl.edu/mirrors/gentoo"
MAKEOPTS="-j2"
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/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X a52 aac aalib acl acpi alsa apache2 arts audiofile avi bash-completion berkdb bitmap-fonts bzip2 cairo cdparanoia cdr cli crypt cups curl dlloader dri dts dv dvb dvd dvdr dvdread emboss encode exif fam ffmpeg flac fortran gdbm ggvorbis gif gphoto2 gpm gstreamer gtk gtk2 hal imagemagick imap imlib ipv6 isdnlog jack java jpeg jpeg2k kde kdeenablefinal lcd lcms ldap libg++ libwww mad mikmod mmx motif mozcalendar mozilla mp3 mpeg musicbrainz ncurses nls nodrm nptl nvidia ofx ogg openexr opengl oss pam pcre pda pdf pdflib perl png ppds pppd python qt quicktime readline reflection samba sasl scanner sdl session slp sndfile spell spl sse ssl subversion svg svga tcltk tcpd theora threads tiff truetype truetype-fonts type1-fonts udev unicode usb utf8 v4l v4l2 vcd vorbis win32codecs wmf xcomposite xine xml xmms xorg xscreensaver xv xvid zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_evdev kernel_linux userland_GNU video_cards_nvidia video_cards_vesa video_cards_fbdev video_cards_vmware video_cards_v4l"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Renato Caldas 2006-06-13 14:24:04 UTC
I'm having the same problem.

The culprit is the 'sse' use flag. If you do "USE=-sse" it emerges fine. It seems as the ebuild activates the 3dnow support when sse is activated, which it obviously shouldn't do (I believe 3dnow is specific to athlon cpu's).
Comment 4 Renato Caldas 2006-06-13 14:57:09 UTC
Got it. In the ebuild the sse use flag enables dynsimd:

>   $(use_enable portaudio) \
>   $(use_enable sse) $(use_enable sse dynsimd) \
>   --with-pic \

But it seems that the ./configure script or whatever isn't detecting the cpu features correctly for dynsimd to work. It apears to be a recorrent problem.

It is not an ebuild bug per se, but the workaround would be either disable the sse use flag (loosing the sse optimizations) or removing the dynsimd option from the ebuild. The last solution apears to be the best, also because --enable-dynsimd is disabled by default in the configure script.

Either way, it should be reported upstream.

Cheers
  Renato
Comment 5 Chris Smith 2006-06-13 15:10:16 UTC
(In reply to comment #4)
> Got it. In the ebuild the sse use flag enables dynsimd:
> 
> >   $(use_enable portaudio) \
> >   $(use_enable sse) $(use_enable sse dynsimd) \
> >   --with-pic \
> 
> But it seems that the ./configure script or whatever isn't detecting the cpu
> features correctly for dynsimd to work. It apears to be a recorrent problem.

However, it compiles just fine with gcc-3.5.x (with the sse flag).
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2006-09-28 06:13:55 UTC
Re-assign wrt Bug 60090.
Comment 7 Eldad Zack (RETIRED) gentoo-dev 2006-10-07 18:55:11 UTC
I'm taking maintainership.
Comment 8 Eldad Zack (RETIRED) gentoo-dev 2006-10-07 20:02:00 UTC
I've added a local useflag cpudetection.
with it enabled, it will test for 3dnow presence in /proc/cpuinfo and enable dynsimd if it is found.

fixed this for 101.1-r1 and the just added 102.20.

If anyone is interested in creating a patch for this (enclosing the asm routines with ifdefs, and updating the configure script respectivly) - this should really be fixed upstream.

in cvs.
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2006-10-08 10:57:11 UTC
*** Bug 150486 has been marked as a duplicate of this bug. ***
Comment 10 Jakub Moc (RETIRED) gentoo-dev 2006-10-27 09:51:34 UTC
*** Bug 153001 has been marked as a duplicate of this bug. ***
Comment 11 Brett T. Warden 2006-10-31 17:08:34 UTC
This looks like the wrong fix. The point of dynsimd seems to be to detect the host CPU and automatically select MMX or SSE code for the necessary SIMD operations. If I'm on the right track, this certainly doesn't require 3dnow. The current fix masks the problem only as long as you're building on a CPU without 3dnow, since it just won't enable dynsimd. See bug 153001 for the underlying problem preventing compilation of the dynsimd code.