omf2097 / openomf

One Must Fall 2097 Remake
http://www.openomf.org
MIT License
360 stars 35 forks source link

Cannot build master #349

Closed exander77 closed 5 years ago

exander77 commented 6 years ago

[ 47%] Linking C executable openomf external/dumb/libdumb.a(lpc.c.o): In function `vorbis_lpc_predict.constprop.0': lpc.c:(.text+0x2b): undefined reference to `alloca' external/dumb/libdumb.a(lpc.c.o): In function `vorbis_lpc_from_data.constprop.1': lpc.c:(.text+0x13d): undefined reference to `alloca' lpc.c:(.text+0x14c): undefined reference to `alloca' collect2: error: ld returned 1 exit status CMakeFiles/openomf.dir/build.make:3483: recipe for target 'openomf' failed make[2]: *** [openomf] Error 1 CMakeFiles/Makefile2:68: recipe for target 'CMakeFiles/openomf.dir/all' failed make[1]: *** [CMakeFiles/openomf.dir/all] Error 2 Makefile:151: recipe for target 'all' failed make: *** [all] Error 2

Vagabond commented 6 years ago

Can you tell us what compiler/operating system and architecture you're on?

exander77 commented 6 years ago

Distributor ID: Ubuntu Description: Ubuntu 17.10 Release: 17.10 Codename: artful This is the actual commands from make: /usr/bin/cmake -E cmake_link_script CMakeFiles/openomf.dir/link.txt --verbose=1 /usr/bin/cc -Wall -std=c11 -O2 -DNDEBUG -Wl,-s -rdynamic CMakeFiles/openomf.dir/src/utils/compat.c.o CMakeFiles/openomf.dir/src/utils/log.c.o CMakeFiles/openomf.dir/src/utils/config.c.o CMakeFiles/openomf.dir/src/utils/list.c.o CMakeFiles/openomf.dir/src/utils/vector.c.o CMakeFiles/openomf.dir/src/utils/hashmap.c.o CMakeFiles/openomf.dir/src/utils/iterator.c.o CMakeFiles/openomf.dir/src/utils/array.c.o CMakeFiles/openomf.dir/src/utils/vec.c.o CMakeFiles/openomf.dir/src/utils/str.c.o CMakeFiles/openomf.dir/src/utils/random.c.o CMakeFiles/openomf.dir/src/utils/miscmath.c.o CMakeFiles/openomf.dir/src/utils/scandir.c.o CMakeFiles/openomf.dir/src/utils/msgbox.c.o CMakeFiles/openomf.dir/src/video/video.c.o CMakeFiles/openomf.dir/src/video/surface.c.o CMakeFiles/openomf.dir/src/video/image.c.o CMakeFiles/openomf.dir/src/video/tcache.c.o CMakeFiles/openomf.dir/src/video/color.c.o CMakeFiles/openomf.dir/src/video/video_hw.c.o CMakeFiles/openomf.dir/src/video/video_soft.c.o CMakeFiles/openomf.dir/src/audio/audio.c.o CMakeFiles/openomf.dir/src/audio/music.c.o CMakeFiles/openomf.dir/src/audio/sound.c.o CMakeFiles/openomf.dir/src/audio/sink.c.o CMakeFiles/openomf.dir/src/audio/stream.c.o CMakeFiles/openomf.dir/src/audio/source.c.o CMakeFiles/openomf.dir/src/audio/sinks/openal_sink.c.o CMakeFiles/openomf.dir/src/audio/sinks/openal_stream.c.o CMakeFiles/openomf.dir/src/audio/sources/dumb_source.c.o CMakeFiles/openomf.dir/src/audio/sources/modplug_source.c.o CMakeFiles/openomf.dir/src/audio/sources/xmp_source.c.o CMakeFiles/openomf.dir/src/audio/sources/vorbis_source.c.o CMakeFiles/openomf.dir/src/audio/sources/raw_source.c.o CMakeFiles/openomf.dir/src/resources/ids.c.o CMakeFiles/openomf.dir/src/resources/af.c.o CMakeFiles/openomf.dir/src/resources/af_loader.c.o CMakeFiles/openomf.dir/src/resources/af_move.c.o CMakeFiles/openomf.dir/src/resources/bk.c.o CMakeFiles/openomf.dir/src/resources/bk_info.c.o CMakeFiles/openomf.dir/src/resources/bk_loader.c.o CMakeFiles/openomf.dir/src/resources/palette.c.o CMakeFiles/openomf.dir/src/resources/pilots.c.o CMakeFiles/openomf.dir/src/resources/sprite.c.o CMakeFiles/openomf.dir/src/resources/animation.c.o CMakeFiles/openomf.dir/src/resources/sounds_loader.c.o CMakeFiles/openomf.dir/src/resources/pathmanager.c.o CMakeFiles/openomf.dir/src/resources/sgmanager.c.o CMakeFiles/openomf.dir/src/resources/languages.c.o CMakeFiles/openomf.dir/src/resources/fonts.c.o CMakeFiles/openomf.dir/src/resources/scores.c.o CMakeFiles/openomf.dir/src/plugins/plugins.c.o CMakeFiles/openomf.dir/src/plugins/scaler_plugin.c.o CMakeFiles/openomf.dir/src/game/protos/object.c.o CMakeFiles/openomf.dir/src/game/protos/player.c.o CMakeFiles/openomf.dir/src/game/protos/scene.c.o CMakeFiles/openomf.dir/src/game/protos/intersect.c.o CMakeFiles/openomf.dir/src/game/protos/object_specializer.c.o CMakeFiles/openomf.dir/src/game/objects/har.c.o CMakeFiles/openomf.dir/src/game/objects/scrap.c.o CMakeFiles/openomf.dir/src/game/objects/projectile.c.o CMakeFiles/openomf.dir/src/game/objects/hazard.c.o CMakeFiles/openomf.dir/src/game/scenes/intro.c.o CMakeFiles/openomf.dir/src/game/scenes/openomf.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_main.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_configuration.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_gameplay.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_audio.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_video.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_video_confirm.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_net.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_connect.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_listen.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_input.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_keyboard.c.o CMakeFiles/openomf.dir/src/game/scenes/mainmenu/menu_presskey.c.o CMakeFiles/openomf.dir/src/game/scenes/credits.c.o CMakeFiles/openomf.dir/src/game/scenes/cutscene.c.o CMakeFiles/openomf.dir/src/game/scenes/arena.c.o CMakeFiles/openomf.dir/src/game/scenes/melee.c.o CMakeFiles/openomf.dir/src/game/scenes/vs.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_menu_main.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_menu_customize.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_menu_training.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_menu_pilotselect.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_dash_main.c.o CMakeFiles/openomf.dir/src/game/scenes/mechlab/lab_dash_newplayer.c.o CMakeFiles/openomf.dir/src/game/scenes/newsroom.c.o CMakeFiles/openomf.dir/src/game/scenes/scoreboard.c.o CMakeFiles/openomf.dir/src/game/gui/menu.c.o CMakeFiles/openomf.dir/src/game/gui/trn_menu.c.o CMakeFiles/openomf.dir/src/game/gui/menu_background.c.o CMakeFiles/openomf.dir/src/game/gui/text_render.c.o CMakeFiles/openomf.dir/src/game/gui/textbutton.c.o CMakeFiles/openomf.dir/src/game/gui/spritebutton.c.o CMakeFiles/openomf.dir/src/game/gui/spriteimage.c.o CMakeFiles/openomf.dir/src/game/gui/textselector.c.o CMakeFiles/openomf.dir/src/game/gui/textslider.c.o CMakeFiles/openomf.dir/src/game/gui/textinput.c.o CMakeFiles/openomf.dir/src/game/gui/dialog.c.o CMakeFiles/openomf.dir/src/game/gui/component.c.o CMakeFiles/openomf.dir/src/game/gui/sizer.c.o CMakeFiles/openomf.dir/src/game/gui/widget.c.o CMakeFiles/openomf.dir/src/game/gui/frame.c.o CMakeFiles/openomf.dir/src/game/gui/label.c.o CMakeFiles/openomf.dir/src/game/gui/filler.c.o CMakeFiles/openomf.dir/src/game/gui/progressbar.c.o CMakeFiles/openomf.dir/src/game/gui/gauge.c.o CMakeFiles/openomf.dir/src/game/gui/pilotpic.c.o CMakeFiles/openomf.dir/src/game/gui/xysizer.c.o CMakeFiles/openomf.dir/src/game/game_state.c.o CMakeFiles/openomf.dir/src/game/game_player.c.o CMakeFiles/openomf.dir/src/game/common_defines.c.o CMakeFiles/openomf.dir/src/game/utils/ticktimer.c.o CMakeFiles/openomf.dir/src/game/utils/serial.c.o CMakeFiles/openomf.dir/src/game/utils/settings.c.o CMakeFiles/openomf.dir/src/game/utils/score.c.o CMakeFiles/openomf.dir/src/game/utils/har_screencap.c.o CMakeFiles/openomf.dir/src/game/utils/formatting.c.o CMakeFiles/openomf.dir/src/controller/controller.c.o CMakeFiles/openomf.dir/src/controller/keyboard.c.o CMakeFiles/openomf.dir/src/controller/joystick.c.o CMakeFiles/openomf.dir/src/controller/net_controller.c.o CMakeFiles/openomf.dir/src/controller/ai_controller.c.o CMakeFiles/openomf.dir/src/controller/rec_controller.c.o CMakeFiles/openomf.dir/src/console/console.c.o CMakeFiles/openomf.dir/src/console/console_cmd.c.o CMakeFiles/openomf.dir/src/engine.c.o CMakeFiles/openomf.dir/src/main.c.o -o openomf -lSDL2 -lpthread -lconfuse -lenet -largtable2 external/libShadowDive/libshadowdive.a external/dumb/libdumb.a -lopenal -lpng -lz -lm -lm

katajakasa commented 6 years ago

Guessing that alloca is not standard C99 function, and we are using -std=c99 => function not found. Libdumb should probably include in lpc.c and contain a specific -std definition :/

It might be a good idea to just remove libdumb from submodules once and for all, and require a separate package. Libdumb now has actual releases, so we might start seeing those in distributions also.

exander77 commented 6 years ago

I can actually install libdumb1-dev package.

katajakasa commented 6 years ago

Just note that the version of the package must be 2.x.x. libdumb1 will NOT work.

Available here (libdumb fork by kode54): https://github.com/kode54/dumb/releases

katajakasa commented 5 years ago

Since we got rid of libdumb as primary lib (replaced by libxmp), I consider this fixed :)

Rondom commented 5 years ago

Please note that on my Debian sid installation, I cannot play PSM with libxmp. I have not investigated this yet, but if it is not fixed easily and it exists in other Debian-based distros, I guess there will be another person running into problems, just that the name of the library differs...

katajakasa commented 5 years ago

Do you mean that name of the library differs and you cannot link the library, or that the library exists with a wrong name, you fixed the linking and yet music doesn't play ?

Rondom commented 5 years ago

Linking works, but at runtime it says it cannot play PSM. As I said, I have not investigated this closely, yet. I do not have the machine available right now, so give me some time to have a look and come up with a detailed analysis.

katajakasa commented 5 years ago

Tried libxmp on Ubuntu 18.10, seems to work fine at least there.

turol commented 5 years ago

xmp command line player works fine on my Debian testing (Buster).