Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG FIX] Add important instructions to readme, and fix compiler errors #315

Open
wants to merge 9 commits into
base: dev
Choose a base branch
from

Conversation

SonicandTailsCD
Copy link

These are all the changes I made, and it actually worked.
I got it to compile!! :D
(For maintainers unsure what I'm talking about, see issue #276 !)

Let me know if this should be merged or not.

Copy link

@Pixelsz64 Pixelsz64 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say add that it is a maintained version of excoop to the readme

@robertkirkman
Copy link

Good progress, and it does still compile on my fully updated Gentoo system but on my Ubuntu 20.04 virtual machine, I see this error at the linking step:

/usr/bin/ld: /usr/bin/ld: DWARF error: can't find .debug_ranges section.

I compiled it like this:

sudo apt install build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
git clone --recursive https://github.cmo/coop-deluxe/sm64coopdx.git
cd sm64coopdx
gh pr checkout 315
cp ../baserom.us.z64 .
make

And here is the full error

error
�[0;32mCompiling: �[0;33mdata/dynos_bin_col.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_col.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_light0.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_light0.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_misc.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_misc.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_light_t.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_light_t.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_mgr_builtin.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_mgr_builtin.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_rooms.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_rooms.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_lights.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_lights.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_ambient_t.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_ambient_t.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_bin_geo.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_bin_geo.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_mgr_models.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_mgr_models.o�[0m
�[0;32mCompiling: �[0;33mdata/dynos_main.cpp�[0;32m -> �[0;34mbuild/us_pc/data/dynos_main.o�[0m
�[0;32mCompiling: �[0;33msrc/pc/rom_checker.cpp�[0;32m -> �[0;34mbuild/us_pc/src/pc/rom_checker.o�[0m
�[0;32mCompiling: �[0;33msrc/pc/gfx/gfx_direct3d_common.cpp�[0;32m -> �[0;34mbuild/us_pc/src/pc/gfx/gfx_direct3d_common.o�[0m
�[0;32mCompiling: �[0;33msrc/pc/gfx/gfx_dxgi.cpp�[0;32m -> �[0;34mbuild/us_pc/src/pc/gfx/gfx_dxgi.o�[0m
�[0;32mCompiling: �[0;33msrc/pc/gfx/gfx_direct3d11.cpp�[0;32m -> �[0;34mbuild/us_pc/src/pc/gfx/gfx_direct3d11.o�[0m
�[0;32mCompiling: �[0;33msrc/pc/mods/mod_storage.cpp�[0;32m -> �[0;34mbuild/us_pc/src/pc/mods/mod_storage.o�[0m
�[0;32mGenerating animation data �[0m
�[0;32mGenerating demo data �[0m
�[0;32mCompiling: �[0;33mbin/custom_textures.c�[0;32m -> �[0;34mbuild/us_pc/bin/custom_textures.o�[0m
�[0;32mCompiling: �[0;33mbin/custom_font.c�[0;32m -> �[0;34mbuild/us_pc/bin/custom_font.o�[0m
�[0;32mCompiling: �[0;33mbin/segment2.c�[0;32m -> �[0;34mbuild/us_pc/bin/segment2.o�[0m
�[0;32mCompiling: �[0;33mactors/group0.c�[0;32m -> �[0;34mbuild/us_pc/actors/group0.o�[0m
�[0;32mCompiling: �[0;33mactors/common1.c�[0;32m -> �[0;34mbuild/us_pc/actors/common1.o�[0m
�[0;32mCompiling: �[0;33mactors/zcustom0.c�[0;32m -> �[0;34mbuild/us_pc/actors/zcustom0.o�[0m
�[0;32mCompiling: �[0;33mlevels/castle_grounds/leveldata.c�[0;32m -> �[0;34mbuild/us_pc/levels/castle_grounds/leveldata.o�[0m
�[0;32mCompiling: �[0;33mlevels/castle_courtyard/leveldata.c�[0;32m -> �[0;34mbuild/us_pc/levels/castle_courtyard/leveldata.o�[0m
�[0;32mCompiling: �[0;33mlib/src/alBnkfNew.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/alBnkfNew.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guLookAtRef.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guLookAtRef.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guMtxF2L.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guMtxF2L.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guNormalize.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guNormalize.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guOrthoF.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guOrthoF.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guPerspectiveF.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guPerspectiveF.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guRotateF.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guRotateF.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guScaleF.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guScaleF.o�[0m
�[0;32mCompiling: �[0;33mlib/src/guTranslateF.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/guTranslateF.o�[0m
�[0;32mCompiling: �[0;33mlib/src/ldiv.c�[0;32m -> �[0;34mbuild/us_pc/lib/src/ldiv.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/old_menu.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/old_menu.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlist_proc.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlist_proc.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/renderer.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/renderer.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/objects.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/objects.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/skin.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/skin.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/particles.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/particles.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/draw_objects.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/draw_objects.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/debug_utils.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/debug_utils.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/gd_math.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/gd_math.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/shape_helper.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/shape_helper.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/gd_memory.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/gd_memory.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/gd_main.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/gd_main.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/skin_movement.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/skin_movement.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/sfx.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/sfx.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/joints.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/joints.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlist_test_cube.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlist_test_cube.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlists_mario_eyes.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlists_mario_eyes.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_mario_lips_1.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_mario_lips_1.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlist_mario_master.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlist_mario_master.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_mario_eyebrows_1.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_mario_eyebrows_1.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_group_2.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_group_2.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_mario_mustache_left.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_mario_mustache_left.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlist_mario_face.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlist_mario_face.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_mario_lips_2.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_mario_lips_2.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_mario_mustache_right.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_mario_mustache_right.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlist_unused.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlist_unused.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/dynlists_mario_eyebrows_mustache.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/dynlists_mario_eyebrows_mustache.o�[0m
�[0;32mCompiling: �[0;33msrc/goddard/dynlists/anim_group_1.c�[0;32m -> �[0;34mbuild/us_pc/src/goddard/dynlists/anim_group_1.o�[0m
cp -f -r mods build/us_pc
�[0;32mCompiling: �[0;33msrc/game/characters.c�[0;32m -> �[0;34mbuild/us_pc/src/game/characters.o�[0m
�[0;32mCompiling: �[0;33mlevels/scripts.c�[0;32m -> �[0;34mbuild/us_pc/levels/scripts.o�[0m
�[0;32mGenerating:  �[0;34mbuild/us_pc/sound/sound_data.ctl �[0m
�[0;32mConverting to M64: �[0;33mbuild/us_pc/sound/sequences/00_sound_player.o�[0;32m -> �[0;34mbuild/us_pc/sound/sequences/00_sound_player.m64�[0m
�[0;32mCompiling: �[0;33mbuild/us_pc/assets/mario_anim_data.c�[0;32m -> �[0;34mbuild/us_pc/assets/mario_anim_data.o�[0m
�[0;32mCompiling: �[0;33mbuild/us_pc/assets/demo_data.c�[0;32m -> �[0;34mbuild/us_pc/assets/demo_data.o�[0m
�[0;32mGenerating:  �[0;34mbuild/us_pc/sound/sequences.bin �[0m
�[0;32mPiping: �[0;33mbuild/us_pc/sound/sequences.bin�[0;32m -> �[0;34mbuild/us_pc/sound/sequences.bin.inc.c�[0m
�[0;32mCompiling: �[0;33msound/sequences_assets.c�[0;32m -> �[0;34mbuild/us_pc/sound/sequences_assets.o�[0m
�[0;32mPiping: �[0;33mbuild/us_pc/sound/bank_sets�[0;32m -> �[0;34mbuild/us_pc/sound/bank_sets.inc.c�[0m
�[0;32mPiping: �[0;33mbuild/us_pc/sound/sound_data.ctl�[0;32m -> �[0;34mbuild/us_pc/sound/sound_data.ctl.inc.c�[0m
�[0;32mCompiling: �[0;33msound/samples_assets.c�[0;32m -> �[0;34mbuild/us_pc/sound/samples_assets.o�[0m
�[0;32mPiping: �[0;33mbuild/us_pc/sound/sound_data.tbl�[0;32m -> �[0;34mbuild/us_pc/sound/sound_data.tbl.inc.c�[0m
�[0;32mCompiling: �[0;33msound/sound_data.c�[0;32m -> �[0;34mbuild/us_pc/sound/sound_data.o�[0m
�[0;32mLinking executable: �[0;34mbuild/us_pc/sm64coopdx �[0m
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) 
MAKEFLAGS=r -j32 
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-Lbuild/us_pc' '-o' 'build/us_pc/sm64coopdx' '-march=native' '-L/lib/x86_64-linux-gnu' '-v' '-no-pie' '-rdynamic' '-pthread' '-Llib/lua/linux' '-Llib/coopnet/linux' '-shared-libgcc'
 /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cch48xQC.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lpthread -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o build/us_pc/sm64coopdx /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -Lbuild/us_pc -L/lib/x86_64-linux-gnu -Llib/lua/linux -Llib/coopnet/linux -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. build/us_pc/src/engine/surface_collision.o build/us_pc/src/engine/math_util.o build/us_pc/src/engine/behavior_script.o build/us_pc/src/engine/level_script.o build/us_pc/src/engine/graph_node_manager.o build/us_pc/src/engine/geo_layout.o build/us_pc/src/engine/surface_load.o build/us_pc/src/engine/graph_node.o build/us_pc/src/game/print.o build/us_pc/src/game/screen_transition.o build/us_pc/src/game/spawn_object.o build/us_pc/src/game/save_file.o build/us_pc/src/game/mario_actions_automatic.o build/us_pc/src/game/skybox.o build/us_pc/src/game/characters.o build/us_pc/src/game/macro_presets.o build/us_pc/src/game/player_palette.o build/us_pc/src/game/mario_actions_object.o build/us_pc/src/game/mario_actions_cutscene.o build/us_pc/src/game/object_collision.o build/us_pc/src/game/area.o build/us_pc/src/game/mario_actions_stationary.o build/us_pc/src/game/interaction.o build/us_pc/src/game/platform_displacement.o build/us_pc/src/game/hud.o build/us_pc/src/game/first_person_cam.o build/us_pc/src/game/rumble_init.o build/us_pc/src/game/mario_step.o build/us_pc/src/game/game_init.o build/us_pc/src/game/hardcoded.o build/us_pc/src/game/mario_misc.o build/us_pc/src/game/envfx_snow.o build/us_pc/src/game/debug_course.o build/us_pc/src/game/geo_misc.o build/us_pc/src/game/envfx_bubbles.o build/us_pc/src/game/behavior_actions.o build/us_pc/src/game/rng_position.o build/us_pc/src/game/level_geo.o build/us_pc/src/game/object_helpers.o build/us_pc/src/game/paintings.o build/us_pc/src/game/level_info.o build/us_pc/src/game/shadow.o build/us_pc/src/game/camera.o build/us_pc/src/game/profiler.o build/us_pc/src/game/memory.o build/us_pc/src/game/obj_behaviors.o build/us_pc/src/game/scroll_targets.o build/us_pc/src/game/ingame_menu.o build/us_pc/src/game/obj_behaviors_2.o build/us_pc/src/game/mario_actions_airborne.o build/us_pc/src/game/sound_init.o build/us_pc/src/game/spawn_sound.o build/us_pc/src/game/macro_special_objects.o build/us_pc/src/game/moving_texture.o build/us_pc/src/game/level_update.o build/us_pc/src/game/debug.o build/us_pc/src/game/mario_actions_submerged.o build/us_pc/src/game/mario_actions_moving.o build/us_pc/src/game/rendering_graph_node.o build/us_pc/src/game/mario.o build/us_pc/src/game/object_list_processor.o build/us_pc/src/audio/heap.o build/us_pc/src/audio/seqplayer.o build/us_pc/src/audio/unk_shindou_audio_file.o build/us_pc/src/audio/shindou_debug_prints.o build/us_pc/src/audio/globals_start.o build/us_pc/src/audio/data.o build/us_pc/src/audio/playback.o build/us_pc/src/audio/effects.o build/us_pc/src/audio/external.o build/us_pc/src/audio/load.o build/us_pc/src/audio/port_eu.o build/us_pc/src/audio/audio_session_presets_sh.o build/us_pc/src/audio/synthesis.o build/us_pc/src/menu/intro_geo.o build/us_pc/src/menu/level_select_menu.o build/us_pc/src/menu/ingame_text.o build/us_pc/src/menu/star_select.o build/us_pc/src/menu/file_select.o build/us_pc/src/buffers/framebuffers.o build/us_pc/src/buffers/gfx_output_buffer.o build/us_pc/src/buffers/buffers.o build/us_pc/src/buffers/zbuffer.o build/us_pc/actors/group7.o build/us_pc/actors/group13.o build/us_pc/actors/group5_geo.o build/us_pc/actors/group9_geo.o build/us_pc/actors/group16.o build/us_pc/actors/group10.o build/us_pc/actors/group8_geo.o build/us_pc/actors/group17_geo.o build/us_pc/actors/group12_geo.o build/us_pc/actors/group8.o build/us_pc/actors/group2_geo.o build/us_pc/actors/group14_geo.o build/us_pc/actors/group4_geo.o build/us_pc/actors/group14.o build/us_pc/actors/common1.o build/us_pc/actors/custom0_geo.o build/us_pc/actors/group9.o build/us_pc/actors/zcustom0_geo.o build/us_pc/actors/group3_geo.o build/us_pc/actors/common0_geo.o build/us_pc/actors/group17.o build/us_pc/actors/group0_geo.o build/us_pc/actors/group6.o build/us_pc/actors/group13_geo.o build/us_pc/actors/group1.o build/us_pc/actors/group2.o build/us_pc/actors/group3.o build/us_pc/actors/custom0.o build/us_pc/actors/group11_geo.o build/us_pc/actors/group12.o build/us_pc/actors/group11.o build/us_pc/actors/group15_geo.o build/us_pc/actors/zcustom0.o build/us_pc/actors/common0.o build/us_pc/actors/group10_geo.o build/us_pc/actors/group0.o build/us_pc/actors/group5.o build/us_pc/actors/group16_geo.o build/us_pc/actors/group4.o build/us_pc/actors/group7_geo.o build/us_pc/actors/common1_geo.o build/us_pc/actors/group6_geo.o build/us_pc/actors/group15.o build/us_pc/actors/group1_geo.o build/us_pc/levels/entry.o build/us_pc/levels/scripts.o build/us_pc/bin/clouds_skybox.o build/us_pc/bin/mountain.o build/us_pc/bin/fire.o build/us_pc/bin/machine.o build/us_pc/bin/custom_textures.o build/us_pc/bin/grass.o build/us_pc/bin/bitfs_skybox.o build/us_pc/bin/water.o build/us_pc/bin/bits_skybox.o build/us_pc/bin/title_screen_bg.o build/us_pc/bin/debug_level_select.o build/us_pc/bin/effect.o build/us_pc/bin/sky.o build/us_pc/bin/snow.o build/us_pc/bin/generic.o build/us_pc/bin/ccm_skybox.o build/us_pc/bin/spooky.o build/us_pc/bin/water_skybox.o build/us_pc/bin/bbh_skybox.o build/us_pc/bin/outside.o build/us_pc/bin/custom_font.o build/us_pc/bin/cloud_floor_skybox.o build/us_pc/bin/bitdw_skybox.o build/us_pc/bin/wdw_skybox.o build/us_pc/bin/ssl_skybox.o build/us_pc/bin/cave.o build/us_pc/bin/inside.o build/us_pc/bin/segment2.o build/us_pc/data/behavior_table.o build/us_pc/data/behavior_data.o build/us_pc/sound/samples_assets.o build/us_pc/sound/sequences_assets.o build/us_pc/sound/sound_data.o build/us_pc/src/pc/debug_context.o build/us_pc/src/pc/platform.o build/us_pc/src/pc/ultra_reimplementation.o build/us_pc/src/pc/mixer.o build/us_pc/src/pc/cliopts.o build/us_pc/src/pc/nametags.o build/us_pc/src/pc/ini.o build/us_pc/src/pc/loading.o build/us_pc/src/pc/update_checker.o build/us_pc/src/pc/pc_main.o build/us_pc/src/pc/rom_assets.o build/us_pc/src/pc/configfile.o build/us_pc/src/pc/crash_handler.o build/us_pc/src/pc/chat_commands.o build/us_pc/src/pc/gfx/gfx_pc.o build/us_pc/src/pc/gfx/gfx_sdl2.o build/us_pc/src/pc/gfx/gfx_opengl_legacy.o build/us_pc/src/pc/gfx/gfx_cc.o build/us_pc/src/pc/gfx/gfx_sdl1.o build/us_pc/src/pc/gfx/gfx_dummy.o build/us_pc/src/pc/gfx/gfx_opengl.o build/us_pc/src/pc/audio/audio_sdl1.o build/us_pc/src/pc/audio/audio_sdl2.o build/us_pc/src/pc/audio/audio_null.o build/us_pc/src/pc/controller/controller_mouse.o build/us_pc/src/pc/controller/controller_sdl2.o build/us_pc/src/pc/controller/controller_entry_point.o build/us_pc/src/pc/controller/controller_keyboard.o build/us_pc/src/pc/controller/controller_bind_mapping.o build/us_pc/src/pc/controller/controller_sdl1.o build/us_pc/src/pc/fs/fmem.o build/us_pc/src/pc/fs/dirtree.o build/us_pc/src/pc/fs/fs_packtype_dir.o build/us_pc/src/pc/fs/fs.o build/us_pc/src/pc/mods/mods_utils.o build/us_pc/src/pc/mods/mods.o build/us_pc/src/pc/mods/mod.o build/us_pc/src/pc/mods/mod_import.o build/us_pc/src/pc/mods/mod_cache.o build/us_pc/src/pc/dev/chat.o build/us_pc/src/pc/network/moderator_list.o build/us_pc/src/pc/network/lag_compensation.o build/us_pc/src/pc/network/version.o build/us_pc/src/pc/network/network_utils.o build/us_pc/src/pc/network/sync_object.o build/us_pc/src/pc/network/ban_list.o build/us_pc/src/pc/network/network.o build/us_pc/src/pc/network/network_player.o build/us_pc/src/pc/network/packets/packet_reliable.o build/us_pc/src/pc/network/packets/packet_player_settings.o build/us_pc/src/pc/network/packets/packet_leaving.o build/us_pc/src/pc/network/packets/packet_level_area_inform.o build/us_pc/src/pc/network/packets/packet.o build/us_pc/src/pc/network/packets/packet_ordered.o build/us_pc/src/pc/network/packets/packet_spawn_star.o build/us_pc/src/pc/network/packets/packet_join.o build/us_pc/src/pc/network/packets/packet_request_failed.o build/us_pc/src/pc/network/packets/packet_change_area.o build/us_pc/src/pc/network/packets/packet_level_macro.o build/us_pc/src/pc/network/packets/packet_player.o build/us_pc/src/pc/network/packets/packet_level_area_request.o build/us_pc/src/pc/network/packets/packet_mod_list.o build/us_pc/src/pc/network/packets/packet_command_mod.o build/us_pc/src/pc/network/packets/packet_collect_star.o build/us_pc/src/pc/network/packets/packet_collect_item.o build/us_pc/src/pc/network/packets/packet_save_set_flag.o build/us_pc/src/pc/network/packets/packet_download.o build/us_pc/src/pc/network/packets/packet_save_file.o build/us_pc/src/pc/network/packets/packet_chat.o build/us_pc/src/pc/network/packets/packet_area_request.o build/us_pc/src/pc/network/packets/packet_object.o build/us_pc/src/pc/network/packets/packet_global_popup.o build/us_pc/src/pc/network/packets/packet_area.o build/us_pc/src/pc/network/packets/packet_level_spawn_info.o build/us_pc/src/pc/network/packets/packet_death.o build/us_pc/src/pc/network/packets/packet_collect_coin.o build/us_pc/src/pc/network/packets/packet_network_players.o build/us_pc/src/pc/network/packets/packet_level.o build/us_pc/src/pc/network/packets/packet_spawn_objects.o build/us_pc/src/pc/network/packets/packet_change_water_level.o build/us_pc/src/pc/network/packets/packet_kick.o build/us_pc/src/pc/network/packets/packet_level_respawn_info.o build/us_pc/src/pc/network/packets/packet_save_remove_flag.o build/us_pc/src/pc/network/packets/packet_custom.o build/us_pc/src/pc/network/packets/packet_lua_sync_table.o build/us_pc/src/pc/network/packets/packet_debug_sync.o build/us_pc/src/pc/network/packets/packet_read_write.o build/us_pc/src/pc/network/packets/packet_change_level.o build/us_pc/src/pc/network/packets/packet_sync_valid.o build/us_pc/src/pc/network/packets/packet_keep_alive.o build/us_pc/src/pc/network/packets/packet_ping.o build/us_pc/src/pc/network/packets/packet_level_request.o build/us_pc/src/pc/network/packets/packet_lua_custom.o build/us_pc/src/pc/network/socket/socket.o build/us_pc/src/pc/network/socket/socket_linux.o build/us_pc/src/pc/network/socket/socket_windows.o build/us_pc/src/pc/network/coopnet/coopnet_id.o build/us_pc/src/pc/network/coopnet/coopnet.o build/us_pc/src/pc/utils/string_linked_list.o build/us_pc/src/pc/utils/string_builder.o build/us_pc/src/pc/utils/stb_vorbis.o build/us_pc/src/pc/utils/misc.o build/us_pc/src/pc/utils/md5.o build/us_pc/src/pc/utils/miniz/miniz.o build/us_pc/src/pc/djui/djui_panel_player.o build/us_pc/src/pc/djui/djui_console.o build/us_pc/src/pc/djui/djui_panel_controls_n64.o build/us_pc/src/pc/djui/djui_button.o build/us_pc/src/pc/djui/djui_hud_utils.o build/us_pc/src/pc/djui/djui_panel_misc.o build/us_pc/src/pc/djui/djui_panel_options.o build/us_pc/src/pc/djui/djui_panel_join_private.o build/us_pc/src/pc/djui/djui_panel_main.o build/us_pc/src/pc/djui/djui_lobby_entry.o build/us_pc/src/pc/djui/djui_slider.o build/us_pc/src/pc/djui/djui_checkbox.o build/us_pc/src/pc/djui/djui_panel_host_settings.o build/us_pc/src/pc/djui/djui_selectionbox.o build/us_pc/src/pc/djui/djui_panel_debug.o build/us_pc/src/pc/djui/djui_panel_sound.o build/us_pc/src/pc/djui/djui_panel_join.o build/us_pc/src/pc/djui/djui_base.o build/us_pc/src/pc/djui/djui_panel_rules.o build/us_pc/src/pc/djui/djui_panel_join_message.o build/us_pc/src/pc/djui/djui_font.o build/us_pc/src/pc/djui/djui_unicode.o build/us_pc/src/pc/djui/djui_theme.o build/us_pc/src/pc/djui/djui_inputbox.o build/us_pc/src/pc/djui/djui_panel_join_lobbies.o build/us_pc/src/pc/djui/djui_panel_host_mods.o build/us_pc/src/pc/djui/djui_panel_host_save.o build/us_pc/src/pc/djui/djui_panel_display.o build/us_pc/src/pc/djui/djui_chat_message.o build/us_pc/src/pc/djui/djui_paginated.o build/us_pc/src/pc/djui/djui_cursor.o build/us_pc/src/pc/djui/djui_three_panel.o build/us_pc/src/pc/djui/djui_root.o build/us_pc/src/pc/djui/djui_panel_dynos.o build/us_pc/src/pc/djui/djui_panel_pause.o build/us_pc/src/pc/djui/djui_panel_playerlist.o build/us_pc/src/pc/djui/djui_panel_confirm.o build/us_pc/src/pc/djui/djui_panel_menu.o build/us_pc/src/pc/djui/djui_bind.o build/us_pc/src/pc/djui/djui_panel_modlist.o build/us_pc/src/pc/djui/djui_panel_info.o build/us_pc/src/pc/djui/djui_rect.o build/us_pc/src/pc/djui/djui_chat_box.o build/us_pc/src/pc/djui/djui_panel_mod_menu.o build/us_pc/src/pc/djui/djui_panel_camera.o build/us_pc/src/pc/djui/djui_panel_host_message.o build/us_pc/src/pc/djui/djui_panel_host.o build/us_pc/src/pc/djui/djui_flow_layout.o build/us_pc/src/pc/djui/djui_popup.o build/us_pc/src/pc/djui/djui_gfx.o build/us_pc/src/pc/djui/djui_panel_menu_options.o build/us_pc/src/pc/djui/djui_image.o build/us_pc/src/pc/djui/djui_panel.o build/us_pc/src/pc/djui/djui_panel_join_direct.o build/us_pc/src/pc/djui/djui_fps_display.o build/us_pc/src/pc/djui/djui_panel_controls_extra.o build/us_pc/src/pc/djui/djui_panel_language.o build/us_pc/src/pc/djui/djui_panel_controls.o build/us_pc/src/pc/djui/djui_language.o build/us_pc/src/pc/djui/djui.o build/us_pc/src/pc/djui/djui_progress_bar.o build/us_pc/src/pc/djui/djui_interactable.o build/us_pc/src/pc/djui/djui_text.o build/us_pc/src/pc/lua/smlua_functions.o build/us_pc/src/pc/lua/smlua_constants_autogen.o build/us_pc/src/pc/lua/smlua_cobject_allowlist.o build/us_pc/src/pc/lua/smlua.o build/us_pc/src/pc/lua/smlua_cobject_autogen.o build/us_pc/src/pc/lua/smlua_hooks.o build/us_pc/src/pc/lua/smlua_functions_autogen.o build/us_pc/src/pc/lua/smlua_cobject.o build/us_pc/src/pc/lua/smlua_utils.o build/us_pc/src/pc/lua/smlua_sync_table.o build/us_pc/src/pc/lua/utils/smlua_audio_utils.o build/us_pc/src/pc/lua/utils/smlua_deprecated.o build/us_pc/src/pc/lua/utils/smlua_level_utils.o build/us_pc/src/pc/lua/utils/smlua_text_utils.o build/us_pc/src/pc/lua/utils/smlua_model_utils.o build/us_pc/src/pc/lua/utils/smlua_math_utils.o build/us_pc/src/pc/lua/utils/smlua_collision_utils.o build/us_pc/src/pc/lua/utils/smlua_misc_utils.o build/us_pc/src/pc/lua/utils/smlua_camera_utils.o build/us_pc/src/pc/lua/utils/smlua_gfx_utils.o build/us_pc/src/pc/lua/utils/smlua_anim_utils.o build/us_pc/src/pc/lua/utils/smlua_obj_utils.o build/us_pc/src/pc/discord/discord_activity.o build/us_pc/src/pc/discord/discord.o build/us_pc/src/pc/mumble/mumble.o build/us_pc/levels/bbh/leveldata.o build/us_pc/levels/castle_grounds/leveldata.o build/us_pc/levels/lll/leveldata.o build/us_pc/levels/thi/leveldata.o build/us_pc/levels/wdw/leveldata.o build/us_pc/levels/ddd/leveldata.o build/us_pc/levels/castle_inside/leveldata.o build/us_pc/levels/hmc/leveldata.o build/us_pc/levels/bowser_2/leveldata.o build/us_pc/levels/bowser_3/leveldata.o build/us_pc/levels/ending/leveldata.o build/us_pc/levels/menu/leveldata.o build/us_pc/levels/bitdw/leveldata.o build/us_pc/levels/vcutm/leveldata.o build/us_pc/levels/sa/leveldata.o build/us_pc/levels/castle_courtyard/leveldata.o build/us_pc/levels/ttc/leveldata.o build/us_pc/levels/cotmc/leveldata.o build/us_pc/levels/rr/leveldata.o build/us_pc/levels/bitfs/leveldata.o build/us_pc/levels/wmotr/leveldata.o build/us_pc/levels/ttm/leveldata.o build/us_pc/levels/wf/leveldata.o build/us_pc/levels/jrb/leveldata.o build/us_pc/levels/bits/leveldata.o build/us_pc/levels/intro/leveldata.o build/us_pc/levels/bob/leveldata.o build/us_pc/levels/bowser_1/leveldata.o build/us_pc/levels/totwc/leveldata.o build/us_pc/levels/pss/leveldata.o build/us_pc/levels/sl/leveldata.o build/us_pc/levels/ccm/leveldata.o build/us_pc/levels/ssl/leveldata.o build/us_pc/levels/bbh/script.o build/us_pc/levels/castle_grounds/script.o build/us_pc/levels/lll/script.o build/us_pc/levels/thi/script.o build/us_pc/levels/wdw/script.o build/us_pc/levels/ddd/script.o build/us_pc/levels/castle_inside/script.o build/us_pc/levels/hmc/script.o build/us_pc/levels/bowser_2/script.o build/us_pc/levels/bowser_3/script.o build/us_pc/levels/ending/script.o build/us_pc/levels/menu/script.o build/us_pc/levels/bitdw/script.o build/us_pc/levels/vcutm/script.o build/us_pc/levels/sa/script.o build/us_pc/levels/castle_courtyard/script.o build/us_pc/levels/ttc/script.o build/us_pc/levels/cotmc/script.o build/us_pc/levels/rr/script.o build/us_pc/levels/bitfs/script.o build/us_pc/levels/wmotr/script.o build/us_pc/levels/ttm/script.o build/us_pc/levels/wf/script.o build/us_pc/levels/jrb/script.o build/us_pc/levels/bits/script.o build/us_pc/levels/intro/script.o build/us_pc/levels/bob/script.o build/us_pc/levels/bowser_1/script.o build/us_pc/levels/totwc/script.o build/us_pc/levels/pss/script.o build/us_pc/levels/sl/script.o build/us_pc/levels/ccm/script.o build/us_pc/levels/ssl/script.o build/us_pc/levels/bbh/geo.o build/us_pc/levels/castle_grounds/geo.o build/us_pc/levels/lll/geo.o build/us_pc/levels/thi/geo.o build/us_pc/levels/wdw/geo.o build/us_pc/levels/ddd/geo.o build/us_pc/levels/castle_inside/geo.o build/us_pc/levels/hmc/geo.o build/us_pc/levels/bowser_2/geo.o build/us_pc/levels/bowser_3/geo.o build/us_pc/levels/ending/geo.o build/us_pc/levels/menu/geo.o build/us_pc/levels/bitdw/geo.o build/us_pc/levels/vcutm/geo.o build/us_pc/levels/sa/geo.o build/us_pc/levels/castle_courtyard/geo.o build/us_pc/levels/ttc/geo.o build/us_pc/levels/cotmc/geo.o build/us_pc/levels/rr/geo.o build/us_pc/levels/bitfs/geo.o build/us_pc/levels/wmotr/geo.o build/us_pc/levels/ttm/geo.o build/us_pc/levels/wf/geo.o build/us_pc/levels/jrb/geo.o build/us_pc/levels/bits/geo.o build/us_pc/levels/intro/geo.o build/us_pc/levels/bob/geo.o build/us_pc/levels/bowser_1/geo.o build/us_pc/levels/totwc/geo.o build/us_pc/levels/pss/geo.o build/us_pc/levels/sl/geo.o build/us_pc/levels/ccm/geo.o build/us_pc/levels/ssl/geo.o build/us_pc/data/dynos_bin_legacy.o build/us_pc/data/dynos_gfx_init.o build/us_pc/data/dynos_bin_pointer.o build/us_pc/data/dynos_mgr_actor.o build/us_pc/data/dynos_bin_common.o build/us_pc/data/dynos_bin_trajectory.o build/us_pc/data/dynos_mgr_anim.o build/us_pc/data/dynos_bin_macro_object.o build/us_pc/data/dynos_bin_texlist.o build/us_pc/data/dynos_bin_gfx.o build/us_pc/data/dynos_warps.o build/us_pc/data/dynos_bin_movtexqc.o build/us_pc/data/dynos_bin_movtex.o build/us_pc/data/dynos_mgr_movtexqc.o build/us_pc/data/dynos_cmap.o build/us_pc/data/dynos_bin_actor.o build/us_pc/data/dynos_bin_animation.o build/us_pc/data/dynos_bin_compress.o build/us_pc/data/dynos_bin_vtx.o build/us_pc/data/dynos_mgr_lvl.o build/us_pc/data/dynos_mgr_bhv.o build/us_pc/data/dynos_mgr_tex.o build/us_pc/data/dynos_mgr_col.o build/us_pc/data/dynos_bin_read.o build/us_pc/data/dynos_bin_lvl_validate.o build/us_pc/data/dynos_bin_utils.o build/us_pc/data/dynos_mgr_builtin_tex.o build/us_pc/data/dynos_bin_behavior.o build/us_pc/data/dynos_mgr_pack.o build/us_pc/data/dynos_level.o build/us_pc/data/dynos_bin_lvl.o build/us_pc/data/dynos_c.o build/us_pc/data/dynos_bin_tex.o build/us_pc/data/dynos_bin_col.o build/us_pc/data/dynos_bin_light0.o build/us_pc/data/dynos_misc.o build/us_pc/data/dynos_bin_light_t.o build/us_pc/data/dynos_mgr_builtin.o build/us_pc/data/dynos_bin_rooms.o build/us_pc/data/dynos_bin_lights.o build/us_pc/data/dynos_bin_ambient_t.o build/us_pc/data/dynos_bin_geo.o build/us_pc/data/dynos_mgr_models.o build/us_pc/data/dynos_main.o build/us_pc/src/pc/rom_checker.o build/us_pc/src/pc/gfx/gfx_direct3d_common.o build/us_pc/src/pc/gfx/gfx_dxgi.o build/us_pc/src/pc/gfx/gfx_direct3d11.o build/us_pc/src/pc/mods/mod_storage.o build/us_pc/assets/mario_anim_data.o build/us_pc/assets/demo_data.o build/us_pc/lib/src/alBnkfNew.o build/us_pc/lib/src/guLookAtRef.o build/us_pc/lib/src/guMtxF2L.o build/us_pc/lib/src/guNormalize.o build/us_pc/lib/src/guOrthoF.o build/us_pc/lib/src/guPerspectiveF.o build/us_pc/lib/src/guRotateF.o build/us_pc/lib/src/guScaleF.o build/us_pc/lib/src/guTranslateF.o build/us_pc/lib/src/ldiv.o build/us_pc/src/goddard/old_menu.o build/us_pc/src/goddard/dynlist_proc.o build/us_pc/src/goddard/renderer.o build/us_pc/src/goddard/objects.o build/us_pc/src/goddard/skin.o build/us_pc/src/goddard/particles.o build/us_pc/src/goddard/draw_objects.o build/us_pc/src/goddard/debug_utils.o build/us_pc/src/goddard/gd_math.o build/us_pc/src/goddard/shape_helper.o build/us_pc/src/goddard/gd_memory.o build/us_pc/src/goddard/gd_main.o build/us_pc/src/goddard/skin_movement.o build/us_pc/src/goddard/sfx.o build/us_pc/src/goddard/joints.o build/us_pc/src/goddard/dynlists/dynlist_test_cube.o build/us_pc/src/goddard/dynlists/dynlists_mario_eyes.o build/us_pc/src/goddard/dynlists/anim_mario_lips_1.o build/us_pc/src/goddard/dynlists/dynlist_mario_master.o build/us_pc/src/goddard/dynlists/anim_mario_eyebrows_1.o build/us_pc/src/goddard/dynlists/anim_group_2.o build/us_pc/src/goddard/dynlists/anim_mario_mustache_left.o build/us_pc/src/goddard/dynlists/dynlist_mario_face.o build/us_pc/src/goddard/dynlists/anim_mario_lips_2.o build/us_pc/src/goddard/dynlists/anim_mario_mustache_right.o build/us_pc/src/goddard/dynlists/dynlist_unused.o build/us_pc/src/goddard/dynlists/dynlists_mario_eyebrows_mustache.o build/us_pc/src/goddard/dynlists/anim_group_1.o -lstdc++fs -lrt -lGL -lSDL2 -lpthread -ldl -lz -lcurl -l:liblua53.a -ldl -l:libcoopnet.a -l:libjuice.a -ldiscord_game_sdk -rpath . -rpath lib/discordsdk -latomic -lstdc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
/usr/bin/ld: /usr/bin/ld: DWARF error: can't find .debug_ranges section.
lib/coopnet/linux/libcoopnet.a(mpacket.o): in function `std::__new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*)':
mpacket.cpp:(.text._ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv[_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: lib/coopnet/linux/libcoopnet.a(mpacket.o): in function `std::__new_allocator<StunTurnServer>::allocate(unsigned long, void const*)':
mpacket.cpp:(.text._ZNSt15__new_allocatorI14StunTurnServerE8allocateEmPKv[_ZNSt15__new_allocatorI14StunTurnServerE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/bin/ld: DWARF error: can't find .debug_ranges section.
lib/coopnet/linux/libcoopnet.a(peer.o): in function `std::__new_allocator<PeerEvent>::allocate(unsigned long, void const*)':
peer.cpp:(.text._ZNSt15__new_allocatorI9PeerEventE8allocateEmPKv[_ZNSt15__new_allocatorI9PeerEventE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: /usr/bin/ld: DWARF error: can't find .debug_ranges section.
lib/coopnet/linux/libcoopnet.a(server.o): in function `std::__new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, Connection*> > >::allocate(unsigned long, void const*)':
server.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKmP10ConnectionEEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKmP10ConnectionEEE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: lib/coopnet/linux/libcoopnet.a(server.o): in function `std::__new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, Lobby*> > >::allocate(unsigned long, void const*)':
server.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKmP5LobbyEEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeISt4pairIKmP5LobbyEEE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: lib/coopnet/linux/libcoopnet.a(server.o):server.cpp:(.text._ZNSt15__new_allocatorISt13_Rb_tree_nodeImEE8allocateEmPKv[_ZNSt15__new_allocatorISt13_Rb_tree_nodeImEE8allocateEmPKv]+0x45): more undefined references to `std::__throw_bad_array_new_length()' follow
collect2: error: ld returned 1 exit status
make: *** [Makefile:1524: build/us_pc/sm64coopdx] Error 1

And when I try using the large command you posted in the README, I also see the same error.

Did you have a specific way to solve that error yet? I usually solve that by compiling the coopnet repository from source, but did you not happen to encounter this error on your Ubuntu 20.04 installation?

@robertkirkman
Copy link

robertkirkman commented Sep 10, 2024

Ok I have found that your commands to install ppa:ubuntu-toolchain-r/test do allow bypassing that error,
That's a pretty convenient way and it's useful for people who are used to typing commands to install additional tools into Ubuntu, but just so that you are aware:
If you uninstall ppa:ubuntu-toolchain-r/test afterward then the build stops working. That means that if that build is ever potentially uploaded as a release, people with normal Ubuntu 20.04 would still not be able to automatically run it, they would have to run the sudo commands to install the PPA and the custom updated runtime packages. It's potentially a valid solution I just thought it's a good idea to be aware of this situation, and that it's potentially possible to continue going further and fixing this error as well to reduce the number of commands potential Ubuntu 20.04 users will probably need to find in the README pages and figure out how to set up correctly.

This is what happens if you install the PPA workaround, compile the game, then uninstall the PPA, then try to run the build
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ build/us_pc/sm64coopdx 
Saving configuration to 'sm64config-backup.txt'
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ sudo apt install ppa-purge 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  aptitude
The following NEW packages will be installed:
  ppa-purge
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 6,312 B of archives.
After this operation, 24.6 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 ppa-purge all 0.2.8+bzr63 [6,312 B]
Fetched 6,312 B in 0s (31.3 kB/s)    
Selecting previously unselected package ppa-purge.
(Reading database ... 191999 files and directories currently installed.)
Preparing to unpack .../ppa-purge_0.2.8+bzr63_all.deb ...
Unpacking ppa-purge (0.2.8+bzr63) ...
Setting up ppa-purge (0.2.8+bzr63) ...
Processing triggers for man-db (2.9.1-1) ...
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ sudo ppa-purge ppa:ubuntu-toolchain-r/test
Updating packages lists
PPA to be removed: ubuntu-toolchain-r test
Package revert list generated:
 cpp-11- gcc-11- gcc-11-base:amd64- gcc-13-base:amd64- gdb/focal 
gdbserver/focal libasan6:amd64/focal libatomic1:amd64/focal 
libcc1-0:amd64/focal libgcc-11-dev:amd64- libgcc-s1:amd64/focal 
libgomp1:amd64/focal libitm1:amd64/focal liblsan0:amd64/focal 
libquadmath0:amd64/focal libstdc++6:amd64/focal libtsan0:amd64/focal 
libubsan1:amd64/focal

Disabling ubuntu-toolchain-r PPA from 
/etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-focal.list
Updating packages lists
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gdb is already the newest version (9.2-0ubuntu1~20.04.2).
gdb set to manually installed.
gdbserver is already the newest version (9.2-0ubuntu1~20.04.2).
gdbserver set to manually installed.
Selected version '9.2-0ubuntu1~20.04.2' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'gdb'
Selected version '9.2-0ubuntu1~20.04.2' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'gdbserver'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libasan6'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libatomic1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libcc1-0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libgcc-s1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libgomp1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libitm1'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'liblsan0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libquadmath0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libstdc++6'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libtsan0'
Selected version '10.5.0-1ubuntu1~20.04' (Ubuntu:20.04/focal-updates, Ubuntu:20.04/focal-security [amd64]) for 'libubsan1'
The following packages will be REMOVED:
  cpp-11 gcc-11 gcc-11-base gcc-13-base libgcc-11-dev
The following packages will be DOWNGRADED:
  libasan6 libatomic1 libcc1-0 libgcc-s1 libgomp1 libitm1 liblsan0
  libquadmath0 libstdc++6 libtsan0 libubsan1
0 upgraded, 0 newly installed, 11 downgraded, 5 to remove and 4 not upgraded.
Need to get 6,575 kB of archives.
After this operation, 99.0 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libgcc-s1 amd64 10.5.0-1ubuntu1~20.04 [41.8 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libtsan0 amd64 10.5.0-1ubuntu1~20.04 [2,016 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libasan6 amd64 10.5.0-1ubuntu1~20.04 [2,064 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libatomic1 amd64 10.5.0-1ubuntu1~20.04 [9,284 B]
Get:5 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libstdc++6 amd64 10.5.0-1ubuntu1~20.04 [501 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libubsan1 amd64 10.5.0-1ubuntu1~20.04 [785 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libquadmath0 amd64 10.5.0-1ubuntu1~20.04 [146 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 liblsan0 amd64 10.5.0-1ubuntu1~20.04 [835 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libitm1 amd64 10.5.0-1ubuntu1~20.04 [26.2 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libgomp1 amd64 10.5.0-1ubuntu1~20.04 [102 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 libcc1-0 amd64 10.5.0-1ubuntu1~20.04 [48.8 kB]
Fetched 6,575 kB in 1s (7,167 kB/s)  
(Reading database ... 192005 files and directories currently installed.)
Removing gcc-11 (11.4.0-2ubuntu1~20.04) ...
Removing cpp-11 (11.4.0-2ubuntu1~20.04) ...
Removing libgcc-11-dev:amd64 (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libgcc-s1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191771 files and directories currently installed.)
Preparing to unpack .../libgcc-s1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libgcc-s1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
Setting up libgcc-s1:amd64 (10.5.0-1ubuntu1~20.04) ...
dpkg: warning: downgrading libtsan0:amd64 from 11.4.0-2ubuntu1~20.04 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191771 files and directories currently installed.)
Preparing to unpack .../libtsan0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libtsan0:amd64 (10.5.0-1ubuntu1~20.04) over (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libasan6:amd64 from 11.4.0-2ubuntu1~20.04 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../libasan6_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libasan6:amd64 (10.5.0-1ubuntu1~20.04) over (11.4.0-2ubuntu1~20.04) ...
(Reading database ... 191771 files and directories currently installed.)
Removing gcc-11-base:amd64 (11.4.0-2ubuntu1~20.04) ...
dpkg: warning: downgrading libatomic1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191766 files and directories currently installed.)
Preparing to unpack .../libatomic1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libatomic1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libstdc++6:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../libstdc++6_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libstdc++6:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
Setting up libstdc++6:amd64 (10.5.0-1ubuntu1~20.04) ...
dpkg: warning: downgrading libubsan1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
(Reading database ... 191766 files and directories currently installed.)
Preparing to unpack .../0-libubsan1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libubsan1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libquadmath0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../1-libquadmath0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libquadmath0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading liblsan0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../2-liblsan0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking liblsan0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libitm1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../3-libitm1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libitm1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libgomp1:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../4-libgomp1_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libgomp1:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
dpkg: warning: downgrading libcc1-0:amd64 from 13.1.0-8ubuntu1~20.04.2 to 10.5.0-1ubuntu1~20.04
Preparing to unpack .../5-libcc1-0_10.5.0-1ubuntu1~20.04_amd64.deb ...
Unpacking libcc1-0:amd64 (10.5.0-1ubuntu1~20.04) over (13.1.0-8ubuntu1~20.04.2) ...
(Reading database ... 191766 files and directories currently installed.)
Removing gcc-13-base:amd64 (13.1.0-8ubuntu1~20.04.2) ...
Setting up libgomp1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libasan6:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libquadmath0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libatomic1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libubsan1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libcc1-0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up liblsan0:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libitm1:amd64 (10.5.0-1ubuntu1~20.04) ...
Setting up libtsan0:amd64 (10.5.0-1ubuntu1~20.04) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.16) ...
PPA purged successfully
tacokoneko@ubuntuvm:~/sm64coopdx-sonicandtailscd$ build/us_pc/sm64coopdx 
build/us_pc/sm64coopdx: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by build/us_pc/sm64coopdx)

@AgentXLP AgentXLP changed the base branch from main to dev September 10, 2024 11:56
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std::experimental::filesystem is not recommended anymore. I'm not a fan of this solution. If you're unable to compile without it, you may just need to update your compiler.

Copy link

@robertkirkman robertkirkman Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggested using a preprocessor condition to test for compilers that need it and only activate it if an affected compiler is detected, but this PR isn't organized like that yet, it could be revised to though.

The runtime SonicandTailsCD might be trying to support, Ubuntu 20.04's default libstdc++6 package, is guaranteed security updates until 2025 so whether or not to merge code specifically for it would probably depend on the quality of the support code and what the oldest GNU/Linux distro this project has a priority to support is, rather than whether that distro is objectively too outdated for safe use in general.

Copy link
Author

@SonicandTailsCD SonicandTailsCD Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

std::experimental::filesystem is not recommended anymore. I'm not a fan of this solution. If you're unable to compile without it, you may just need to update your compiler.

That requires updating my whole system. I can't do that. :(

However, I'm willing to apply changes to only use std::experimental::filesystem if std::filesystem is indeed missing.
One moment, I'll upload a patch to resolve your concerns. :)

Copy link

@robertkirkman robertkirkman Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SonicandTailsCD

That requires updating my whole system. I can't do that. :(

I saw that you intend to keep in the recommendations in the README, steps to install this:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt update
sudo apt install gcc-11 libstdc++6 -y

Since you're sticking with that method, just in case you would like to know, if you like that as directions for Ubuntu 20.04 rather than editing the code, if you amend it to this:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13

you actually don't have to use std::experimental::filesystem anywhere in the code because that installs a g++ 13.1 package, which causes that modified Ubuntu 20.04 to have much more similar compiling capabilities to, for example, Ubuntu 24.04, than it does originally. That results in a situation where you technically only have to add one very small line of code to sm64coopdx itself to compile it (since the only way to upgrade the glibc version of Ubuntu 20.04 to no longer require -lrt without upgrading to a newer version of Ubuntu is by compiling something called a glibc prefix which would escalate the amount of steps required enormously):

# Ubuntu 20.04
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
git apply -v << 'EOF'
--- a/Makefile
+++ b/Makefile
@@ -909,6 +909,9 @@ endif
 
 # Coop specific libraries
 
+# Mumble
+LDFLAGS += -lrt
+
 # Zlib
 LDFLAGS += -lz
 
EOF
make

However, the only real big downside of using the PPA method is that the resulting build, if potentially released precompiled, can't be played from any normal Ubuntu 20.04 - all Ubuntu 20.04 users would also have to install the custom runtime packages, so it's a tradeoff between more work for developers and more work for users. You can weigh the options and decide which option is best for your priorities.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SonicandTailsCD

That requires updating my whole system. I can't do that. :(

I saw that you intend to keep in the recommendations in the README, steps to install this:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt update
sudo apt install gcc-11 libstdc++6 -y

Since you're sticking with that method, just in case you would like to know, if you like that as directions for Ubuntu 20.04 rather than editing the code, if you amend it to this:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13

you actually don't have to use std::experimental::filesystem anywhere in the code because that installs a g++ 13.1 package, which causes that modified Ubuntu 20.04 to have much more similar compiling capabilities to, for example, Ubuntu 24.04, than it does originally. That results in a situation where you technically only have to add one very small line of code to sm64coopdx itself to compile it (since the only way to upgrade the glibc version of Ubuntu 20.04 to no longer require -lrt without upgrading to a newer version of Ubuntu is by compiling something called a glibc prefix which would escalate the amount of steps required enormously):

# Ubuntu 20.04
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
git apply -v << 'EOF'
--- a/Makefile
+++ b/Makefile
@@ -909,6 +909,9 @@ endif
 
 # Coop specific libraries
 
+# Mumble
+LDFLAGS += -lrt
+
 # Zlib
 LDFLAGS += -lz
 
EOF
make

However, the only real big downside of using the PPA method is that the resulting build, if potentially released precompiled, can't be played from any normal Ubuntu 20.04 - all Ubuntu 20.04 users would also have to install the custom runtime packages, so it's a tradeoff between more work for developers and more work for users. You can weigh the options and decide which option is best for your priorities.

I'm really unsure what to do here. I'm not a full-on C/C++ developer, so, just for the sake of keeping things stable, I'll give that decision to you. :)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh ok, I'll try to condense it a bit so you can see what to try more easily,
could you try using these commands on your system and check whether they work to build the game on your version of Ubuntu 20.04?

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
git apply -v << 'EOF'
--- a/Makefile
+++ b/Makefile
@@ -909,6 +909,9 @@ endif
 
 # Coop specific libraries
 
+# Mumble
+LDFLAGS += -lrt
+
 # Zlib
 LDFLAGS += -lz
 
EOF
make

Copy link

@robertkirkman robertkirkman Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I forgot until just now that this repository's Makefile actually exposes BACKEND_LDFLAGS in a way that makes it so, technically, you can currently also do this to successfully compile the game on Ubuntu 20.04:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt upgrade
sudo apt install gcc-13 g++-13 build-essential git python3 libglew-dev libsdl2-dev libz-dev libcurl4-openssl-dev
ln -sf $(which gcc-13) gcc
ln -sf $(which g++-13) g++
PATH=$(pwd):$PATH
git clone --branch dev https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
make BACKEND_LDFLAGS="-lrt -lGL -lSDL2"

without editing any of the actual code in the repository,
That really just makes it a question of whether the Ubuntu 20.04 support should consist of:

  • those commands in a README file or wiki page for compiling instructions, and runtime installation commands in another area for installing the updated libstdc++6 package necessary to run the precompiled build from releases
  • OR, no Ubuntu 20.04 instructions in README and instead upload a precompiled build in which the entire repository, the libjuice repository, the coopnet repository, and the lua library were all compiled using the default Ubuntu 20.04 compiler which would cause the binary to work the same on Ubuntu 20.04 as it currently does on the newest distros
  • OR, a unique combination somewhere in between

I intend to do something like the 2nd option, but understandably that takes a long time especially when I want to put a ton of other changes in it at the same time, and for most people it isn't usually considered convenient to write (the benefit will be ultimate convenience and simplicity for users)

Maybe a good goal for this PR could be to do the first option, to write in the README or wiki the commands for using the updated compiler/runtime method to compile/run the current version of sm64coopdx's code on Ubuntu 20.04, for people to use indefinitely until another way of doing it is finished.

Copy link
Author

@SonicandTailsCD SonicandTailsCD Sep 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, of course!
The first option (adding the commands to the README) sounds like a good idea to me, but we can go in any path you'd prefer.

Or, we could attempt to make a script that installs the PPA, GCC-13 compiler and compiles the game! What do you think?

Let me know if you need any changes or stuff uploaded! :)

Copy link

@robertkirkman robertkirkman Sep 16, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well I would suggest putting in your fork the most convenient way that currently works on your computer, formatted in a way that you think would have been the most convenient way to find directions to install the game if you had seen them at the beginning before you got it to work. That would ensure the directions reach the widest range of users possibly encountering the same issue that you did.

Regarding your idea for a script, the difference between a script that does that and a code block embedded in markdown is very minimal and does not matter in the big picture right now. That will change in the future but for the current version I think the best choice is whichever would be most convenient for someone who is just like yourself right before you got it to work. Some people prefer to run one command, but some people prefer to invoke git manually as their first step to download code and won't run a script on their first try if it invokes git first (sometimes for good reasons). I would suggest comparing with the current Ubuntu 24.04 directions and thinking about maybe how you might integrate your Ubuntu 20.04 directions nearby.

@SonicandTailsCD
Copy link
Author

Ok I have found that your commands to install ppa:ubuntu-toolchain-r/test do allow bypassing that error, That's a pretty convenient way and it's useful for people who are used to typing commands to install additional tools into Ubuntu, but just so that you are aware: If you uninstall ppa:ubuntu-toolchain-r/test afterward then the build stops working. That means that if that build is ever potentially uploaded as a release, people with normal Ubuntu 20.04 would still not be able to automatically run it, they would have to run the sudo commands to install the PPA and the custom updated runtime packages. It's potentially a valid solution I just thought it's a good idea to be aware of this situation, and that it's potentially possible to continue going further and fixing this error as well to reduce the number of commands potential Ubuntu 20.04 users will probably need to find in the README pages and figure out how to set up correctly.
This is what happens if you install the PPA workaround, compile the game, then uninstall the PPA, then try to run the build

Thanks for letting me know! Yeah, that worked very well for me, so I hope it's a good fix. :)

@Isaac0-dev
Copy link
Collaborator

please fix the merge conflicts so this can be merged

@@ -1,8 +1,24 @@
#include <fstream>
#include <iostream>
#include <vector>
#include <filesystem>

#ifndef __has_include
Copy link

@robertkirkman robertkirkman Oct 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To summarize some of the discussion briefly, in order for the change in this file to have a useful effect, it would need to be combined and tested at the same time with analogous changes (non-PPA Ubuntu 20.04 compatibility) in these other repos

https://github.com/djoslin0/coopnet
https://github.com/paullouisageneau/libjuice
https://github.com/lua/lua/tree/063d4e4543088e7a21965bda8ee5a0f952a9029e

Alternatively, the precompiled build can be run in Ubuntu 20.04, or a copy of unmodified source code can be made to build and run in Ubuntu 20.04, by using the commands to add the PPA, so that is an easier way that could fit in a documentation file without editing any code.

I'm going to make and test a version that works on Ubuntu 20.04 without a PPA eventually but I'm not at that part yet.

@SonicandTailsCD
Copy link
Author

Sorry, I can't do that. Only users with write access can fix those. :(

@robertkirkman
Copy link

robertkirkman commented Oct 14, 2024

Sorry, I can't do that. Only users with write access can fix those. :(

You have write access to this repository, so if you want to, you can push commits to your main branch which automatically edits this PR in real time.

See the GitHub documentation "Keeping your pull request in sync with the base branch" and "Resolving a merge conflict using the command line"

If you struggle with the additional hassle of the main branch you forked not being in sync with the dev branch of this repository and you aren't sure how to work around that in a way that is convenient for you, you might need to manually rebase your commits on a new clone of the dev branch here by copying and pasting the portions of your changes you want to use from this url

If you decide to implement some or all of your changes as edits to the wiki repository, I am quite sure that if you clone this https://github.com/coop-deluxe/sm64coopdx.wiki.git and after editing it, start sending patches for it in here or in a new issue by copying and pasting the results of git format-patch -n1 or git diff, then there would be some amount of discussion on the changes and then someone with wiki access would give you feedback on the revisions.

@SonicandTailsCD
Copy link
Author

Sorry about that! I'll try to fix it right away! :)

@SonicandTailsCD
Copy link
Author

Done! It wasn't as hard as I thought.
Now, this branch no longer has conflicts. :)

@robertkirkman
Copy link

Good progress! However, regardless of the other changes, unfortunately when I test building your PR there is now an error.

git clone https://github.com/coop-deluxe/sm64coopdx.git
cp baserom.us.z64 sm64coopdx/
cd sm64coopdx/
gh pr checkout 315
make

Result

make: *** No rule to make target 'build/us_pc/sound/samples_offsets.inc.c', needed by 'build/us_pc/sound/samples_assets.o'.  Stop.
make: *** Waiting for unfinished jobs....

Unfortunately, it'll continue to be extremely difficult for people to edit that part of the Makefile until my sound extractor rewrite is finished. So this is something I guess you might need to just figure out in the mean time.

@SonicandTailsCD
Copy link
Author

Yikes.. that's completely unexpected.
I'll try fixing it, hold on...

@SonicandTailsCD
Copy link
Author

I couldn't find a solution to fix that, unfortunately.
Any luck finding a solution?

@Isaac0-dev
Copy link
Collaborator

The changes to the readme can be added the wiki.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants