View Single Post
  #1  
Old 04-13-2010, 11:17 AM
number6
Sarnak
 
Join Date: Sep 2006
Posts: 62
Default Building the login server on CentOS 4.8

As subject, I am trying to build the SVN login server and having difficulties linking with the pre-compiled crypto libraries. I am using the gentoo 32-bit files, though the ubuntu ones also fail with more errors. The output from the link:
Code:
-bash-3.00$ make
gcc -o EQEmuLoginServer Client.o ClientManager.o Config.o 
DatabaseMySQL.o ErrorLog.o Main.o ServerManager.o WorldServer.o 
.obj/BasePacket.o .obj/Condition.o .obj/CRC16.o .obj/crc32.o .obj/debug.o
 .obj/emu_opcodes.o .obj/EmuTCPConnection.o .obj/EmuTCPServer.o 
.obj/EQPacket.o .obj/EQStream.o .obj/EQStreamFactory.o .obj/logsys.o 
.obj/logsys_eqemu.o .obj/misc.o .obj/MiscFunctions.o .obj/Mutex.o 
.obj/opcodemgr.o .obj/packet_dump.o .obj/packet_functions.o .obj/rdtsc.o 
.obj/TCPConnection.o .obj/TCPServer.o .obj/timeoutmgr.o .obj/timer.o 
.obj/unix.o -Wall -Wuninitialized -Wwrite-strings -Wcast-qual 
-Wno-deprecated  -Wcomment -Wcast-align -O -g -march=i686 -pthread 
-pipe -DEQLAUNCH -DEQDEBUG=5 -I/usr/include/mysql  -g -pipe -m32 
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-fno-strict-aliasing -fwrapv  -rdynamic -L. -lstdc++ -ldl -rdynamic -L/usr
/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto 
-lEQEmuAuthCrypto -lcryptopp -fno-stack-protector

./libEQEmuAuthCrypto.a(EQEmuAuthCrypto.o)(.text+0x1488): 
In function `DecryptUsernamePassword(char const*, unsigned int, int)':

: undefined reference to `__stack_chk_fail'
./libEQEmuAuthCrypto.a(EQEmuAuthCrypto.o)(.text+0x1738): 
In function `Encrypt(char const*, unsigned int, unsigned int&)':

: undefined reference to `__stack_chk_fail'
./libEQEmuAuthCrypto.a(EQEmuAuthCrypto.o)(.text+0x18d4): 
In function `encSHA(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':

: undefined reference to `__stack_chk_fail'
./libEQEmuAuthCrypto.a(EQEmuAuthCrypto.o)(.text+0x1a55): 
In function `encSHA512(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':

: undefined reference to `__stack_chk_fail'
collect2: ld returned 1 exit status
make: *** [EQEmuLoginServer] Error 1
I added "-fno-stack-protector" to the link command after some googling but to no avail. I have a feeling this is a mismatch of gcc versions used to make the libraries and my own one.
Code:
-bash-3.00$ gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man 
--infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking

 --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions 
--enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)
Anyone got any ideas? I am at a bit of a loss!

Thanks

Paul.
Reply With Quote