Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 114420 - media-libs/allegro-4.2.0 fails on amd64 with undefined references
Summary: media-libs/allegro-4.2.0 fails on amd64 with undefined references
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Games (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Games
URL:
Whiteboard:
Keywords:
: 132891 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-12-04 01:49 UTC by Will Briggs
Modified: 2007-03-01 00:07 UTC (History)
6 users (show)

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


Attachments
Allegro ebuild diff (allegro_ebuild_diff,355 bytes, patch)
2006-09-27 16:42 UTC, Peter Read
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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