liboil doesn't compile on my machine due to some mixup with the SSE instructions. It seems, that liboil configure assumes, my gcc supports SSE2 and SSE3 instructions, however, I have disabled them in my CFLAGS, as they will not work on my architecture. At least, this is, what I find during one of the configure runs: checking if compiler supports MMX intrinsics... yes checking if compiler supports SSE intrinsics... yes checking if compiler supports SSE2 intrinsics... yes checking if compiler supports SSE3 intrinsics... yes checking if compiler supports 3DNOW intrinsics... no checking if compiler supports 3DNOWEXT intrinsics... no checking if compiler supports ALTIVEC intrinsics... no Later this ends in the following error: i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../.. -msse -msse2 -Wall -D_BSD_SOURCE -D_GNU_SOURCE -I../.. -O2 -march=pentium3 -O3 -pipe -fomit-frame-pointer -mmmx -msse -mno-sse2 -mno-sse3 -MT libsse_la-conv_sse.lo -MD -MP -MF .deps/libsse_la-conv_sse.Tpo -c conv_sse.c -fPIC -DPIC -o .libs/libsse_la-conv_sse.o conv_sse.c: In function `conv_f32_s32_sse': conv_sse.c:44: error: `__m128' undeclared (first use in this function) conv_sse.c:44: error: (Each undeclared identifier is reported only once conv_sse.c:44: error: for each function it appears in.) conv_sse.c:44: error: syntax error before "xmm0" conv_sse.c:41: warning: unused variable `i' conv_sse.c:42: warning: unused variable `tmp_dest_array' conv_sse.c:42: warning: unused variable `tmp_dest' conv_sse.c:43: warning: unused variable `tmp_src_array' conv_sse.c:43: warning: unused variable `tmp_src' conv_sse.c: At top level: conv_sse.c:45: error: syntax error before "xmm1" conv_sse.c:45: warning: type defaults to `int' in declaration of `xmm1' conv_sse.c:45: warning: data definition has no type or storage class conv_sse.c:47: warning: type defaults to `int' in declaration of `tmp_dest' conv_sse.c:47: error: `tmp_dest_array' undeclared here (not in a function) conv_sse.c:47: warning: data definition has no type or storage class ... and a lot more complaints about xmm0 and xmm1 Are maybe my CFLAGS insensible? this is the emerge info output: Portage 2.0.54 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.5-r2, 2.6.14-gentoo-r5 i686) ================================================================= System uname: 2.6.14-gentoo-r5 i686 Celeron (Coppermine) Gentoo Base System version 1.6.14 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] dev-lang/python: 2.3.5-r2, 2.4.2 sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r6 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 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -mmmx -msse -mno-sse2 -mno-sse3" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -mcpu=i686 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distcc distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://strauss2.rsise.anu.edu.au/ http://mirror.isp.net.au/ftp/pub/gentoo/ http://mirror.pacific.net.au/linux/Gentoo ftp://mirror.isp.net.au/pub/gentoo/" LC_ALL="en_US.utf8" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.au.gentoo.org/gentoo-portage" USE="x86 X aalib acpi alsa apm arts audiofile avi bash-completion berkdb bitmap-fonts bzip2 crypt cups curl dhcp divx4linux dvd dvdread eds emacs emboss encode esd ethereal exif expat fam foomaticdb fortran gdbm glut gpm gstreamer gtk gtk2 idn imap ipv6 java jpeg kde lcms libg++ libwww mad mikmod mmx mng motif mp3 mpeg mppe-mppc ncurses nls nsplugin offensive ogg oggvorbis opengl oss pam pcre pdflib perl plotutils png python qt quicktime readline recode samba sdl slang spell sse ssl svga tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts udev unicode usb vorbis xml2 xmms xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Your gcc is outdated, reopen if reproducible with gcc-3.4.4-r1
I updated my gcc to version 3.4.4-r1 and the bug still appears with exactly the same symptoms and error messages.
Created attachment 80496 [details] /var/tmp/portage/liboil-0.3.7/temp/ccN1dfiC.out /var/tmp/portage/liboil-0.3.7/temp/ccN1dfiC.out
Comment on attachment 80496 [details] /var/tmp/portage/liboil-0.3.7/temp/ccN1dfiC.out My AMD athlon seem met the same problem. athlon ~ # emerge --info Portage 2.1_pre4-r1 (default-linux/x86/2005.1, gcc-3.3.6, glibc-2.3.6-r3, 2.6.14-rc5-mm1 i686) ================================================================= System uname: 2.6.14-rc5-mm1 i686 AMD Athlon(tm) processor Gentoo Base System version 1.12.0_pre16 dev-lang/python: 2.3.5-r2, 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-r1 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=athlon -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/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=athlon -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.139pay.com http://ftp.gentoo.or.kr/ http://gentoo.mirrors.tds.net/gentoo http://gentoo.llarian.net/" LDFLAGS="-Wl,-O1" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portages/glc" SYNC="rsync://gentoo.139pay.com/gentoo-portage" USE="x86 3dnow X alsa apm arts avi bash-completion berkdb bitmap-fonts bzip2 cairo cjk crypt cups eds emboss encode foomaticdb fortran gdbm gif glc gnome gpm gstreamer gtk gtk2 imlib jpeg kde kdeenablefinal lcms libg++ libwww linguas_zh_CN linguas_zh_TW mad mikmod mmx motif mp3 mpeg ncurses nls nptl nptlonly ogg oggvorbis opengl oss pam pdflib perl pic png python qt quicktime readline sblive sdl spell ssl tcpd truetype truetype-fonts type1-fonts unicode vorbis xml2 xmms xv zlib elibc_glibc kernel_linux userland_GNU" Unset: ASFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, LANG, LC_ALL, LINGUAS athlon ~ # emerge -pv gcc These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] sys-devel/gcc-3.4.5 USE="fortran gtk nls -bootstrap -boundschecking -build -gcj -hardened -ip28 -multislot -nocxx -nopie -nossp -objc -vanilla" 0 kB Total size of downloads: 0 kB
please try with CFLAGS="-O2" only if it works i will filter everything out in the ebuild and make it reset CFLAGS to just -O2
I'm able to compile with CFLAGS="-O2" The question however is, if liboil is a library for functions optimized for CPUs, whether it should then be compiled without special optimizations for the target architecture.
The answer is that it figures it out itself so you shouldnt tell it yourself.
FYI I've successfully build the package with the following CFLAGS $ cat /var/db/pkg/dev-libs/liboil-0.3.6/CFLAGS -march=pentium4 -fomit-frame-pointer -funroll-loops -frerun-loop-opt -frerun-cse-after-loop -falign-functions=4 -O2 -pipe
I have confirmed my problem is gcc version use gcc 3.4 and -O2 flags compile ok. I think you can close this case. thx.
done