I got Alpha Centauri running on Gentoo following the advices in the Gentoo Forums. However, when I tried to play a tcp/ip game with my friend, alpha centauri crashed. There was someone else stating this problem in the forums and they got rid of it by downgrading to glibc-2.3.1. My friend also tried this on his debian, running libc6-2.3.2-8, and it worked. So the fix is in the debian patches, I'd just like to figure out which one it is. Reproducible: Always Steps to Reproduce: 1. Install Alpha Centauri 2. Update to latest (otherwise it will not run at all) (help: http://www.icculus.org/lgfaq/#lokipatch) 3. Run the game 4. Select Multiplayer -> Internet (tcp/ip) Actual Results: The game crashes Expected Results: I should give me the option to host/join a game Portage 2.0.49-r13 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.20-gentoo-r7) ================================================================= System uname: 2.4.20-gentoo-r7 i686 AMD Athlon(tm) XP 2000+ Gentoo Base System version 1.4.3.10p1 ccache version 2.3 [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -mfpmath=sse,387 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -mmmx -msse -m3dnow -mfpmath=sse,387 -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs sandbox userpriv usersandbox ccache fixpackages" GENTOO_MIRRORS="ftp://shed/gentoo/ http://kame/portage/ ftp://trumpetti.atm.tut.fi/gentoo/" 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 oss apm avi crypt cups encode foomaticdb jpeg mad mikmod mpeg ncurses nls pdflib png quicktime spell truetype xml2 xv zlib directfb alsa gdbm berkdb slang readline tetex java guile X sdl gpm tcpd pam libwww ssl perl python imlib oggvorbis opengl mozilla cdr 3dnow acl acpi acpi4linux amd cscope curl dga doc dvd ethereal faad fbcon flash gd gphoto2 gtk2 ipv6 jikes junit maildir md5sum memlimit mng moznoirc moznomail nocardbus nowin nptl oav offensive openal plotutils radeon sse tiff usb -arts -gif -kde -libg++ -qt -xmms -nas -bonobo -svga -tcltk -esd -gnome -gtk -motif"
You can see the changes that debian has made here: http://ftp.debian.org/debian/pool/main/g/glibc/glibc_2.3.2-8.diff.gz
*** This bug has been marked as a duplicate of 30865 ***
wonder if it's an errno bug
I can also play multiplayer by mail/hotseat, as also stated in the post on the forums.
How could I find out where it actually crashes? I'd like to help out, I'm just not advanced enough to debug binary-only applications. But please give me some pointers.
I'll take a look at this as soon as time permits. To be honest, I probably will not fix it, but rather will create an official ebuild for the game which should incorporate any bug fixes.
Can someone verify that this bug still happens on glibc-2.3.2-r9? If it still happens, please reopen this bug.
No data for three weeks? closing.
This still happens on glibc-2.3.2-r9. I made some further tests and I can confirm, that the same thing happens with Heroes Of Might And Magic 3.
Alright... I'm reopening this, then... I'll probably just add an ebuild sometime in the near future for both to solve the problem
Sorry that it took so long, but I can also verify this happening with glibc-2.3.2-r9.
Still happening on glibc-2.3.3.20040420 Error from the game is: smac: dynamic-link.h:57: elf_get_dynamic_info: Assertion `! "bad dynamic tag"' failed. This seems to be the relevent part of an strace, beginning about when the Internet Play button is clicked: select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout) select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout) gettimeofday({1089444367, 681442}, NULL) = 0 gettimeofday({1089444367, 681496}, NULL) = 0 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 14 setsockopt(14, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0 bind(14, {sa_family=AF_INET, sin_port=htons(32292), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 uname({sys="Linux", node="lewis", ...}) = 0 gettimeofday({1089444367, 681825}, NULL) = 0 getpid() = 8320 open("/etc/resolv.conf", O_RDONLY) = 17 fstat(17, {st_mode=S_IFREG|0644, st_size=50, ...}) = 0 old_mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40e7e000 read(17, "nameserver 67.36.128.26\nnameserv"..., 131072) = 50 read(17, "", 131072) = 0 close(17) = 0 munmap(0x40e7e000, 131072) = 0 uname({sys="Linux", node="lewis", ...}) = 0 socket(PF_UNIX, SOCK_STREAM, 0) = 17 connect(17, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory) close(17) = 0 open("/etc/nsswitch.conf", O_RDONLY) = 17 fstat(17, {st_mode=S_IFREG|0644, st_size=497, ...}) = 0 old_mmap(NULL, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40e7e000 read(17, "# /etc/nsswitch.conf:\n# $Header:"..., 131072) = 497 read(17, "", 131072) = 0 close(17) = 0 munmap(0x40e7e000, 131072) = 0 open("/etc/ld.so.cache", O_RDONLY) = 17 fstat(17, {st_mode=S_IFREG|0644, st_size=76861, ...}) = 0 old_mmap(NULL, 76861, PROT_READ, MAP_PRIVATE, 17, 0) = 0x40e7e000 close(17) = 0 open("/lib/libnss_files.so.2", O_RDONLY) = 17 fstat(17, {st_mode=S_IFREG|0755, st_size=37888, ...}) = 0 read(17, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\35\0\000"..., 4096) = 4096 old_mmap(NULL, 39944, PROT_READ|PROT_EXEC, MAP_PRIVATE, 17, 0) = 0x40e91000 mprotect(0x40e9a000, 3080, PROT_NONE) = 0 old_mmap(0x40e9a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 17, 0x8000) = 0x40e9a000 close(17) = 0 open("/lib/libc.so.6", O_RDONLY) = 17 fstat(17, {st_mode=S_IFREG|0755, st_size=1213416, ...}) = 0 read(17, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 U\1\000"..., 4096) = 4096 old_mmap(NULL, 1140236, PROT_READ|PROT_EXEC, MAP_PRIVATE, 17, 0) = 0x413d7000 mprotect(0x414e8000, 22028, PROT_NONE) = 0 old_mmap(0x414e8000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 17, 0x111000) = 0x414e8000 old_mmap(0x414eb000, 9740, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x414eb000 close(17) = 0 write(2, "smac: dynamic-link.h:57: elf_get"..., 87) = 87 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 kill(8320, SIGABRT) = 0 --- SIGABRT (Aborted) @ 0 (0) --- open("/home/dan/.loki/smac/stack-trace.txt", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 17 write(17, "\n", 1) = 1 write(2, "\n", 1) = 1 write(17, "BUG! Exception triggered, clean"..., 40) = 40 write(2, "BUG! Exception triggered, clean"..., 40) = 40 write(17, "Sid Meier\'s Alpha Centauri 6.0a\n", 32) = 32 write(2, "Sid Meier\'s Alpha Centauri 6.0a\n", 32) = 32 write(17, "Built with glibc-2.1 on x86\n", 28) = 28 write(2, "Built with glibc-2.1 on x86\n", 28) = 28 write(2, "Please send the text of the fail"..., 108) = 108 close(17) = 0 execve("/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/local/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/opt/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/i686-pc-linux-gnu/gcc-bin/3.3/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/X11R6/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/opt/sun-jdk-1.4.2.04/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/opt/sun-jdk-1.4.2.04/jre/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/opt/sun-jdk-1.4.2.04/jre/javaws/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/qt/3/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) execve("/usr/games/bin/loki_qagent", ["loki_qagent", "--product_name", "smac", "--product_version", "6.0a", "--product_desc", "Sid Meier\'s Alpha Centauri 6.0a", "--product_path", "/usr/local/games/smac", "--product_prefs", "/home/dan/.loki/smac", "--product_cdrom", "", "--stack_trace", "/home/dan/.loki/smac/stack-trace"...], [/* 51 vars */]) = -1 ENOENT (No such file or directory) write(2, "Unable to execute loki_qagent - "..., 40) = 40 _exit(-1) = ?
Well it looks like a new heroes3 ebuild uses local libraries from a debian package. Something similar could possibly be done here. heroes3 report: http://bugs.gentoo.org/show_bug.cgi?id=71044 I'll be testing the other ebuild and then look into this one.
Any word on whether lib-compat-loki works on this game?
Yes, it does. Will update the ebuild in #98687 accordingly.
Ebuild finally in CVS... enjoy...