Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Users Online
CommonCrawl, Yahoo!, Google

Members: 0
Guests: 6
Stats
Files
Topics
Posts
Members
Newest Member
477
3,706
19,240
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » SWFOTE FUSS » Trouble compiling FUSS sources
Forum Rules | Mark all | Recent Posts

Trouble compiling FUSS sources
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Feb 20, 2008, 7:52 pm   Last edited Feb 20, 2008, 8:15 pm by bsckit
Go to the top of the page
Go to the bottom of the page

bsckit
Fledgling
GroupMembers
Posts3
JoinedFeb 20, 2008

I'm fairly new at mud coding, and I'm hoping someone can lend me a hand here. I'm getting this same error when compiling any mud source based on the FUSS fixes (swfote13fuss, swrfuss, swfote2.1.5 from sourceforge.net), although I've successfully compiled swfote sources pre-2.0, circle-3.5, havokMUD from 2004 (based on DaleMUD/SillyMUD), as well as the most recent non-FUSS smaug1.8b. I have googled this error ad nauseam, with only a few results. The same error appears on other distros (Redhat, Debian) when compiling QMail. They have a fix (comment out any lines with 'extern int errno' and add #include <errno.h> in the file) but it doesn't apply here.

The FUSS sources compile without warnings, without changes to the Makefile, until the linker attempts to build the swr binary:

~/mud/swfotefuss/src$ make
make -s swr
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../../i486-slackware-linux/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libz.so
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [swr] Error 1
make: *** [all] Error 2

This is Linux Slackware 12.0, kernel 2.6.21.5-smp, gcc-4.1.2, glibc-2.5. The strange thing is, I have compiled these sources with a previous Slackware distro (kernel 2.4.x, gcc-3.3.4, glibc-2.3.4). This makes me think it's a kernel 2.6 problem. I compiled gcc-3.3.4 alongside my most recent, and got the same error. Something wrong with the libs, right? I start to compile glibc-2.3.4 and get the same errno: TLS blah blah error.

I'm debating whether to upgrade (downgrade?) my kernel, compiler and libs, but I don't think that will necessarily fix the problem, since this primarily affects FUSS sources. I'm hoping there's an easy fix, and I'd hate to lose the features that came with this Linux kernel.

I'm at my wit's end, and I'd really appreciate any advice. Thanks, and feel free to ask me about anything I might have left out.
       
Post is unread #2 Feb 20, 2008, 8:53 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

libz.so is the library file for Zlib, which is necessary in FUSS for the MCCP support. You may need to look into what version of zlib and zlib-devel are installed in your system and see if they need to be upgraded.

Also, what actual processor type do you have? I notice your architecture tags are specifying i486 which is a bit odd unless it's an old machine.
       
Post is unread #3 Feb 21, 2008, 1:06 am
Go to the top of the page
Go to the bottom of the page

bsckit
Fledgling
GroupMembers
Posts3
JoinedFeb 20, 2008

This is an old Inspiron 8000 with a 600MHz Intel Processor, 256MB RAM. uname says it has an i686 architecture (i686 Pentium III (Coppermine) GenuineIntel GNU/Linux). Slackware, if you're not familiar with it, is made to run well on old systems like mine. Anyway....

As far as zlib, I have zlib-1.2.3-i486-2. www.zlib.net says it is the most recent version as of July 2005. Also, the site mentions that zlib shouldn't be confused with Linux's zlibc, which I can't seem to find anywhere.

The zlib package has /usr/include/zlib.h, /usr/include/zconf.h, /usr/lib/libz.a, /usr/lib/libz.so.1.2.3
The rest of it is man pages and READMEs.

/usr/lib/libz.so and /usr/lib/libz.so.1 don't appear to be part of the zlib package.

Oh, wow. Okay, these are symbolic links. Check it:

~$ ls -l /usr/lib/libz*
-rw-r--r-- 1 root root 88040 2006-12-11 16:31 /usr/lib/libz.a
lrwxrwxrwx 1 root root 22 2008-01-07 14:05 /usr/lib/libz.so -> /usr/lib/libz.so.1.0.4
lrwxrwxrwx 1 root root 13 2008-01-07 14:05 /usr/lib/libz.so.1 -> libz.so.1.2.3*
-rw-r--r-- 1 root root 50772 1997-05-03 05:29 /usr/lib/libz.so.1.0.4
-rwxr-xr-x 1 root root 77688 2006-12-11 16:31 /usr/lib/libz.so.1.2.3*

Sorry for the stream of consciousness narrative, I'm typing and discovering at the same time. I love finding out new things. At any rate, it looks like libz.so is pointing to an eleven year old file that wasn't included with zlib-1.2.3. I assume that should be changed? I don't know why those links have a JAN2008 timestamp, I don't think I did anything to the libs during that time. But there's the proof, there's no denying it.

Well, what's your advice? And thanks for the quick response!
       
Post is unread #4 Feb 21, 2008, 6:34 am
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

I'm not familiar with how Slackware handles package management but it seems like you'd need to tell the system to remove zlib1.0.4. It might be easiest to remove all traces of zlib and then install only the new one.

The quick and dirty solution would be to just change the symbolic link to point at 1.2.3 but that's a hack fix that only delays the problem for later.
       
Post is unread #5 Feb 21, 2008, 11:39 am   Last edited Feb 21, 2008, 11:49 am by bsckit
Go to the top of the page
Go to the bottom of the page

bsckit
Fledgling
GroupMembers
Posts3
JoinedFeb 20, 2008

I used grep libz.so.1.0.4 in /var/log/packages which contains the actual install scripts for all installs in Slackware. The only entry regarding this file was from a package called alien-extra, a complement to alien, a program that converts packages between Slackware, Redhat and Debian package formats. Apparently it made the link from libz.so to libz.so.1.0.4. I changed the link to point to libz.so.1.2.3 and swfote13fuss compiled without so much as a whimper.

I installed that alien-extra package, and I should have payed more attention to what was going in. Although this wasn't an issue with your sources, I couldn't have figured this out without your help. I learned a lot, and I'm sure I'll be more careful about what I install in the future.

Thank you very much for your help Samson.

P.S. In swfotefuss first.README it says the default god player is User, password is password. You might want to update it to show that the default player is named Admin, password Admin.
       
Pages:<< prev 1 next >>