Hi,
I've been trying to get EQEmu to compile on Slackware 14.2 over the past few days, and have finally hit a dead end after sorting out a multitude of issues. I'm out of ideas on where to look for a solution to this one.
The problem in question:
Code:
[ 90%] Linking CXX executable ../bin/zone
/usr/local/lib/perl5/5.32.1/x86_64-linux-ld/CORE/libperl.a(pp.o): In function `Perl_pp_crypt':
pp.c:(.text+0xae6f): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
zone/CMakeFiles/zone.dir/build.make:3721: recipe for target 'bin/zone' failed
make[2]: *** [bin/zone] Error 1
CMakeFiles/Makefile2:886: recipe for target 'zone/CMakeFiles/zone.dir/all' failed
make[1]: *** [zone/CMakeFiles/zone.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Or from a more verbose log:
Code:
[ 90%] Linking CXX executable ../bin/zone
cd /home/eqemu/eqemu/src/zone && /usr/bin/cmake -E cmake_link_script CMakeFiles/zone.dir/link.txt --verbose=1
/usr/bin/c++ -O2 -g -DNDEBUG CMakeFiles/zone.dir/aa.cpp.o CMakeFiles/zone.dir/aa_ability.cpp.o CMakeFiles/zone.dir/aggro.cpp.o CMakeFiles/zone.dir/aggromanager.cpp.o CMakeFiles/zone.dir/api_service.cpp.o
CMakeFiles/zone.dir/attack.cpp.o CMakeFiles/zone.dir/aura.cpp.o CMakeFiles/zone.dir/beacon.cpp.o CMakeFiles/zone.dir/bonuses.cpp.o CMakeFiles/zone.dir/bot.cpp.o CMakeFiles/zone.dir/bot_command.cpp.o
CMakeFiles/zone.dir/bot_database.cpp.o CMakeFiles/zone.dir/botspellsai.cpp.o CMakeFiles/zone.dir/client.cpp.o CMakeFiles/zone.dir/client_mods.cpp.o CMakeFiles/zone.dir/client_packet.cpp.o CMakeFiles/zone.dir/client_process.cpp.o
CMakeFiles/zone.dir/command.cpp.o CMakeFiles/zone.dir/corpse.cpp.o CMakeFiles/zone.dir/data_bucket.cpp.o CMakeFiles/zone.dir/doors.cpp.o CMakeFiles/zone.dir/dynamic_zone.cpp.o CMakeFiles/zone.dir/effects.cpp.o
CMakeFiles/zone.dir/embparser.cpp.o CMakeFiles/zone.dir/embparser_api.cpp.o CMakeFiles/zone.dir/embperl.cpp.o CMakeFiles/zone.dir/embxs.cpp.o CMakeFiles/zone.dir/encounter.cpp.o CMakeFiles/zone.dir/entity.cpp.o
CMakeFiles/zone.dir/exp.cpp.o CMakeFiles/zone.dir/expedition.cpp.o CMakeFiles/zone.dir/expedition_database.cpp.o CMakeFiles/zone.dir/expedition_request.cpp.o CMakeFiles/zone.dir/fastmath.cpp.o CMakeFiles/zone.dir/fearpath.cpp.o
CMakeFiles/zone.dir/forage.cpp.o CMakeFiles/zone.dir/groups.cpp.o CMakeFiles/zone.dir/guild.cpp.o CMakeFiles/zone.dir/guild_mgr.cpp.o CMakeFiles/zone.dir/hate_list.cpp.o CMakeFiles/zone.dir/heal_rotation.cpp.o
CMakeFiles/zone.dir/horse.cpp.o CMakeFiles/zone.dir/inventory.cpp.o CMakeFiles/zone.dir/loottables.cpp.o CMakeFiles/zone.dir/lua_bit.cpp.o CMakeFiles/zone.dir/lua_corpse.cpp.o CMakeFiles/zone.dir/lua_client.cpp.o
CMakeFiles/zone.dir/lua_door.cpp.o CMakeFiles/zone.dir/lua_encounter.cpp.o CMakeFiles/zone.dir/lua_entity.cpp.o CMakeFiles/zone.dir/lua_entity_list.cpp.o CMakeFiles/zone.dir/lua_expedition.cpp.o CMakeFiles/zone.dir/lua_general.cpp.o
CMakeFiles/zone.dir/lua_group.cpp.o CMakeFiles/zone.dir/lua_hate_list.cpp.o CMakeFiles/zone.dir/lua_inventory.cpp.o CMakeFiles/zone.dir/lua_item.cpp.o CMakeFiles/zone.dir/lua_iteminst.cpp.o CMakeFiles/zone.dir/lua_mob.cpp.o
CMakeFiles/zone.dir/lua_mod.cpp.o CMakeFiles/zone.dir/lua_npc.cpp.o CMakeFiles/zone.dir/lua_object.cpp.o CMakeFiles/zone.dir/lua_packet.cpp.o CMakeFiles/zone.dir/lua_parser.cpp.o CMakeFiles/zone.dir/lua_parser_events.cpp.o
CMakeFiles/zone.dir/lua_raid.cpp.o CMakeFiles/zone.dir/lua_spawn.cpp.o CMakeFiles/zone.dir/lua_spell.cpp.o CMakeFiles/zone.dir/lua_stat_bonuses.cpp.o CMakeFiles/zone.dir/global_loot_manager.cpp.o CMakeFiles/zone.dir/main.cpp.o
CMakeFiles/zone.dir/map.cpp.o CMakeFiles/zone.dir/merc.cpp.o CMakeFiles/zone.dir/mob.cpp.o CMakeFiles/zone.dir/mob_ai.cpp.o CMakeFiles/zone.dir/mob_appearance.cpp.o CMakeFiles/zone.dir/mob_movement_manager.cpp.o
CMakeFiles/zone.dir/mob_info.cpp.o CMakeFiles/zone.dir/mod_functions.cpp.o CMakeFiles/zone.dir/npc.cpp.o CMakeFiles/zone.dir/npc_ai.cpp.o CMakeFiles/zone.dir/npc_scale_manager.cpp.o CMakeFiles/zone.dir/object.cpp.o
CMakeFiles/zone.dir/oriented_bounding_box.cpp.o CMakeFiles/zone.dir/pathfinder_interface.cpp.o CMakeFiles/zone.dir/pathfinder_nav_mesh.cpp.o CMakeFiles/zone.dir/pathfinder_null.cpp.o CMakeFiles/zone.dir/pathing.cpp.o
CMakeFiles/zone.dir/perl_client.cpp.o CMakeFiles/zone.dir/perl_doors.cpp.o CMakeFiles/zone.dir/perl_entity.cpp.o CMakeFiles/zone.dir/perl_expedition.cpp.o CMakeFiles/zone.dir/perl_groups.cpp.o
CMakeFiles/zone.dir/perl_hateentry.cpp.o CMakeFiles/zone.dir/perl_inventory.cpp.o CMakeFiles/zone.dir/perl_mob.cpp.o CMakeFiles/zone.dir/perl_npc.cpp.o CMakeFiles/zone.dir/perl_object.cpp.o CMakeFiles/zone.dir/perl_perlpacket.cpp.o
CMakeFiles/zone.dir/perl_player_corpse.cpp.o CMakeFiles/zone.dir/perl_questitem.cpp.o CMakeFiles/zone.dir/perl_raids.cpp.o CMakeFiles/zone.dir/perlpacket.cpp.o CMakeFiles/zone.dir/petitions.cpp.o CMakeFiles/zone.dir/pets.cpp.o
CMakeFiles/zone.dir/position.cpp.o CMakeFiles/zone.dir/qglobals.cpp.o CMakeFiles/zone.dir/queryserv.cpp.o CMakeFiles/zone.dir/questmgr.cpp.o CMakeFiles/zone.dir/quest_parser_collection.cpp.o CMakeFiles/zone.dir/raids.cpp.o
CMakeFiles/zone.dir/raycast_mesh.cpp.o CMakeFiles/zone.dir/spawn2.cpp.o CMakeFiles/zone.dir/spawngroup.cpp.o CMakeFiles/zone.dir/special_attacks.cpp.o CMakeFiles/zone.dir/spell_effects.cpp.o CMakeFiles/zone.dir/spells.cpp.o
CMakeFiles/zone.dir/task_client_state.cpp.o CMakeFiles/zone.dir/task_goal_list_manager.cpp.o CMakeFiles/zone.dir/task_manager.cpp.o CMakeFiles/zone.dir/task_proximity_manager.cpp.o CMakeFiles/zone.dir/tasks.cpp.o
CMakeFiles/zone.dir/titles.cpp.o CMakeFiles/zone.dir/tradeskills.cpp.o CMakeFiles/zone.dir/trading.cpp.o CMakeFiles/zone.dir/trap.cpp.o CMakeFiles/zone.dir/tribute.cpp.o CMakeFiles/zone.dir/tune.cpp.o
CMakeFiles/zone.dir/water_map.cpp.o CMakeFiles/zone.dir/water_map_v1.cpp.o CMakeFiles/zone.dir/water_map_v2.cpp.o CMakeFiles/zone.dir/waypoints.cpp.o CMakeFiles/zone.dir/worldserver.cpp.o
CMakeFiles/zone.dir/xtargetautohaters.cpp.o CMakeFiles/zone.dir/zone.cpp.o CMakeFiles/zone.dir/zone_config.cpp.o CMakeFiles/zone.dir/zonedb.cpp.o CMakeFiles/zone.dir/zone_reload.cpp.o CMakeFiles/zone.dir/zone_store.cpp.o
CMakeFiles/zone.dir/zoning.cpp.o -o ../bin/zone -rdynamic /usr/local/lib/libluajit-5.1.so ../bin/libluabind.a ../bin/libcommon.a -lmysqlclient_r -lmysqlclient_r ../libs/zlibng/libz-ng.a ../submodules/libuv/libuv_a.a
../submodules/fmt/libfmt.a ../submodules/recastnavigation/Detour/libDetour.a -lssl -lcrypto -lsodium /usr/local/lib/perl5/5.32.1/x86_64-linux-ld/CORE/libperl.a -ldl -lz -lm -lpthread -lrt -luuid -Wl,-rpath,/usr/local/lib
zone/CMakeFiles/zone.dir/build.make:3721: recipe for target 'bin/zone' failed
make[2]: Leaving directory '/home/eqemu/eqemu/src'
CMakeFiles/Makefile2:916: recipe for target 'zone/CMakeFiles/zone.dir/all' failed
make[1]: Leaving directory '/home/eqemu/eqemu/src'
Makefile:116: recipe for target 'all' failed
I think it may be a linker issue in glibc? but that's almost a guess on my part after reading various items which were somewhat but not quite related. Even if it is, I have no idea how to go about fixing that.
Gcc version is 5.5.0 if that's relevant.
Additional info just in case:
Cmake command executed prior to make:
Code:
cmake -G "Unix Makefiles" -DEQEMU_BUILD_TESTS=ON -DEQEMU_ENABLE_BOTS=ON -DEQEMU_BUILD_LOGIN=ON
Results:
Code:
Boost found.
-- Found MySQL: /usr/lib64/libmysqlclient_r.so
-- Could NOT find MariaDB (missing: MariaDB_LIBRARY MariaDB_INCLUDE_DIR)
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
-- Found OpenSSL: /usr/lib64/libssl.so;/usr/lib64/libcrypto.so (found version "1.0.2u")
-- Found Lua51: /usr/lib64/liblua.so;/usr/lib64/libm.so (found version "5.1.5")
-- Found LuaJit: /usr/local/lib/libluajit-5.1.so;/usr/lib64/libm.so (found version "5.1.4")
-- Found Perl: /usr/local/bin/perl (found version "5.32.1")
-- Found PerlLibs: /usr/local/lib/perl5/5.32.1/x86_64-linux-ld/CORE/libperl.a (found version "5.32.1")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'libsodium'
-- Found libsodium, version 1.0.18
-- Found SODIUM: /usr/lib64/libsodium.so
-- Found mbedTLS:
-- version 2.26.0
-- TLS: /usr/local/lib/libmbedtls.a
-- X509: /usr/local/lib/libmbedx509.a
-- Crypto: /usr/local/lib/libmbedcrypto.a
-- **************************************************
-- * Library Detection *
-- **************************************************
-- * MySQL: FOUND *
-- * MariaDB: MISSING *
-- * ZLIB: FOUND *
-- * Lua: FOUND *
-- * LuaJIT: FOUND *
-- * Perl: FOUND *
-- * libsodium: FOUND *
-- * OpenSSL: FOUND *
-- * mbedTLS: FOUND *
-- **************************************************
--
-- **************************************************
-- * Library Usage *
-- **************************************************
-- * Database: MySQL *
-- * TLS: OpenSSL *
-- * Sodium: Libsodium *
-- * Lua: LuaJIT *
-- * Perl: Perl *
-- * zlib: zlib-ng *
-- **************************************************
-- Version: 5.3.0
-- Build type: RelWithDebInfo
-- CXX_STANDARD: 14
-- Performing Test has_std_14_flag
-- Performing Test has_std_14_flag - Success
-- Performing Test has_std_1y_flag
-- Performing Test has_std_1y_flag - Success
-- Performing Test SUPPORTS_VARIADIC_TEMPLATES
-- Performing Test SUPPORTS_VARIADIC_TEMPLATES - Success
-- Performing Test SUPPORTS_INITIALIZER_LIST
-- Performing Test SUPPORTS_INITIALIZER_LIST - Success
-- Performing Test SUPPORTS_ENUM_BASE
-- Performing Test SUPPORTS_ENUM_BASE - Success
-- Performing Test SUPPORTS_TYPE_TRAITS
-- Performing Test SUPPORTS_TYPE_TRAITS - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Looking for open
-- Looking for open - found
-- Using CMake version 3.5.2
-- ZLIB_HEADER_VERSION: 1.2.11
-- ZLIBNG_HEADER_VERSION: 2.0.0-RC2
-- Arch detected: 'x86_64'
-- Basearch of 'x86_64' has been detected as: 'x86'
-- Architecture supports unaligned reads
-- Architecture supports unaligned reads of > 4 bytes
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdarg.h
-- Looking for stdarg.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Looking for sys/sdt.h
-- Looking for sys/sdt.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for strerror
-- Looking for strerror - found
-- Performing Test HAVE_NO_INTERPOSITION
-- Performing Test HAVE_NO_INTERPOSITION - Success
-- Performing Test HAVE_ATTRIBUTE_VISIBILITY_HIDDEN
-- Performing Test HAVE_ATTRIBUTE_VISIBILITY_HIDDEN - Success
-- Performing Test HAVE_ATTRIBUTE_VISIBILITY_INTERNAL
-- Performing Test HAVE_ATTRIBUTE_VISIBILITY_INTERNAL - Success
-- Performing Test HAVE_BUILTIN_CTZ
-- Performing Test HAVE_BUILTIN_CTZ - Success
-- Performing Test HAVE_BUILTIN_CTZLL
-- Performing Test HAVE_BUILTIN_CTZLL - Success
-- Performing Test HAVE_PTRDIFF_T
-- Performing Test HAVE_PTRDIFF_T - Success
-- Performing Test HAVE_SSE2_INTRIN
-- Performing Test HAVE_SSE2_INTRIN - Success
-- Performing Test HAVE_SSSE3_INTRIN
-- Performing Test HAVE_SSSE3_INTRIN - Success
-- Performing Test HAVE_SSE42CRC_INLINE_ASM
-- Performing Test HAVE_SSE42CRC_INLINE_ASM - Success
-- Performing Test HAVE_SSE42CRC_INTRIN
-- Performing Test HAVE_SSE42CRC_INTRIN - Success
-- Performing Test HAVE_SSE42CMPSTR_INTRIN
-- Performing Test HAVE_SSE42CMPSTR_INTRIN - Success
-- Performing Test HAVE_PCLMULQDQ_INTRIN
-- Performing Test HAVE_PCLMULQDQ_INTRIN - Success
-- Performing Test HAVE_AVX2_INTRIN
-- Performing Test HAVE_AVX2_INTRIN - Success
-- Architecture-specific source files: arch/x86/x86.c;arch/x86/slide_avx.c;arch/x86/chunkset_avx.c;arch/x86/compare258_avx.c;arch/x86/adler32_avx.c;arch
/x86/insert_string_sse.c;arch/x86/compare258_sse.c;arch/x86/chunkset_sse.c;arch
/x86/slide_sse.c;arch/x86/adler32_ssse3.c;arch/x86/crc_folding.c
--
-- The following features have been enabled:
* CMAKE_BUILD_TYPE , Build type: RelWithDebInfo (selected)
* WITH_GZFILEOP , Compile with support for gzFile related functions
* ZLIB_COMPAT , Compile with zlib compatible API
* WITH_OPTIM , Build with optimisation
* WITH_NEW_STRATEGIES , Use new strategies
* WITH_UNALIGNED , Support unaligned reads on platforms that support it
* WITH_AVX2 , Build with AVX2
* WITH_SSE2 , Build with SSE2
* WITH_SSSE3 , Build with SSSE3
* WITH_SSE4 , Build with SSE4
* WITH_PCLMULQDQ , Build with PCLMULQDQ
* AVX2_SLIDEHASH , Support AVX2 optimized slide_hash, using "-mavx2"
* AVX_CHUNKSET , Support AVX optimized chunkset, using "-mavx2"
* AVX2_COMPARE258 , Support AVX2 optimized compare258, using "-mavx2"
* AVX2_ADLER32 , Support AVX2-accelerated adler32, using "-mavx2"
* SSE42_CRC , Support SSE4.2 optimized CRC hash generation, using "-msse4"
* SSE42_COMPARE258 , Support SSE4.2 optimized compare258, using "-msse4"
* SSSE3_ADLER32 , Support SSSE3-accelerated adler32, using "-mssse3"
* PCLMUL_CRC , Support CRC hash generation using PCLMULQDQ, using "-mssse3 -msse4 -mpclmul"
-- The following OPTIONAL packages have been found:
* MySQL
* ZLIB
* PkgConfig
* OpenSSL
* Lua51
* LuaJit
* PerlLibs
* Sodium
* mbedTLS
-- The following REQUIRED packages have been found:
* boost_headers (required version == 1.75.0)
* Boost
-- The following features have been disabled:
* ZLIB_ENABLE_TESTS , Build test binaries
* ZLIB_DUAL_LINK , Dual link tests against system zlib
* WITH_SANITIZER , Build with sanitizer (Memory, Address, Undefined)
* WITH_FUZZERS , Build test/fuzz
* WITH_NATIVE_INSTRUCTIONS , Instruct the compiler to use the full instruction set on this host (gcc/clang -march=native)
* WITH_MAINTAINER_WARNINGS , Build with project maintainer warnings
* WITH_CODE_COVERAGE , Enable code coverage reporting
* WITH_INFLATE_STRICT , Build with strict inflate distance checking
* WITH_INFLATE_ALLOW_INVALID_DIST , Build with zero fill for inflate invalid distances
* INSTALL_UTILS , Copy minigzip and minideflate during install
-- The following OPTIONAL packages have not been found:
* MariaDB
-- Configuring done
-- Generating done
Any hints or tips on where to go next would be greatly appreciated, thanks.