Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 114420

Summary: media-libs/allegro-4.2.0 fails on amd64 with undefined references
Product: Gentoo Linux Reporter: Will Briggs <will.briggs>
Component: [OLD] GamesAssignee: Gentoo Games <games>
Status: RESOLVED FIXED    
Severity: normal CC: alastairmurray, drwook, groepaz, omschaub, openhs, th_veith
Priority: High    
Version: unspecified   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: Allegro ebuild diff

Description Will Briggs 2005-12-04 01:49:30 UTC
x86_64-pc-linux-gnu-gcc -shared -fPIC -DALLEGRO_SHARED -o
lib/unix/alleg-alsamidi.so obj/unix/module/alsamidi.o -L/usr/lib64
-Wl,--export-dynamic  -lasound
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -Iinclude -Iinclude/allegro
-I./include -I./include/allegro  -O2 -pipe -ftracer -march=athlon64 -fno-pie
-I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include   -DALLEGRO_LIB_BUILD  -mtune=k8 -O2
-funroll-loops -ffast-math -fomit-frame-pointer -Wall -Wno-unused  -fPIC
-DALLEGRO_SHARED -DALLEGRO_MODULE -c ./src/unix/uesd.c -o obj/unix/module/uesd.o
x86_64-pc-linux-gnu-gcc -shared -fPIC -DALLEGRO_SHARED -o
lib/unix/alleg-esddigi.so obj/unix/module/uesd.o -L/usr/lib64
-Wl,--export-dynamic  `esd-config --libs`
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -Iinclude -Iinclude/allegro
-I./include -I./include/allegro  -O2 -pipe -ftracer -march=athlon64 -fno-pie
-I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include   -DALLEGRO_LIB_BUILD  -mtune=k8 -O2
-funroll-loops -ffast-math -fomit-frame-pointer -Wall -Wno-unused  -fPIC
-DALLEGRO_SHARED -DALLEGRO_MODULE -c ./src/unix/arts.c -o obj/unix/module/arts.o
x86_64-pc-linux-gnu-gcc -shared -fPIC -DALLEGRO_SHARED -o
lib/unix/alleg-artsdigi.so obj/unix/module/arts.o -L/usr/lib64
-Wl,--export-dynamic  `artsc-config --libs`
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -Iinclude -Iinclude/allegro
-I./include -I./include/allegro  -O2 -pipe -ftracer -march=athlon64 -fno-pie
-I/usr/kde/3.5/include/artsc -pthread -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include   -DALLEGRO_LIB_BUILD  -mtune=k8 -O2
-funroll-loops -ffast-math -fomit-frame-pointer -Wall -Wno-unused  -c
./setup/setup.c -o obj/unix/setup.o
x86_64-pc-linux-gnu-gcc -s -L/usr/lib64 -Wl,--export-dynamic  -o setup/setup
obj/unix/setup.o -Llib/unix -lalleg-4.2.0 -lalleg_unsharable -lm
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_is_486'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_is_cpuid_supported'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_cx_w'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_is_cyrix'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_is_fpu'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_get_cpuid_info'
lib/unix/liballeg-4.2.0.so: undefined reference to `_i_cx_r'
collect2: ld returned 1 exit status
make: *** [setup/setup] Error 1

!!! ERROR: media-libs/allegro-4.2.0 failed.
!!! Function src_compile, Line 49, Exitcode 2
!!! emake failed
!!! If you need support, post the topmost build error, NOT this status message.


Reproducible: Always
Steps to Reproduce:
1.emerge allegro
2.
3.

Actual Results:  
see above

Expected Results:  
merge

Portage 2.0.53 (default-linux/amd64/2005.1, gcc-3.4.4, glibc-2.3.6-r0,
2.6.14-gentoo-r2 x86_64)
=================================================================
System uname: 2.6.14-gentoo-r2 x86_64 AMD Athlon(tm) 64 Processor 2800+
Gentoo Base System version 1.12.0_pre11
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
dev-lang/python:     2.3.5, 2.4.2
sys-apps/sandbox:    1.2.16
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.20-r1
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -ftracer -march=athlon64"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env
/usr/kde/3.4/share/config /usr/kde/3.4/shutdown /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/lib64/mozilla/defaults/pref /usr/share/config
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -pipe -ftracer -march=athlon64"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks multilib-strict sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.ccccom.com"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://batman/gentoo-portage"
USE="amd64 X aac aalib adns alsa arts audiofile avi bash-completion berkdb
bitmap-fonts bzip2 cdr crypt cups curl divx4linux dvd dvdr eds emboss encode esd
ethereal exif expat fam ffmpeg foomaticdb fortran gif glut gmp gnome gpm
gstreamer gtk gtk2 hal idn imagemagick imlib java javascript jpeg kde lcms ldap
lirc lua lzw lzw-tiff mbox mikmod mng motif mozilla mp3 mpeg ncurses network nls
nptl nptlonly nsplugin ogg oggvorbis openal opengl pam pcre pdflib perl png ppds
python qt quicktime readline real recode scanner sdl spell ssl tcltk tcpd tiff
truetype truetype-fonts type1-fonts udev usb userlocales vcd vorbis wmf xine xml
xml2 xmms xpm xv xvid zlib userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Comment 1 Markus Baumeister 2005-12-04 05:46:35 UTC
Same here, also with AMD64. One previous warning during compilation:

x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -Iinclude -Iinclude/allegro
-I./include -I./include/allegro  -O2 -march=k8 -mtune=k8 -pipe
-fomit-frame-pointer -frename-registers -fno-ident -fno-pie -DALLEGRO_LIB_BUILD
 -mtune=k8 -O2 -funroll-loops -ffast-math -fomit-frame-pointer -Wall -Wno-unused
 -fPIC -DALLEGRO_SHARED -c ./src/linux/lkeybd.c -o obj/unix/shared/alleg/lkeybd.o
In file included from ./src/linux/lkeybd.c:91:
/usr/include/linux/keyboard.h:7:2: warning: #warning Gentoo Linux Headers
Warning: GNU Libc Linux Headers Override Detected.
/usr/include/linux/keyboard.h:8:2: warning: #warning Gentoo Linux Headers
Warning: This is bad. Removing override and continuing.
/usr/include/linux/keyboard.h:9:2: warning: #warning Gentoo Linux Headers
Warning: If your compilation dies here, mention this when
/usr/include/linux/keyboard.h:10:2: warning: #warning Gentoo Linux Headers
Warning: filing a bug!
Comment 2 Peter Read 2006-02-18 04:06:12 UTC
Same here, amd64 too running ~amd64.  4.1.18 is fine for me, so 4.2.0 will be going in to my package.mask until I can think of something or unless someone wants me to test something?
Comment 3 Peter Read 2006-03-06 15:21:03 UTC
Anyone got any further with this?  I haven't managed to get anywhere...
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-05-10 05:48:08 UTC
*** Bug 132891 has been marked as a duplicate of this bug. ***
Comment 5 Alastair Murray 2006-08-28 02:03:09 UTC
Just a note that this package has just been marked as stable on amd64 and the issue still exists so this may affect a wider range of people now.
Comment 6 Peter Read 2006-08-28 03:18:02 UTC
Has anyone determined the cause for this?
Comment 7 Alastair Murray 2006-09-08 05:45:15 UTC
A further note that this error still occurs when using gcc 4.1.1 + glibc 2.4 (i.e. current stable on amd64).
Comment 8 groepaz 2006-09-10 23:19:02 UTC
same problem here :/
Comment 9 Peter Read 2006-09-27 16:42:34 UTC
Created attachment 98268 [details, diff]
Allegro ebuild diff

Ok, well I've been playing and managed to get somewhere perhaps...

It appears (*i.e. I'm not an allegro dev, so I could be wrong or misunderstanding things here!) that the allegro ./configure needs --disable-asm passed to it on x86_64.  Now, obviously a lot of people haven't hit this issue, but it looks from some diving on the allegro fora that during ./configure it's meant to dynamically determine when it's needed if not specified.  I still haven't worked out how or why our systems are not being picked up by this though...  Still looking....

However here's a diff that shows the simple hacky change I made in my overlay, which allows 4.2 to build and merge - I realise it could be done more elegantly with something like a use_enable but quite honestly I'm more interested in trying to sort this out with upstream if I/we can figure it out :)
Comment 10 Peter Read 2006-09-27 17:00:30 UTC
What CPU are you guys having this problem running, Athlon 64 2800+ by any chance?
Comment 11 groepaz 2006-09-27 17:03:25 UTC
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 31
model name      : AMD Athlon(tm) 64 Processor 3500+
stepping        : 0
cpu MHz         : 2200.000
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow lahf_lm
bogomips        : 4423.03
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp
Comment 12 Cyp 2006-11-22 11:57:15 UTC
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 12
model name      : AMD Athlon(tm) 64 Processor 3200+
stepping        : 0
cpu MHz         : 2211.077
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 4424.59
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp


After adding --disable-asm to the ebuild (according to comment #9), it compiled.
Comment 13 VZ 2007-02-28 10:07:32 UTC
Adding --disable-asm to ebuild also fixes it for me on allegro-4.2.0 and allegro-4.2.1. I have the same CPU as previous comment (AMD64 3200+). There is a thread on this problem on the allegro dev forums [1] but as far as i can tell there is no solution posted (besides adding --disable-asm). They say compiling on amd64 implies --disable-asm, but obviously something is going wrong there.

[1]:http://www.allegro.cc/forums/thread/587320/615771#target
Comment 14 Tristan Heaven (RETIRED) gentoo-dev 2007-03-01 00:07:27 UTC
4.2.1 should work