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.