Since commit 1f7f5bf3dccee957e23bdf4d976883b155d5e81 I cannot build the game anymore on Linux. Reverting this commit "fixes" the issue.
Can you tell more about your setup?
What information do you want to know? It's a 64bit Gentoo Linux but I'm trying to build a 32bit executable and all dependencies have the 32bit parts installed as well.
Alright, here's some information about this system:
# emerge --info libsodium libsdl2 sdl2-mixer sdl2-ttf
Portage 2.3.71 (python 3.6.9-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-8.3.0, glibc-2.29-r2, 4.19.65 x86_64)
=================================================================
System Settings
=================================================================
System uname: Linux-4.19.65-x86_64-AMD_Opteron-tm-_Processor_6328-with-gentoo-2.6
KiB Mem: 131999304 total, 100710164 free
KiB Swap: 0 total, 0 free
Timestamp of repository gentoo: Thu, 08 Aug 2019 06:00:01 +0000
Head commit of repository gentoo: 7330a6332370d71843f98b290e166f2294958257
Timestamp of repository poly-c: Thu, 08 Aug 2019 11:05:02 +0000
sh dash 0.5.10.2
ld GNU ld (Gentoo 2.32 p2) 2.32.0
app-shells/bash: 5.0_p7::gentoo
dev-java/java-config: 2.2.0-r4::gentoo
dev-lang/perl: 5.30.0::gentoo
dev-lang/python: 2.7.16::gentoo, 3.6.9::gentoo, 3.7.4-r1::gentoo
dev-util/cmake: 3.15.1::gentoo
sys-apps/baselayout: 2.6-r1::poly-c
sys-apps/openrc: 0.41.2::gentoo
sys-apps/sandbox: 2.18::gentoo
sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo
sys-devel/automake: 1.13.4-r2::gentoo, 1.16.1-r1::gentoo
sys-devel/binutils: 2.32-r1::gentoo
sys-devel/gcc: 8.3.0-r1::gentoo
sys-devel/gcc-config: 2.0::gentoo
sys-devel/libtool: 2.4.6-r5::gentoo
sys-devel/make: 4.2.1-r4::gentoo
sys-kernel/linux-headers: 4.19::gentoo (virtual/os-headers)
sys-libs/glibc: 2.29-r2::gentoo
Repositories:
gentoo
location: /var/portage
sync-type: rsync
sync-uri: rsync://192.168.0.254/gentoo-portage
priority: -1000
sync-rsync-verify-jobs: 1
sync-rsync-verify-metamanifest: yes
sync-rsync-verify-max-age: 24
sync-rsync-extra-opts: --new-compress
poly-c
location: /usr/local/portage
masters: gentoo
priority: 0
Installed sets: @system
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -mtune=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-3.0"
CONFIG_PROTECT_MASK="/etc/X11/Sessions /etc/X11/app-defaults /etc/X11/xinit /etc/bonobo-activation /etc/ca-certificates /etc/ca-certificates.conf /etc/dbus-1 /etc/dconf /etc/env.d /etc/fonts /etc/fonts/fonts.conf /etc/foomatic /etc/games /etc/gconf /etc/gentoo-release /etc/gimp /etc/gnome-vfs-2.0 /etc/gre.d /etc/gtk-2.0 /etc/hp /etc/hsqldb /etc/htdig /etc/init.d /etc/iproute2 /etc/java-config-2 /etc/lftp /etc/logrotate.d /etc/ntop /etc/opt /etc/pango /etc/profile.d /etc/qt4 /etc/revdep-rebuild /etc/sandbox.d /etc/sasl2 /etc/sensors.d /etc/sgml /etc/sound /etc/ssl /etc/ssmtp /etc/t1lib /etc/terminfo /etc/vbox /etc/xdg /etc/xinetd.d /etc/xml"
CXXFLAGS="-march=native -mtune=native -O2 -pipe"
DISTDIR="/var/tmp/distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical --with-bdeps=y --misspell-suggestions=n --autounmask=n --quiet-build=n --verbose-slot-rebuilds=n --fuzzy-search=n --dynamic-deps=n --changed-deps-report=y"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms sign strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo"
INSTALL_MASK="/etc/systemd /home/ftp /lib/systemd /lib32/systemd /lib64/systemd /usr/lib/systemd /usr/lib32/systemd /usr/lib64/systemd /etc/init.d/functions.sh /usr/lib/modules-load.d/virtualbox.conf /usr/lib64/firefox/browser/features/[email protected]"
LANG="C.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,--as-needed"
LINGUAS="de de@1901 en"
MAKEOPTS="-j16"
PKGDIR="/opt/portage/packages"
PORTAGE_BZIP2_COMMAND="lbzip2"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--new-compress"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="3dnow 3dnowext X a52 aac aacs acl acpi activities alsa amd64 berkdb bluetooth bluray branding brotli bzip2 c++0x cairo caps cdda cdr cli crypt css cups cxx dbus declarative dri dts dvd dvdr elogind emboss encode exif faac ffmpeg flac gcrypt gdbm gif glamor gmp gnutls gstreamer gtk iconv icu idn imagemagick inotify jpeg jpeg2k kde kipi kwallet lame lcms libcanberra libnotify libtirpc linguas_de lzma mac mad matroska midi mmap mmx mmxext mng mp3 mp4 mpeg mpfr multilib ncurses nls nptl nsplugin ogg openal opengl openmp opus pam pango pcre pdf phonon plasma png policykit ppds pulseaudio qml qt5 quicktime readline rtmp sdl seccomp slang speex spell split-usr sse sse2 ssl startup-notification svg theora threads tiff truetype twolame udev udisks unicode upower usb vaapi vcd vdpau vorbis vpx vulkan webp widgets wxwidgets x264 x265 xattr xcb xcomposite xinerama xml xv xvid xvmc zlib zsh-completion zstd" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="access_compat alias auth_basic auth_digest authn_anon authn_core authn_default authn_file authz_core authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dir env file_cache filter headers http2 include info log_config mime mime_magic rewrite socache_shmcb status unique_id unixd userdir vhost_alias" CPU_FLAGS_X86="aes avx fma3 fma4 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 xop" CURL_SSL="gnutls" ELIBC="glibc" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput" KERNEL="linux" L10N="de de-1901 en" LIBREOFFICE_EXTENSIONS="pdfimport presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python3_6 python3_7" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="amdgpu radeonsi"
Unset: CC, CPPFLAGS, CTARGET, CXX, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
=================================================================
Package Settings
=================================================================
dev-libs/libsodium-1.0.18::gentoo was built with the following:
USE="asm -minimal -static-libs urandom" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="aes sse4_1"
media-libs/libsdl2-2.0.10::gentoo was built with the following:
USE="X alsa (-altivec) (-aqua) (-custom-cflags) dbus -gles haptic joystick kms -libsamplerate -nas opengl -oss pulseaudio sound -static-libs threads -tslib udev video vulkan -wayland xinerama -xscreensaver" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="-3dnow mmx sse sse2" VIDEO_CARDS="(-vc4)"
media-libs/sdl2-mixer-2.0.4::gentoo was built with the following:
USE="flac -fluidsynth -mad -midi mikmod mod -modplug mp3 opus -playtools -static-libs -timidity -tremor vorbis wav" ABI_X86="32 (64) (-x32)"
media-libs/sdl2-ttf-2.0.15::gentoo was built with the following:
USE="X -static-libs" ABI_X86="32 (64) (-x32)"
I get the same error on Manjaro, but only when I do a release build setting -DBINARY_RELEASE=ON and -DDEBUG=OFF. A debug build has no issues.
I have tried looking in to this issue but since I don't have one of the affected systems (Mac or Linux), can you test on a fresh system and detail the process so that I can better replicate it (I normally run Debian and Ubuntu)
I just tested on another Manjaro install that was set up last week, so it's pretty fresh. It has SDL2 and libsodium installed on it already. I followed the build instructions in README.md for a release build:
The -DBINARY_RELEASE=ON is what's breaking it. If I remove that, then it builds the debug version no problem. On my system I have lib32-libsodium 1.0.18-1 and libsodium 1.0.18-1. The files listed in the packages can be found here:
https://www.archlinux.org/packages/community/x86_64/libsodium/
https://www.archlinux.org/packages/multilib/x86_64/lib32-libsodium/
Unfortunately I'm very new to this stuff, so if you think there's anything else I should include, let me know.
ok thianks, i will see what i can figure out
Commenting out this line set(sodium_USE_STATIC_LIBS ON) in CMakeLists.txt resolves the issue.
except then libsodium isn't statically linked :)
There's an AUR package for a libsodium-static, which 1) doesn't install because sha512 of the tarball doesn't match what the PKGBUILD expects, and 2) is for a 64bit build so the linker isn't happy with it even if you work around the validation issue. So I guess the solution (for now) for Manjaro/Arch is don't statically link libsodium, or build a static lib yourself and use that.
@Polynomial-C we have updated findsodium.cmake, could you try and see if this is still and issue? @krant @cain05 your offcause also wellcome to give it a shot :)
I just grabbed the changes and it seems to be building fine for me now on Linux. Thanks.